Sessions 命令¶
管理 Claude Code 会话历史 - 对保存在 ~/.claude/session-data/ 中的会话进行列表显示、加载、别名设置和编辑。为了向后兼容,也会读取旧 ~/.claude/sessions/ 中的文件。
使用方法¶
/sessions [list|load|alias|info|help] [オプション]
操作¶
列出会话¶
显示所有会话,包含元数据、过滤和分页。
/sessions # すべてのセッションをリスト表示(デフォルト)
/sessions list # 上記と同じ
/sessions list --limit 10 # 10件のセッションを表示
/sessions list --date 2026-02-01 # 日付でフィルタリング
/sessions list --search abc # セッションIDで検索
脚本:
node -e "
const sm = require('./scripts/lib/session-manager');
const aa = require('./scripts/lib/session-aliases');
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 Size Lines Alias');
console.log('────────────────────────────────────────────────────');
for (const s of result.sessions) {
const alias = aliasMap[s.filename] || '';
const size = sm.getSessionSize(s.sessionPath);
const stats = sm.getSessionStats(s.sessionPath);
const id = s.shortId === 'no-id' ? '(none)' : s.shortId.slice(0, 8);
const time = s.modifiedTime.toTimeString().slice(0, 5);
console.log(id.padEnd(8) + ' ' + s.date + ' ' + time + ' ' + size.padEnd(7) + ' ' + String(stats.lineCount).padEnd(5) + ' ' + alias);
}
"
加载会话¶
加载并显示会话内容(通过 ID 或别名指定)。
/sessions load <id|alias> # セッションを読み込む
/sessions load 2026-02-01 # 日付で指定(IDなしセッションの場合)
/sessions load a1b2c3d4 # 短縮IDで指定
/sessions load my-alias # エイリアス名で指定
脚本:
node -e "
const sm = require('./scripts/lib/session-manager');
const aa = require('./scripts/lib/session-aliases');
const id = process.argv[1];
// First try to resolve as alias
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: ' + session.sessionPath);
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);
}
" "$ARGUMENTS"
创建别名¶
为会话创建易于记忆的别名。
/sessions alias <id> <name> # エイリアスを作成
/sessions alias 2026-02-01 today-work # "today-work"という名前のエイリアスを作成
脚本:
node -e "
const sm = require('./scripts/lib/session-manager');
const aa = require('./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);
}
// Get session filename
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"
删除别名¶
删除现有别名。
脚本:
node -e "
const aa = require('./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"
会话信息¶
显示会话的详细信息。
脚本:
node -e "
const sm = require('./scripts/lib/session-manager');
const aa = require('./scripts/lib/session-aliases');
const id = process.argv[1];
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 Information');
console.log('════════════════════');
console.log('ID: ' + (session.shortId === 'no-id' ? '(none)' : session.shortId));
console.log('Filename: ' + session.filename);
console.log('Date: ' + session.date);
console.log('Modified: ' + session.modifiedTime.toISOString().slice(0, 19).replace('T', ' '));
console.log('');
console.log('Content:');
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);
if (aliases.length > 0) {
console.log('Aliases: ' + aliases.map(a => a.name).join(', '));
}
" "$ARGUMENTS"
别名列表¶
显示所有会话别名。
脚本:
node -e "
const aa = require('./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);
}
}
"
参数¶
$ARGUMENTS:
- list [オプション] - 列出会话
- --limit <n> - 最大显示会话数(默认: 50)
- --date <YYYY-MM-DD> - 按日期过滤
- --search <パターン> - 按会话 ID 搜索
- load <id|alias> - 加载会话内容
- alias <id> <name> - 创建会话别名
- alias --remove <name> - 删除别名
- unalias <name> - 与 --remove 相同
- info <id|alias> - 显示会话统计
- aliases - 列出所有别名
- help - 显示此帮助
示例¶
# すべてのセッションをリスト表示
/sessions list
# 今日のセッションにエイリアスを作成
/sessions alias 2026-02-01 today
# エイリアスでセッションを読み込む
/sessions load today
# セッション情報を表示
/sessions info today
# エイリアスを削除
/sessions alias --remove today
# すべてのエイリアスをリスト表示
/sessions aliases
备注¶
- 会话以 Markdown 文件形式保存在
~/.claude/session-data/中,旧~/.claude/sessions/中的文件仍可继续读取 - 别名保存在
~/.claude/session-aliases.json中 - 会话 ID 可以缩写(通常,前 4 到 8 个字符即可唯一标识)
- 请为经常访问的会话使用别名
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC