惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
有赞技术团队
有赞技术团队
Jina AI
Jina AI
H
Help Net Security
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
B
Blog RSS Feed
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
U
Unit 42
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MongoDB | Blog
MongoDB | Blog
美团技术团队
M
MIT News - Artificial intelligence
阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
Microsoft Security Blog
Microsoft Security Blog
IT之家
IT之家

Tony Bai

Rust重写运动,到底是真香还是被吹爆? 刚刚,DeepSeek开源Harness:把Agent拆成插件,一切皆可换 Google官方下场安利:AI时代,Go才是“最适合”的编程语言 从 Mozilla 孤儿到独立王国:起底 Rust 基金会如何“养大”一门产业级语言 扎克伯格罕见发万字长文:超级智能不能被少数人垄断,必须属于每一个人 3600人、95%覆盖率、24万次拦截:Cloudflare怎么用AI把“提效不降质”变成现实 1.5万星背后:Google首次揭秘Agent Skills是怎么“造”出来的 Go 核心团队公开新提案流程设计:加权投票、多轨评审,能拯救积压的近千个提案吗? Go 密码学前掌门人亲自提案:crypto/passkey 要把“免密登录”这件事一次性做对 Rust官方发文:AI 可以审代码,但不能写代码 AI智能体的记忆,终于有人认真研究“文件系统”这条路了——新论文给出五个反直觉答案 三年磨一剑!Go 桌面框架 Wails 发布 v3公测版:多窗口、AST 绑定、透明构建系统一次到位 Go 正在背离初心?一条 Reddit 热帖,暴露了 Go 社区最深的分歧:简单,到底能坚持多久? 谷歌重磅论文:多智能体不是万能药!260组实验实测出AI 智能体的第一条“缩放定律” YC亲自下场开源内部Harness:QM,一个“多人在线”的公司级Agent操作系统 前谷歌工程师万字拆解:AI替你写代码的时代,你更需要写好一份设计文档 隐退三年后杀回来:HashiCorp创始人官宣二次创业,这次要做「万物的多路复用器」 Thoughtworks最新报告:代码生成不再是瓶颈,“没人能验证”才是! 刚刚,MCP协议迎来“史上最大更新”:State彻底消失,Claude率先适配支持 Go 1.28 大动作:泛型集合终于要进标准库了,Set、树形Map、堆一次性标准化 上次说“没有靠谱的尺子”,这次 Dex Horthy 找到了一把——Opus 5 实测通过率只有 24% AI 写了 75% 的代码,工程师却越来越慌:“黑灯软件工厂”的问题不在 harness,而在模型本身 不用 Python,也能训练大模型:两年之后再看 Go 语言机器学习框架 GoMLX 百万行代码,两周搞定!Anthropic揭秘AI代码迁移六步法:秘诀不是改代码,是改流程 重磅!Tokio官方发布全栈框架Topcoat:不用WASM,AI时代Rust也能“糊”网页了 软件工厂的明与暗:当代码可以自动生产,人类为何必须留下一盏灯? Twitter之父再出手:Block开源Buzz,要让人类和AI Agent「同工同权」 Go 密码学维护者放大招:把 Passkey 存成一行字符串,还顺手为 Go 1.28 写好了 API Loop Engineering才火两个月,硅谷已经卷出“Graph Engineering”了 我开源了 cc-session-migrate :让 Claude Code 会话在多台机器之间自由迁移
ccsa:给 Claude Code 的 session 起个人类可记的名字,一键 ...
Tony Bai · 2026-08-02 · via Tony Bai

本文永久链接https://tonybai.com/2026/08/02/ccsa-claude-code-session-alias-tool

你有没有过这样的时刻:打开终端想 resume 昨天的某个 Claude Code session,却在 --resume 的列表里翻来翻去,最后干脆重开一个——于是好不容易攒下的上下文,又得从头喂一遍。

大家好,我是Tony Bai。

假设你同时在推进三条线:一个前端鉴权改造、一个后端 API 重构、一份技术调研。按最佳实践,每条线各开一个 Claude Code session,让上下文保持聚焦、互不污染。

头几天还好。可等你退出、隔天回来想接着干的时候,问题来了:

  • session ID 是一串 UUID(198d4193-3a16-4051-8dfa-a9dac573c933),你根本记不住哪条线对应哪个;
  • claude --resume 不带参数倒是弹个 picker,但它只列当前目录下的 session,你在 backend-api 目录里看不到 frontend-auth 那条;
  • claude --name xxx 只能在启动时设名,事后想起要改个名?没门;
  • 自动派生的名字(像 multi-agent-d5)也看不出具体在干嘛。

于是你只能要么重开 session 重喂上下文,要么把几个 UUID 存进备忘录贴来贴去。这件事很小,但每天都在发生。

为了说清痛点从哪来,先补一句背景。Claude Code 用 session 保留工作记忆,本地存成两类文件:

  • ~/.claude/sessions/<pid>.json —— 活跃 session 的注册表(含 sessionId、cwd、name、status);
  • ~/.claude/projects/<编码路径>/<sessionId>.jsonl —— 按项目存的 session 转录。

