19-常用命令详解 - clear/cost/memory/tasks等

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):

  1. 重置全局状态(resetState()
  2. 清除计划 slug(clearAllPlanSlugs()
  3. 重置对话历史
  4. 显示确认消息

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):

  1. cost-tracker.ts 获取费用数据
  2. 从会话记录获取时长信息
  3. 格式化输出显示

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):

  1. 读取记忆目录中的所有记忆文件
  2. 渲染文件列表和编辑界面
  3. 支持创建、编辑、删除记忆文件
  4. 保存时更新记忆内容

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):

  1. AppState 获取任务列表
  2. 渲染任务卡片(状态、命令、输出预览)
  3. 支持终止任务、查看详细输出

命令执行生命周期

所有斜杠命令遵循统一的执行生命周期:

  1. 命令解析:REPL 解析用户输入,识别命令名称和参数
  2. 命令查找 :在 commands.ts 中查找对应的命令定义
  3. 权限检查:验证用户是否有权执行该命令
  4. 懒加载 :执行 load() 函数引入实际实现
  5. 命令执行 :根据命令类型执行相应逻辑
    • prompt 类型:构建提示词发送给模型
    • local 类型:直接执行本地逻辑
    • local-jsx 类型:渲染 React 组件
  6. 结果处理 :调用 onDone() 返回结果或更新状态
  7. 界面更新:终端 UI 刷新显示结果

关键设计要点

  1. 命令类型分层 :三种命令类型(promptlocallocal-jsx)对应不同的执行模式,满足不同场景需求。

  2. 懒加载策略 :所有命令的实现都通过动态 import() 延迟加载,显著减少启动时间。

  3. 别名系统:支持命令别名,提高用户体验和向后兼容性。

  4. 可见性控制 :通过 isHidden 属性动态控制命令的可见性,支持不同用户群体的差异化展示。

  5. 非交互式支持supportsNonInteractive 属性标识命令是否支持 -p 非交互式模式。

  6. 统一生命周期:所有命令遵循相同的执行流程,便于维护和扩展。

  7. 状态隔离/clear 命令清除状态时确保各模块状态一致性,避免残留数据。

  8. 性能监控/cost/stats 等命令提供实时性能数据,帮助用户了解资源消耗。

与其他模块的关系

  • 命令注册系统 :所有命令通过 commands.ts 注册到全局命令列表
  • 状态管理 :命令执行时读取和修改 AppState
  • 配置系统:命令状态和用户偏好存储在配置中
  • 权限系统:命令执行前进行权限检查
  • 任务系统/tasks 命令管理后台任务
  • 记忆系统/memory 命令管理记忆文件
  • 成本跟踪/cost 命令显示费用信息

小结

Claude Code 的常用斜杠命令体系覆盖了会话管理、资源监控、数据持久化和任务管理等核心场景。通过分层的命令类型、统一的执行生命周期和优化的加载策略,这些命令既保证了功能完整性,又兼顾了性能和用户体验。命令的分类设计和别名系统进一步提高了可用性,使得用户能够高效地完成日常操作。

相关推荐
测试修炼手册10 小时前
[测试技术] JUnit 6 入门与实战:断言、参数化与 Mockito
数据库·junit·sqlserver
吴声子夜歌10 小时前
Redis 3.x——集群故障转移
java·数据库·redis·集群
国服第二切图仔10 小时前
13其他工具 - Skill/LSP/Sleep等
linux·运维·里氏替换原则
名不经传的养虾人10 小时前
从0到1:企业级AI项目迭代日记 Vol.71|系统显示正常,但实际上什么都没发生
数据库·人工智能·ai编程·ai工作流·企业ai
尽兴-10 小时前
企业数据库选型与演进:Oracle、达梦、MySQL 与分库分表实践
数据库·mysql·oracle·分库分表
暴力求解11 小时前
Linux ---线程控制(二)
linux·运维·服务器·操作系统
空中湖11 小时前
Spring AI Function Calling 完全指南:让 AI 查数据库、调 API、发通知
数据库·人工智能·spring
梦痕长情12 小时前
等保三级三权账户
linux·运维·服务器
金伟API102412 小时前
常见的SQL面试题:经典50例
数据库·人工智能·笔记·sql·学习
谜之锋13 小时前
银河麒麟 Debian 系统离线deb包安装Mariadb 数据库指南
数据库·debian·mariadb