mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-03-30 21:53:28 +08:00
* Add Turkish (tr) docs and update README Add a full set of Turkish documentation under docs/tr (agents, changelog, CLAUDE guide, contributing, code of conduct, and many agents/commands/skills/rules files). Update README to include a link to the Turkish docs and increment the supported language count from 5 to 6. This commit adds localized guidance and references to help Turkish-speaking contributors and users. * Update docs/tr/TROUBLESHOOTING.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * Update docs/tr/README.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * docs(tr): fix license link and update readmes Update Turkish docs: change license badge link to point to repository root (../../LICENSE), increment displayed language count from 5 to 6, and remove two outdated related links from docs/tr/examples/README.md to keep references accurate. * Update docs/tr/commands/instinct-import.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * Update docs/tr/commands/checkpoint.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --------- Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
294 lines
12 KiB
Markdown
294 lines
12 KiB
Markdown
---
|
||
description: Claude Code session geçmişini, aliasları ve session metadata'sını yönet.
|
||
---
|
||
|
||
# Sessions Komutu
|
||
|
||
Claude Code session geçmişini yönet - `~/.claude/sessions/` dizininde saklanan session'ları listele, yükle, alias ata ve düzenle.
|
||
|
||
## Kullanım
|
||
|
||
`/sessions [list|load|alias|info|help] [options]`
|
||
|
||
## Aksiyonlar
|
||
|
||
### List Sessions
|
||
|
||
Tüm session'ları metadata, filtreleme ve sayfalama ile göster.
|
||
|
||
Bir swarm için operatör-yüzey context'e ihtiyacınız olduğunda `/sessions info` kullanın: branch, worktree yolu ve session güncelliği.
|
||
|
||
```bash
|
||
/sessions # Tüm session'ları listele (varsayılan)
|
||
/sessions list # Yukarıdakiyle aynı
|
||
/sessions list --limit 10 # 10 session göster
|
||
/sessions list --date 2026-02-01 # Tarihe göre filtrele
|
||
/sessions list --search abc # Session ID'ye göre ara
|
||
```
|
||
|
||
**Script:**
|
||
```bash
|
||
node -e "
|
||
const sm = require((()=>{var e=process.env.CLAUDE_PLUGIN_ROOT;if(e&&e.trim())return e.trim();var p=require('path'),f=require('fs'),h=require('os').homedir(),d=p.join(h,'.claude'),q=p.join('scripts','lib','utils.js');if(f.existsSync(p.join(d,q)))return d;try{var b=p.join(d,'plugins','cache','everything-claude-code');for(var o of f.readdirSync(b))for(var v of f.readdirSync(p.join(b,o))){var c=p.join(b,o,v);if(f.existsSync(p.join(c,q)))return c}}catch(x){}return d})()+'/scripts/lib/session-manager');
|
||
const aa = require((()=>{var e=process.env.CLAUDE_PLUGIN_ROOT;if(e&&e.trim())return e.trim();var p=require('path'),f=require('fs'),h=require('os').homedir(),d=p.join(h,'.claude'),q=p.join('scripts','lib','utils.js');if(f.existsSync(p.join(d,q)))return d;try{var b=p.join(d,'plugins','cache','everything-claude-code');for(var o of f.readdirSync(b))for(var v of f.readdirSync(p.join(b,o))){var c=p.join(b,o,v);if(f.existsSync(p.join(c,q)))return c}}catch(x){}return d})()+'/scripts/lib/session-aliases');
|
||
const path = require('path');
|
||
|
||
const result = sm.getAllSessions({ limit: 20 });
|
||
const aliases = aa.listAliases();
|
||
const aliasMap = {};
|
||
for (const a of aliases) aliasMap[a.sessionPath] = a.name;
|
||
|
||
console.log('Sessions (showing ' + result.sessions.length + ' of ' + result.total + '):');
|
||
console.log('');
|
||
console.log('ID Date Time Branch Worktree Alias');
|
||
console.log('────────────────────────────────────────────────────────────────────');
|
||
|
||
for (const s of result.sessions) {
|
||
const alias = aliasMap[s.filename] || '';
|
||
const metadata = sm.parseSessionMetadata(sm.getSessionContent(s.sessionPath));
|
||
const id = s.shortId === 'no-id' ? '(none)' : s.shortId.slice(0, 8);
|
||
const time = s.modifiedTime.toTimeString().slice(0, 5);
|
||
const branch = (metadata.branch || '-').slice(0, 12);
|
||
const worktree = metadata.worktree ? path.basename(metadata.worktree).slice(0, 18) : '-';
|
||
|
||
console.log(id.padEnd(8) + ' ' + s.date + ' ' + time + ' ' + branch.padEnd(12) + ' ' + worktree.padEnd(18) + ' ' + alias);
|
||
}
|
||
"
|
||
```
|
||
|
||
### Load Session
|
||
|
||
Session içeriğini yükle ve göster (ID veya alias ile).
|
||
|
||
```bash
|
||
/sessions load <id|alias> # Session yükle
|
||
/sessions load 2026-02-01 # Tarihe göre (no-id session'lar için)
|
||
/sessions load a1b2c3d4 # Short ID ile
|
||
/sessions load my-alias # Alias adıyla
|
||
```
|
||
|
||
**Script:**
|
||
```bash
|
||
node -e "
|
||
const sm = require((()=>{var e=process.env.CLAUDE_PLUGIN_ROOT;if(e&&e.trim())return e.trim();var p=require('path'),f=require('fs'),h=require('os').homedir(),d=p.join(h,'.claude'),q=p.join('scripts','lib','utils.js');if(f.existsSync(p.join(d,q)))return d;try{var b=p.join(d,'plugins','cache','everything-claude-code');for(var o of f.readdirSync(b))for(var v of f.readdirSync(p.join(b,o))){var c=p.join(b,o,v);if(f.existsSync(p.join(c,q)))return c}}catch(x){}return d})()+'/scripts/lib/session-manager');
|
||
const aa = require((()=>{var e=process.env.CLAUDE_PLUGIN_ROOT;if(e&&e.trim())return e.trim();var p=require('path'),f=require('fs'),h=require('os').homedir(),d=p.join(h,'.claude'),q=p.join('scripts','lib','utils.js');if(f.existsSync(p.join(d,q)))return d;try{var b=p.join(d,'plugins','cache','everything-claude-code');for(var o of f.readdirSync(b))for(var v of f.readdirSync(p.join(b,o))){var c=p.join(b,o,v);if(f.existsSync(p.join(c,q)))return c}}catch(x){}return d})()+'/scripts/lib/session-aliases');
|
||
const id = process.argv[1];
|
||
|
||
// Önce alias olarak çözümlemeyi dene
|
||
const resolved = aa.resolveAlias(id);
|
||
const sessionId = resolved ? resolved.sessionPath : id;
|
||
|
||
const session = sm.getSessionById(sessionId, true);
|
||
if (!session) {
|
||
console.log('Session not found: ' + id);
|
||
process.exit(1);
|
||
}
|
||
|
||
const stats = sm.getSessionStats(session.sessionPath);
|
||
const size = sm.getSessionSize(session.sessionPath);
|
||
const aliases = aa.getAliasesForSession(session.filename);
|
||
|
||
console.log('Session: ' + session.filename);
|
||
console.log('Path: ~/.claude/sessions/' + session.filename);
|
||
console.log('');
|
||
console.log('Statistics:');
|
||
console.log(' Lines: ' + stats.lineCount);
|
||
console.log(' Total items: ' + stats.totalItems);
|
||
console.log(' Completed: ' + stats.completedItems);
|
||
console.log(' In progress: ' + stats.inProgressItems);
|
||
console.log(' Size: ' + size);
|
||
console.log('');
|
||
|
||
if (aliases.length > 0) {
|
||
console.log('Aliases: ' + aliases.map(a => a.name).join(', '));
|
||
console.log('');
|
||
}
|
||
|
||
if (session.metadata.title) {
|
||
console.log('Title: ' + session.metadata.title);
|
||
console.log('');
|
||
}
|
||
|
||
if (session.metadata.started) {
|
||
console.log('Started: ' + session.metadata.started);
|
||
}
|
||
|
||
if (session.metadata.lastUpdated) {
|
||
console.log('Last Updated: ' + session.metadata.lastUpdated);
|
||
}
|
||
|
||
if (session.metadata.project) {
|
||
console.log('Project: ' + session.metadata.project);
|
||
}
|
||
|
||
if (session.metadata.branch) {
|
||
console.log('Branch: ' + session.metadata.branch);
|
||
}
|
||
|
||
if (session.metadata.worktree) {
|
||
console.log('Worktree: ' + session.metadata.worktree);
|
||
}
|
||
" "$ARGUMENTS"
|
||
```
|
||
|
||
### Create Alias
|
||
|
||
Session için akılda kalıcı bir alias oluştur.
|
||
|
||
```bash
|
||
/sessions alias <id> <name> # Alias oluştur
|
||
/sessions alias 2026-02-01 today-work # "today-work" adlı alias oluştur
|
||
```
|
||
|
||
**Script:**
|
||
```bash
|
||
node -e "
|
||
const sm = require((()=>{var e=process.env.CLAUDE_PLUGIN_ROOT;if(e&&e.trim())return e.trim();var p=require('path'),f=require('fs'),h=require('os').homedir(),d=p.join(h,'.claude'),q=p.join('scripts','lib','utils.js');if(f.existsSync(p.join(d,q)))return d;try{var b=p.join(d,'plugins','cache','everything-claude-code');for(var o of f.readdirSync(b))for(var v of f.readdirSync(p.join(b,o))){var c=p.join(b,o,v);if(f.existsSync(p.join(c,q)))return c}}catch(x){}return d})()+'/scripts/lib/session-manager');
|
||
const aa = require((()=>{var e=process.env.CLAUDE_PLUGIN_ROOT;if(e&&e.trim())return e.trim();var p=require('path'),f=require('fs'),h=require('os').homedir(),d=p.join(h,'.claude'),q=p.join('scripts','lib','utils.js');if(f.existsSync(p.join(d,q)))return d;try{var b=p.join(d,'plugins','cache','everything-claude-code');for(var o of f.readdirSync(b))for(var v of f.readdirSync(p.join(b,o))){var c=p.join(b,o,v);if(f.existsSync(p.join(c,q)))return c}}catch(x){}return d})()+'/scripts/lib/session-aliases');
|
||
|
||
const sessionId = process.argv[1];
|
||
const aliasName = process.argv[2];
|
||
|
||
if (!sessionId || !aliasName) {
|
||
console.log('Usage: /sessions alias <id> <name>');
|
||
process.exit(1);
|
||
}
|
||
|
||
// Session dosya adını al
|
||
const session = sm.getSessionById(sessionId);
|
||
if (!session) {
|
||
console.log('Session not found: ' + sessionId);
|
||
process.exit(1);
|
||
}
|
||
|
||
const result = aa.setAlias(aliasName, session.filename);
|
||
if (result.success) {
|
||
console.log('✓ Alias created: ' + aliasName + ' → ' + session.filename);
|
||
} else {
|
||
console.log('✗ Error: ' + result.error);
|
||
process.exit(1);
|
||
}
|
||
" "$ARGUMENTS"
|
||
```
|
||
|
||
### Remove Alias
|
||
|
||
Mevcut bir alias'ı sil.
|
||
|
||
```bash
|
||
/sessions alias --remove <name> # Alias'ı kaldır
|
||
/sessions unalias <name> # Yukarıdakiyle aynı
|
||
```
|
||
|
||
**Script:**
|
||
```bash
|
||
node -e "
|
||
const aa = require((()=>{var e=process.env.CLAUDE_PLUGIN_ROOT;if(e&&e.trim())return e.trim();var p=require('path'),f=require('fs'),h=require('os').homedir(),d=p.join(h,'.claude'),q=p.join('scripts','lib','utils.js');if(f.existsSync(p.join(d,q)))return d;try{var b=p.join(d,'plugins','cache','everything-claude-code');for(var o of f.readdirSync(b))for(var v of f.readdirSync(p.join(b,o))){var c=p.join(b,o,v);if(f.existsSync(p.join(c,q)))return c}}catch(x){}return d})()+'/scripts/lib/session-aliases');
|
||
|
||
const aliasName = process.argv[1];
|
||
if (!aliasName) {
|
||
console.log('Usage: /sessions alias --remove <name>');
|
||
process.exit(1);
|
||
}
|
||
|
||
const result = aa.deleteAlias(aliasName);
|
||
if (result.success) {
|
||
console.log('✓ Alias removed: ' + aliasName);
|
||
} else {
|
||
console.log('✗ Error: ' + result.error);
|
||
process.exit(1);
|
||
}
|
||
" "$ARGUMENTS"
|
||
```
|
||
|
||
### Session Info
|
||
|
||
Session hakkında detaylı bilgi göster.
|
||
|
||
```bash
|
||
/sessions info <id|alias> # Session detaylarını göster
|
||
```
|
||
|
||
**Script:** (yukarıdaki Load Session script'i ile aynı yapı)
|
||
|
||
### List Aliases
|
||
|
||
Tüm session aliaslarını göster.
|
||
|
||
```bash
|
||
/sessions aliases # Tüm aliasları listele
|
||
```
|
||
|
||
**Script:**
|
||
```bash
|
||
node -e "
|
||
const aa = require((()=>{var e=process.env.CLAUDE_PLUGIN_ROOT;if(e&&e.trim())return e.trim();var p=require('path'),f=require('fs'),h=require('os').homedir(),d=p.join(h,'.claude'),q=p.join('scripts','lib','utils.js');if(f.existsSync(p.join(d,q)))return d;try{var b=p.join(d,'plugins','cache','everything-claude-code');for(var o of f.readdirSync(b))for(var v of f.readdirSync(p.join(b,o))){var c=p.join(b,o,v);if(f.existsSync(p.join(c,q)))return c}}catch(x){}return d})()+'/scripts/lib/session-aliases');
|
||
|
||
const aliases = aa.listAliases();
|
||
console.log('Session Aliases (' + aliases.length + '):');
|
||
console.log('');
|
||
|
||
if (aliases.length === 0) {
|
||
console.log('No aliases found.');
|
||
} else {
|
||
console.log('Name Session File Title');
|
||
console.log('─────────────────────────────────────────────────────────────');
|
||
for (const a of aliases) {
|
||
const name = a.name.padEnd(12);
|
||
const file = (a.sessionPath.length > 30 ? a.sessionPath.slice(0, 27) + '...' : a.sessionPath).padEnd(30);
|
||
const title = a.title || '';
|
||
console.log(name + ' ' + file + ' ' + title);
|
||
}
|
||
}
|
||
"
|
||
```
|
||
|
||
## Operatör Notları
|
||
|
||
- Session dosyaları header'da `Project`, `Branch` ve `Worktree`'yi sürdürür, böylece `/sessions info` parallel tmux/worktree çalıştırmalarını ayırt edebilir.
|
||
- Command-center tarzı izleme için, `/sessions info`, `git diff --stat` ve `scripts/hooks/cost-tracker.js` tarafından yayılan cost metriklerini birleştirin.
|
||
|
||
## Argümanlar
|
||
|
||
$ARGUMENTS:
|
||
- `list [options]` - Session'ları listele
|
||
- `--limit <n>` - Gösterilecek max session (varsayılan: 50)
|
||
- `--date <YYYY-MM-DD>` - Tarihe göre filtrele
|
||
- `--search <pattern>` - Session ID'de ara
|
||
- `load <id|alias>` - Session içeriğini yükle
|
||
- `alias <id> <name>` - Session için alias oluştur
|
||
- `alias --remove <name>` - Alias'ı kaldır
|
||
- `unalias <name>` - `--remove` ile aynı
|
||
- `info <id|alias>` - Session istatistiklerini göster
|
||
- `aliases` - Tüm aliasları listele
|
||
- `help` - Bu yardımı göster
|
||
|
||
## Örnekler
|
||
|
||
```bash
|
||
# Tüm session'ları listele
|
||
/sessions list
|
||
|
||
# Bugünkü session için alias oluştur
|
||
/sessions alias 2026-02-01 today
|
||
|
||
# Session'ı alias ile yükle
|
||
/sessions load today
|
||
|
||
# Session bilgisini göster
|
||
/sessions info today
|
||
|
||
# Alias'ı kaldır
|
||
/sessions alias --remove today
|
||
|
||
# Tüm aliasları listele
|
||
/sessions aliases
|
||
```
|
||
|
||
## Notlar
|
||
|
||
- Session'lar `~/.claude/sessions/` dizininde markdown dosyaları olarak saklanır
|
||
- Aliaslar `~/.claude/session-aliases.json` dosyasında saklanır
|
||
- Session ID'leri kısaltılabilir (ilk 4-8 karakter genellikle yeterince benzersizdir)
|
||
- Sık referans verilen session'lar için aliasları kullanın
|