原生 CLI 给了三个相关能力:启动时 --name 命名、--resume <uuid> 恢复、--continue 续上当前目录最近一个。能力都有,但都卡在"要么事前、要么局部"——偏偏我们最缺的是"事后、跨项目、语义化"的别名。

ccsa 登场

cc-session-alias(命令名 ccsa)就是来填这个空白的。一句话定位:它不替代 claude --resume,只替你维护"别名 → UUID"的映射,并在恢复时把别名解析回 UUID 再交给 claude

它是个单二进制的 Go CLI,零运行时依赖、无 CGO、约 4MB,go install github.com/bigwhite/cc-session-alias@latest 即装即用。

五分钟上手

装好之后,最常见的链路长这样:

# 在某项目目录下,给当前最近活跃的 session 起个名
ccsa set agent-evolution

# 跨项目一览(短 ID + 项目名 + 创建日期)
ccsa list

# 看详情和存活态
ccsa info agent-evolution

# 一键 resume,还能透传参数给 claude
ccsa r agent-evolution --model fable

ccsa set 不带 --id 时,会自动发现当前工作目录最近的 session——它做了双层扫描:先扫活跃的 sessions/*.json,没有再 fallback 到历史转录 projects/<编码路径>/*.jsonl。所以你不需要手动去找 UUID。

恢复 session 有三种姿势,任选其一:

  • ccsa r <alias> —— 最短,进程直接被 claude --resume <uuid> 替换;
  • claude --resume <alias> —— 装个可选 shell wrapper 后,原生命令也透明支持别名(UUID 格式零开销透传,不认识的原样丢给 claude);
  • claude --resume $(ccsa get <alias>) —— 不装 wrapper,显式管道组合,最稳。

顺带还有 ccsa renameccsa rmccsa prune(清理指向已消失 session 的过期别名)和 ccsa info 显示的存活态——active (idle) / active (busy) / exited / gone,一眼看出这条 session 还在不在。

几个值得一提的小设计

不展开实现,只点三个让我觉得"这工具想清楚了"的地方:

一是双轨 resume。 ccsa r 走进程替换(syscall.Exec),没有多一层进程包装、TTY 控制干净;shell wrapper 则走 shell 函数拦截,对 UUID 输入零侵入。两条路独立工作,按你的习惯选。

二是存储很克制。 别名就存成一个 JSON:~/.cc-session-alias/aliases.json,目录 0700、文件 0600,写入走 tmp+rename 原子替换,文件坏了自动备份成 .bak 再起空表。人类可读可手改,没有数据库、没有后台进程。

三是 shell wrapper 的边界感。拦截 --resume/-r 的第一个参数,且只在参数不是 UUID 格式时才去解析;其它任何 claude 用法(claude -pclaude --continue、无参数等)一概不碰。装上之后你既有的肌肉记忆完全不受影响。

谁适合用

  • Claude Code 多线并行的重度用户:收益最直接,别名表一建,resume 不再翻列表。
  • 常在不同项目目录间跳的开发者ccsa list 给你一个跨项目的全局视图,--project 还能按项目过滤。
  • 喜欢把上下文管理做得干净的人:每个 session 一个语义化名字,配 prune 定期清理,别名表常年清爽。

上手建议与避坑

如果你打算试一下,给三条建议:

  1. 先在当前项目跑 ccsa set <一个你看一眼就知道在干嘛的名字>,体验下自动发现;命名规则是 [a-zA-Z0-9_-]、1–64 字符,别带空格和点。
  2. ccsa r 启用了 DisableFlagParsing,所以 --model 这类参数会原样透传给 claude——但也因此 r -h 不走 cobra 自动 help(工具自己处理了,会打一行用法)。这是有意的取舍。
  3. shell wrapper 是可选的。不装也能用 ccsa r 和管道姿势完整跑通;装了只是多一种"原生 claude --resume <别名>“的写法。装/卸用 ccsa install-hook / ccsa uninstall-hook,幂等、可回滚。

小结

回顾一下:Claude Code 的 session 机制本身够用,但"事后命名 + 跨项目视图 + 语义化恢复"这一块是空白。ccsa 用一个 4MB 的单二进制填上了它——set 自动发现、list 跨项目、info 三态存活、r 一键 resume,外加可选的透明 shell wrapper。

升华一句:好的工具不是替你做决定,而是把你已经在做的、重复而琐碎的那一步,缩短到三字符。 如果你也常在 --resume 的列表里翻找,不妨给 ccsa 一个机会。

如果哪天claude code原生自带session alias机制,那就果断丢掉这个工具就好^_^。不过在那之前,可以试用一下ccsa:

# From source (recommended)
go install github.com/bigwhite/cc-session-alias@latest

觉得好用的话,给个 ⭐ 是对开源作者最直接的鼓励。



还在为“复制粘贴喂AI”而烦恼?我的新专栏 AI原生开发工作流实战 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。