Skip to content

Latest commit

 

History

History
383 lines (274 loc) · 11.4 KB

File metadata and controls

383 lines (274 loc) · 11.4 KB

cc9s

类似 k9s 风格的 Claude Code 会话、技能与 agent 资源管理终端工具

Go version License Release

English | 简体中文


为什么需要 cc9s?

Claude Code 将会话数据以 JSONL 文件存储在 ~/.claude/ 下。当你在几十个项目中积累了数百个会话后,查找和管理它们变得非常困难。

cc9s 提供了一个全屏终端 UI(灵感来自 k9s),让你无需离开键盘即可浏览、搜索、查看和恢复会话,并检查本地 Claude Code skills 和 agents。

演示

可以先看这段终端录屏:asciinema demo

一个很典型的使用流程是:

  1. :,输入 sessions
  2. / 开始实时搜索
  3. 输入 active 查看活跃 session,或输入 stale 查看不可靠的异常残留 session
  4. d 打开当前 session 的详情

功能

  • 双层导航 — Projects → Sessions,Enter 进入,Esc 返回
  • 项目总览 — 在项目层看到本地 session、skill、command、agent 摘要,并通过 d 查看项目路径和本地 Claude roots
  • 会话恢复 — 直接从 TUI 启动对应的 Claude Code 会话
  • 搜索与过滤/ 搜索,:context <name> 按项目过滤
  • 多选批量删除Space 选中,x 批量删除
  • 会话详情 — 查看会话统计、摘要和工具调用日志
  • Skill 资源页 — 查看来自项目级、用户级和 plugin 的可用 skills / commands
  • Agent 资源页 — 查看来自项目级、用户级和 plugin 的 file-backed agents,并区分 Ready / Invalid 状态
  • Tab 补全 — 自动补全命令和项目名
  • 完全键盘驱动 — 无需鼠标
  • 内置主题 — 4 种色彩预设(defaultdark-solidhigh-contrastgruvbox),通过 --theme 参数或 CC9S_THEME 环境变量切换
  • CLI 模式 — 面向 shell、自动化和 AI agent 的只读命令套件(cc9s statuscc9s projects listcc9s sessions list 等)
  • JSON 输出 — 通过显式 --json 返回结构化结果

截图

项目列表 — 浏览所有 Claude Code 项目

项目列表

搜索 — 按 / 实时搜索会话

搜索

全部会话 — 查看所有项目下的会话

全部会话

项目会话 — 按项目上下文筛选会话

项目会话

会话详情 — 按 d 查看统计、摘要和工具使用

会话详情

会话日志 — 按 l 浏览对话轮次

会话日志

命令模式 — 按 : 输入命令,支持 Tab 补全

命令模式

Skills:skills 浏览可用的 skills 和 commands

Skills

Agents:agents 浏览可用的 file-backed agents

Agents

快速开始

环境要求

  • Go 1.25+
  • 已安装 Claude Code(会话数据读取自 ~/.claude/
  • macOS / Linux(建议使用支持真彩色的终端)

安装

Homebrew(macOS / Linux):

brew tap kincoy/tap
brew install cc9s

使用 curl 下载最新 Release:

OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"

case "$ARCH" in
  x86_64) ARCH="amd64" ;;
  arm64|aarch64) ARCH="arm64" ;;
  *) echo "unsupported arch: $ARCH" >&2; exit 1 ;;
esac

curl -fsSL "https://github.com/kincoy/cc9s/releases/latest/download/cc9s-${OS}-${ARCH}" -o cc9s
chmod +x cc9s
sudo mv cc9s /usr/local/bin/cc9s

Go install:

go install github.com/kincoy/cc9s@latest

从源码构建:

git clone https://github.com/kincoy/cc9s.git
cd cc9s
go build -o cc9s .

运行

cc9s

首次启动时,cc9s 会扫描 ~/.claude/projects/,然后发现项目级、用户级和已安装 plugin 中可用的资源页。目前包括 skillscommands 和 file-backed agents。如果本地资源很多,首次加载可能需要几秒。

CLI

cc9s 也提供一套只读 CLI,适合 shell 工作流、自动化任务和 AI agent 使用。cc9s 无参数时仍然启动 TUI;传入参数时则进入 CLI 模式。

先从这个命令开始

如果你只想先知道本地 Claude Code 环境现在大概是什么状态,直接运行:

cc9s status

示例输出:

Claude Code Environment

  Projects:   12
  Sessions:   148
  Resources:  39
  Total Size: 82.4 MB

Lifecycle
  Active:    2
  Idle:      9
  Completed: 121
  Stale:     16

Issues
  ! stale sessions (16) [11%]
    Run: cc9s sessions cleanup --dry-run
  ! invalid skills (1)
    Run: cc9s skills list --json

Top Projects
  alpha-service   42 sessions (1 active)  18.6 MB
  docs-site       31 sessions (0 active)   7.2 MB
  infra-tooling   27 sessions (1 active)  23.5 MB
  api-gateway     24 sessions (0 active)  11.4 MB
  playground      12 sessions (0 active)   4.1 MB

