19. 常用命令详解 - clear/cost/memory/tasks等
所属分组:命令系统
概述
Claude Code 提供了丰富的斜杠命令体系,除了 review、config、plan 等核心命令外,还有一系列日常使用频率很高的命令,包括 /clear(清空会话)、/cost(费用统计)、/memory(记忆管理)、/tasks(任务管理)等。这些命令覆盖了会话管理、资源监控、数据持久化和后台任务等多个场景,是用户日常使用中不可或缺的工具。
本文将深入分析这些常用命令的实现模式、分类体系和执行生命周期,揭示它们在系统中的协作机制。
源码位置
- clear命令:commands/clear/(file:///e:/2026plan/AI_Lab/claude-code-sourcemap-main/restored-src/src/commands/clear/)
- cost命令:commands/cost/(file:///e:/2026plan/AI_Lab/claude-code-sourcemap-main/restored-src/src/commands/cost/)
- memory命令:commands/memory/(file:///e:/2026plan/AI_Lab/claude-code-sourcemap-main/restored-src/src/commands/memory/)
- tasks命令:commands/tasks/(file:///e:/2026plan/AI_Lab/claude-code-sourcemap-main/restored-src/src/commands/tasks/)
- 命令类型定义:types/command.ts(file:///e:/2026plan/AI_Lab/claude-code-sourcemap-main/restored-src/src/types/command.ts)
- 命令注册中心:commands.ts(file:///e:/2026plan/AI_Lab/claude-code-sourcemap-main/restored-src/src/commands.ts)
核心实现分析
命令分类体系
Claude Code 的斜杠命令按照功能可以分为以下几类:
会话管理类:
/clear:清空会话历史,重置上下文/new:/clear的别名/reset:/clear的别名
资源监控类:
/cost:显示当前会话的费用和时长/usage:显示使用统计信息/stats:显示性能统计
数据持久化类:
/memory:管理 Claude 记忆文件/resume:恢复之前的会话
任务管理类:
/tasks:查看和管理后台任务/bashes:/tasks的别名
配置类:
/config:配置管理面板/settings:/config的别名
开发工具类:
/edit:编辑文件/files:文件管理/diff:差异对比
clear命令实现
/clear 命令用于清空会话历史,是最常用的命令之一:
ts
const clear = {
type: 'local',
name: 'clear',
description: 'Clear conversation history and free up context',
aliases: ['reset', 'new'],
supportsNonInteractive: false,
load: () => import('./clear.js'),
} satisfies Command
特点:
type: 'local':本地命令,直接在终端执行,不需要模型参与aliases:支持多个别名,方便用户记忆supportsNonInteractive: false:不支持非交互式模式,因为会创建新会话load:懒加载实现,优化启动性能
实现逻辑(clear.ts):
- 重置全局状态(
resetState()) - 清除计划 slug(
clearAllPlanSlugs()) - 重置对话历史
- 显示确认消息
cost命令实现
/cost 命令显示当前会话的费用和时长统计:
ts
const cost = {
type: 'local',
name: 'cost',
description: 'Show the total cost and duration of the current session',
get isHidden() {
if (process.env.USER_TYPE === 'ant') {
return false
}
return isClaudeAISubscriber()
},
supportsNonInteractive: true,
load: () => import('./cost.js'),
} satisfies Command
特点:
isHidden动态属性:根据用户类型决定是否显示该命令- Claude AI 订阅用户隐藏该命令(因为订阅制无额外费用)
- Ant 用户始终可见(用于开发调试)
supportsNonInteractive: true:支持非交互式模式
实现逻辑(cost.ts):
- 从
cost-tracker.ts获取费用数据 - 从会话记录获取时长信息
- 格式化输出显示
memory命令实现
/memory 命令用于管理 Claude 的记忆文件,允许用户编辑和查看持久化的上下文信息:
ts
const memory: Command = {
type: 'local-jsx',
name: 'memory',
description: 'Edit Claude memory files',
load: () => import('./memory.js'),
}
特点:
type: 'local-jsx':使用 React 组件渲染交互式界面- 支持编辑全局记忆和项目级记忆
- 记忆文件以 Markdown 格式存储
实现逻辑(memory.tsx):
- 读取记忆目录中的所有记忆文件
- 渲染文件列表和编辑界面
- 支持创建、编辑、删除记忆文件
- 保存时更新记忆内容
tasks命令实现
/tasks 命令用于管理后台任务(如正在运行的 bash 命令):
ts
const tasks = {
type: 'local-jsx',
name: 'tasks',
aliases: ['bashes'],
description: 'List and manage background tasks',
load: () => import('./tasks.js'),
} satisfies Command
特点:
type: 'local-jsx':交互式任务列表界面aliases: ['bashes']:历史别名,保留兼容性- 支持查看任务状态、输出、终止任务
实现逻辑(tasks.tsx):
- 从
AppState获取任务列表 - 渲染任务卡片(状态、命令、输出预览)
- 支持终止任务、查看详细输出
命令执行生命周期
所有斜杠命令遵循统一的执行生命周期:
- 命令解析:REPL 解析用户输入,识别命令名称和参数
- 命令查找 :在
commands.ts中查找对应的命令定义 - 权限检查:验证用户是否有权执行该命令
- 懒加载 :执行
load()函数引入实际实现 - 命令执行 :根据命令类型执行相应逻辑
prompt类型:构建提示词发送给模型local类型:直接执行本地逻辑local-jsx类型:渲染 React 组件
- 结果处理 :调用
onDone()返回结果或更新状态 - 界面更新:终端 UI 刷新显示结果
关键设计要点
-
命令类型分层 :三种命令类型(
prompt、local、local-jsx)对应不同的执行模式,满足不同场景需求。 -
懒加载策略 :所有命令的实现都通过动态
import()延迟加载,显著减少启动时间。 -
别名系统:支持命令别名,提高用户体验和向后兼容性。
-
可见性控制 :通过
isHidden属性动态控制命令的可见性,支持不同用户群体的差异化展示。 -
非交互式支持 :
supportsNonInteractive属性标识命令是否支持-p非交互式模式。 -
统一生命周期:所有命令遵循相同的执行流程,便于维护和扩展。
-
状态隔离 :
/clear命令清除状态时确保各模块状态一致性,避免残留数据。 -
性能监控 :
/cost、/stats等命令提供实时性能数据,帮助用户了解资源消耗。
与其他模块的关系
- 命令注册系统 :所有命令通过
commands.ts注册到全局命令列表 - 状态管理 :命令执行时读取和修改
AppState - 配置系统:命令状态和用户偏好存储在配置中
- 权限系统:命令执行前进行权限检查
- 任务系统 :
/tasks命令管理后台任务 - 记忆系统 :
/memory命令管理记忆文件 - 成本跟踪 :
/cost命令显示费用信息
小结
Claude Code 的常用斜杠命令体系覆盖了会话管理、资源监控、数据持久化和任务管理等核心场景。通过分层的命令类型、统一的执行生命周期和优化的加载策略,这些命令既保证了功能完整性,又兼顾了性能和用户体验。命令的分类设计和别名系统进一步提高了可用性,使得用户能够高效地完成日常操作。