chezmoi 是一个用 [[Go]] 编写的开源 dotfiles 管理工具,帮助开发者在多台机器上统一管理个人配置文件(如 ~/.gitconfig、~/.zshrc、~/.vimrc 等)。
发音为 /ʃeɪ mwa/ (shay-moi),是法语”在我家”的意思,名称寓意让每台机器都拥有”家的感觉”。
区别于 [[GNU Stow]] 这类基于符号链接的工具,chezmoi 将配置文件复制到目标位置(而非创建 symlink),并通过 Go 模板语言实现机器之间的差异化配置,同时内置密钥管理和加密能力。
chezmoi 解决的问题
传统
Read more ...
最近在整理自己的 [[Claude Code]] 配置时,我做了一件以前一直没认真做过的事情,就是打开 /context 命令,把每一类内容到底吃掉多少 token 逐项看了一遍。结果有点出乎意料:在对话真正开始、我还一个字都没输入之前,光是各种工具定义就已经占掉了 3 万多 token。其中很大一块来自我这一两年陆陆续续接进来的十几个 [[MCP]] 服务,加起来 100 多个工具。每接入一个服务、每多写一行看似无害的描述,都是在往本就有限的上下文窗口里塞东西。
这篇文章记录 MCP 工具描述消耗上下文的方式,以及我实际用过的瘦身办法。办法分两类
Read more ...
前段时间在给 [[Claude Code]] 配置多账号切换的时候,我翻了一圈官方文档,才发现它的环境变量参考页已经膨胀到了将近三百个条目,按字母顺序排下来长得吓人。大部分人日常用 Claude Code 可能只知道 ANTHROPIC_API_KEY 这一个变量,但实际上从模型选择、代理网络、超时时间,到遥测隐私、MCP 调优、安全沙箱,几乎每一个功能背后都藏着一批可以精细控制的开关。这篇文章就是我把这些变量重新梳理了一遍之后的笔记,挑出真正对日常开发有用的部分,也顺带记录几个我自己踩过坑之后才发现的隐藏配置。
环境变量为什么值得研究
Clau
Read more ...
2026-07-23
claude-code
,
environment-variables
,
cli-tools
,
developer-tools
,
ai-coding-assistant
,
mcp
,
anthropic
,
productivity
,
terminal
,
configuration
,
devops
,
ai-agent
翻了一下博客的归档,我从 2014 年就开始写 [[Vim]] 相关的文章了,从 buffer 管理、寄存器、宏,到各种插件的推荐,十多年下来积累了几十篇。这期间我也一直在 Vim 和 [[NeoVim]] 之间来回横跳:服务器上随手 vi 打开配置文件,本地开发用 NeoVim,在 [[Obsidian]] 和 [[IntelliJ IDEA]] 里也都装了 Vim 模拟插件。经常有朋友问我,现在 2026 年了,到底应该学 Vim 还是 NeoVim,两者到底差在哪里。这篇文章就把我这些年的观察和体验整理出来,希望能帮到还在纠结的人。
先说结论
Read more ...
前几天例行 brew upgrade 之后,[[Syncthing]] 其中的某一个高频使用的同步文件夹就一直卡在 Preparing to Sync 状态,进度条纹丝不动,CPU 占用却莫名升高。我最初以为是网络问题或者对端设备没启动,结果检查一遍发现所有的其他 Syncthing 节点都正常,就是本机 macOS 这端不动弹。这个状态持续了将近一个小时,才让我意识到不对劲,开始认真排查。
问题背景
Syncthing 是一款开源的点对点文件同步工具,不依赖任何中心服务器,数据直接在你自己的设备之间流转。我用它同步多台设备上的工作目录和重要文件
Read more ...
过去一年里软件的开发方式发生了一个我自己都没料到的转变。以前写代码是工程师对着编辑器敲,现在更多时候是同时开着好几个 [[Claude Code]]、[[Codex]] 之类的编码 Agent,让它们各自去完成一个任务,工程师只负责在中间调度、审阅、拍板。这种”我带一队 Agent 干活”的模式效率确实高,但很快就撞上了一堆现实的麻烦:几个 Agent 都在同一个仓库里改文件,分支互相污染;终端窗口开了一大排,切来切去分不清哪个是哪个;改完还得一个个去看 diff、跑测试、开 PR。工具还是那套为单人设计的 IDE,可我干活的方式早就不是单人了。
直到
Read more ...
最近有朋友来问我 Git 分支和发布流程相关的问题,聊着聊着我发现,分支管理这块我自己算是比较熟悉,平时用起来也有一套固定的习惯,但当话题转到 release 发布流程的时候,我反倒得停下来想一想。
因为发布这件事,在不同的团队里真的有截然不同的管理方式。有的团队一天上线十几次,有的团队一个月才发一个大版本;有的靠一条流水线全自动,有的还保留着人工审批的关卡;有的发布的是后端服务,回滚一次只要几分钟,有的发布的是手机 App,版本一旦进了用户手机,想收回来就没那么容易了。
同样是把代码送到用户面前,路径可以差得非常远。这次朋友的提问正好戳中了这个我一
Read more ...
2026-07-03
git
,
git-flow
,
github-flow
,
trunk-based-development
,
ci-cd
,
release-management
,
devops
,
version-control
,
semantic-versioning
,
branching-strategy
,
mobile-release
,
backend-deployment
什么是 Herdr
Herdr 是一个运行在终端里的 AI 编码 agent 多路复用器(agent multiplexer)。官方用一句话概括它的定位:Herdr 之于编码 agent,就像 [[tmux]] 之于终端。它运行在你的 agent 运行的地方——本地机器、服务器,或任何可以 ssh 进去的环境,让你在一个终端里同时观察和操作多个正在工作的 agent。
随着 [[Claude Code]]、[[Codex]]、[[OpenCode]] 这类终端原生的编码 agent 流行起来,开发者常常会同时跑好几个 agent 处理不同的任务或仓库
Read more ...
最近在给自己的 AI 编程工作流加入 [[Headroom]] 上下文压缩工具时,遇到了一个需要特别注意的配置问题。相信有不少人和我一样,为了降低成本或者改善访问体验,已经在 [[Claude Code]] 或 [[Codex]] 里配置了第三方 API 代理,比如一些第三方聚合平台或者自建的转发服务。这时候想再套上一层 Headroom 做 Token 压缩,就需要特别注意配置细节,不然两层代理会打架。
为什么要用第三方代理
先简单说一下背景。使用 Claude Code 或 Codex 的时候,默认走的是 Anthropic 或 OpenAI 的
Read more ...
最近我在升级 [[Claude Code]] 的时候,翻 changelog 注意到一个一直被标着 experimental 的功能开始稳定下来,那就是 teammate,官方文档里叫 Agent Teams,社区里很多人习惯叫它 Teammate Mode,也就是队友模式。说实话,第一次看到这个名字我是有点警惕的,因为这一两年里 AI 工具圈最不缺的就是各种听起来很唬人、用起来很鸡肋的”多智能体协作”概念。但真正把它打开用了几天之后,我发现这次是真的不太一样,它解决的是一个我自己每天都会撞上的实际问题,所以想专门写一篇文章把它讲清楚。
这篇文章主
Read more ...