如果是给自动化或 AI agent 用,就运行:

cc9s status --json

智能清理建议

cc9s sessions cleanup --dry-run 现在会对会话内容价值打分,并按 recommendation 分层展示清理建议:

cc9s sessions cleanup --dry-run

Session Cleanup Preview (dry-run — no data was modified)

  Filters:  state=stale

Summary
  Matched:  16 sessions across 5 projects (4.2 MB)

Recommendations
  Delete:   12 sessions (safe to remove)
  Review:   3 sessions (check before deleting)
  Keep:     1 sessions (valuable content)

每个会话都会基于对话深度、工具使用、token 投入和内容体量做评估。使用 --json 可以拿到完整的 recommendation、score 和 reasons 字段。

完整帮助

CLI 的完整命令面,直接以二进制帮助输出为准:

cc9s --help

  Launch the interactive TUI when no command is provided.

  Add --json for machine-readable output.
  Use `cc9s <resource> --help` for resource-specific flags and enums.

  USAGE

    cc9s [command] [--flags]

  EXAMPLES

    # Quick environment overview
    cc9s status --json

    # Find active sessions, then inspect one
    cc9s sessions list --state active --json
    cc9s sessions inspect <id> --json

    # Preview cleanup candidates
    cc9s sessions cleanup --dry-run --older-than 7d

    # Inspect one project or list scoped resources
    cc9s projects inspect cc9s
    cc9s skills list --project cc9s --scope project --json

  COMMANDS

    agents [command] [--flags]         List and inspect agents
    completion [command]               Generate the autocompletion script for the specified shell
    help [command]                     Help about any command
    projects [command] [--flags]       List and inspect projects
    sessions [command] [id] [--flags]  List, inspect, and clean up sessions
    skills [command] [--flags]         List skills and commands
    status                             Environment health overview
    themes                             List available themes
    version                            Print version

  FLAGS

    -h --help                          Help for cc9s
    --json                             Output JSON
    -v --version                       Print version

--theme <name>CC9S_THEME 仍然可用,但它们会在 main.go 里先于 CLI 分发被处理,所以不会出现在上面的 Cobra/Fang help 输出里。

如果想看资源级帮助、示例和合法枚举值,可以直接运行:

cc9s projects --help
cc9s sessions --help
cc9s skills --help
cc9s agents --help

版本输出默认是人类可读文本;加上 --json 后返回结构化结果:

cc9s --version
cc9s --version --json

快捷键

导航

按键 操作
j / 向下移动
k / 向上移动
g 跳到顶部
G 跳到底部
Enter 选择 / 进入
Esc 返回 / 取消
q 退出

操作

按键 操作
/ 搜索当前资源
s 循环切换排序字段
S 反转排序方向
d 查看项目、会话、skill 或 agent 详情
e 编辑选中的 skill、command 或 agent 文件
Space 选中/取消选中会话
x 删除选中会话
Ctrl+D / Ctrl+U 半页向下 / 向上滚动
l 查看会话日志
0 切换到"全部项目"上下文
? 帮助面板

命令模式

输入 : 进入命令模式。按 Tab 自动补全。

命令 说明
:skills 显示可用的 skills 和 commands
:agents 显示可用的 file-backed agents
:sessions 显示跨项目会话
:projects 显示项目列表
:context all 将当前资源切换到全部项目上下文
:context <名称> 按项目上下文过滤当前资源
:cleanup 在 sessions 视图中切换 RECOMMEND 清理建议列
:q 退出

工作原理

~/.claude/
├── projects/
│   ├── <编码后的项目路径>/
│   │   ├── *.jsonl          # 会话数据(对话历史)
│   │   └── sessions/        # 活跃会话标记
│   │       └── <pid>.json
│   └── ...
├── skills/                   # 用户级本地 skills
├── commands/                 # 用户级本地 commands
├── agents/                   # 用户级本地 agents
├── plugins/                  # 已安装 plugin 的缓存和元数据
└── sessions/                 # 全局活跃会话索引

cc9s 读取 ~/.claude/projects/ 下的 JSONL 文件,然后从项目 .claude/skills / .claude/commands / .claude/agents、用户 ~/.claude/skills / ~/.claude/commands / ~/.claude/agents 以及已安装 plugin 中发现可用资源,并在 TUI 中统一展示。agent 资源的可用性会和 claude agents 识别结果对齐,v1 不纳入 built-in agents。它 不会 修改 Claude Code 的会话数据,删除操作仍然需要明确确认。

贡献

欢迎贡献!请随时提交 Pull Request。

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'feat: add amazing feature')
  4. 推送分支 (git push origin feature/amazing-feature)
  5. 发起 Pull Request

致谢

  • k9s — cc9s 键盘驱动 TUI 交互设计灵感来源
  • Mole — cc9s CLI 设计的灵感来源
  • Bubble Tea / Lip Gloss — 优秀的 Go TUI 框架

许可证

MIT