Verne in GitHub

chezmoi Go 语言编写的跨平台 dotfiles 管理工具

chezmoi 是一个用 [[Go]] 编写的开源 dotfiles 管理工具,帮助开发者在多台机器上统一管理个人配置文件(如 ~/.gitconfig、~/.zshrc、~/.vimrc 等)。 发音为 /ʃeɪ mwa/ (shay-moi),是法语”在我家”的意思,名称寓意让每台机器都拥有”家的感觉”。 区别于 [[GNU Stow]] 这类基于符号链接的工具,chezmoi 将配置文件复制到目标位置(而非创建 symlink),并通过 Go 模板语言实现机器之间的差异化配置,同时内置密钥管理和加密能力。 chezmoi 解决的问题 传统 Read more ...


给 MCP 工具描述瘦身 减少 AI 上下文消耗的实践

最近在整理自己的 [[Claude Code]] 配置时,我做了一件以前一直没认真做过的事情,就是打开 /context 命令,把每一类内容到底吃掉多少 token 逐项看了一遍。结果有点出乎意料:在对话真正开始、我还一个字都没输入之前,光是各种工具定义就已经占掉了 3 万多 token。其中很大一块来自我这一两年陆陆续续接进来的十几个 [[MCP]] 服务,加起来 100 多个工具。每接入一个服务、每多写一行看似无害的描述,都是在往本就有限的上下文窗口里塞东西。 这篇文章记录 MCP 工具描述消耗上下文的方式,以及我实际用过的瘦身办法。办法分两类 Read more ...


Claude Code 环境变量完全指南:解锁隐藏特性与效率配置

前段时间在给 [[Claude Code]] 配置多账号切换的时候,我翻了一圈官方文档,才发现它的环境变量参考页已经膨胀到了将近三百个条目,按字母顺序排下来长得吓人。大部分人日常用 Claude Code 可能只知道 ANTHROPIC_API_KEY 这一个变量,但实际上从模型选择、代理网络、超时时间,到遥测隐私、MCP 调优、安全沙箱,几乎每一个功能背后都藏着一批可以精细控制的开关。这篇文章就是我把这些变量重新梳理了一遍之后的笔记,挑出真正对日常开发有用的部分,也顺带记录几个我自己踩过坑之后才发现的隐藏配置。 环境变量为什么值得研究 Clau Read more ...


NeoVim 和 Vim 对比:十年 Vim 用户的选择与思考

翻了一下博客的归档,我从 2014 年就开始写 [[Vim]] 相关的文章了,从 buffer 管理、寄存器、宏,到各种插件的推荐,十多年下来积累了几十篇。这期间我也一直在 Vim 和 [[NeoVim]] 之间来回横跳:服务器上随手 vi 打开配置文件,本地开发用 NeoVim,在 [[Obsidian]] 和 [[IntelliJ IDEA]] 里也都装了 Vim 模拟插件。经常有朋友问我,现在 2026 年了,到底应该学 Vim 还是 NeoVim,两者到底差在哪里。这篇文章就把我这些年的观察和体验整理出来,希望能帮到还在纠结的人。 先说结论 Read more ...

2026-07-22 vim , neovim , editor , lua , lsp , treesitter , developer-tools

Syncthing 升级 2.0 后同步卡在 Preparing to Sync 的解决方法

前几天例行 brew upgrade 之后,[[Syncthing]] 其中的某一个高频使用的同步文件夹就一直卡在 Preparing to Sync 状态,进度条纹丝不动,CPU 占用却莫名升高。我最初以为是网络问题或者对端设备没启动,结果检查一遍发现所有的其他 Syncthing 节点都正常,就是本机 macOS 这端不动弹。这个状态持续了将近一个小时,才让我意识到不对劲,开始认真排查。 问题背景 Syncthing 是一款开源的点对点文件同步工具,不依赖任何中心服务器,数据直接在你自己的设备之间流转。我用它同步多台设备上的工作目录和重要文件 Read more ...


Orca ADE 体验:为 AI 编码 Agent 而生的开发环境,用 worktree 让一群 Agent 并行干活

过去一年里软件的开发方式发生了一个我自己都没料到的转变。以前写代码是工程师对着编辑器敲,现在更多时候是同时开着好几个 [[Claude Code]]、[[Codex]] 之类的编码 Agent,让它们各自去完成一个任务,工程师只负责在中间调度、审阅、拍板。这种”我带一队 Agent 干活”的模式效率确实高,但很快就撞上了一堆现实的麻烦:几个 Agent 都在同一个仓库里改文件,分支互相污染;终端窗口开了一大排,切来切去分不清哪个是哪个;改完还得一个个去看 diff、跑测试、开 PR。工具还是那套为单人设计的 IDE,可我干活的方式早就不是单人了。 直到 Read more ...


Git 分支管理与发布上线流程实战指南

最近有朋友来问我 Git 分支和发布流程相关的问题,聊着聊着我发现,分支管理这块我自己算是比较熟悉,平时用起来也有一套固定的习惯,但当话题转到 release 发布流程的时候,我反倒得停下来想一想。 因为发布这件事,在不同的团队里真的有截然不同的管理方式。有的团队一天上线十几次,有的团队一个月才发一个大版本;有的靠一条流水线全自动,有的还保留着人工审批的关卡;有的发布的是后端服务,回滚一次只要几分钟,有的发布的是手机 App,版本一旦进了用户手机,想收回来就没那么容易了。 同样是把代码送到用户面前,路径可以差得非常远。这次朋友的提问正好戳中了这个我一 Read more ...


herdr 一个窗口调度多个 Coding Agent

什么是 Herdr Herdr 是一个运行在终端里的 AI 编码 agent 多路复用器(agent multiplexer)。官方用一句话概括它的定位:Herdr 之于编码 agent,就像 [[tmux]] 之于终端。它运行在你的 agent 运行的地方——本地机器、服务器,或任何可以 ssh 进去的环境,让你在一个终端里同时观察和操作多个正在工作的 agent。 随着 [[Claude Code]]、[[Codex]]、[[OpenCode]] 这类终端原生的编码 agent 流行起来,开发者常常会同时跑好几个 agent 处理不同的任务或仓库 Read more ...


Claude Code 第三方 API 代理配置 Headroom

最近在给自己的 AI 编程工作流加入 [[Headroom]] 上下文压缩工具时,遇到了一个需要特别注意的配置问题。相信有不少人和我一样,为了降低成本或者改善访问体验,已经在 [[Claude Code]] 或 [[Codex]] 里配置了第三方 API 代理,比如一些第三方聚合平台或者自建的转发服务。这时候想再套上一层 Headroom 做 Token 压缩,就需要特别注意配置细节,不然两层代理会打架。 为什么要用第三方代理 先简单说一下背景。使用 Claude Code 或 Codex 的时候,默认走的是 Anthropic 或 OpenAI 的 Read more ...


Claude Code Teammate Mode 体验:让多个 AI 智能体在终端里组队干活

最近我在升级 [[Claude Code]] 的时候,翻 changelog 注意到一个一直被标着 experimental 的功能开始稳定下来,那就是 teammate,官方文档里叫 Agent Teams,社区里很多人习惯叫它 Teammate Mode,也就是队友模式。说实话,第一次看到这个名字我是有点警惕的,因为这一两年里 AI 工具圈最不缺的就是各种听起来很唬人、用起来很鸡肋的”多智能体协作”概念。但真正把它打开用了几天之后,我发现这次是真的不太一样,它解决的是一个我自己每天都会撞上的实际问题,所以想专门写一篇文章把它讲清楚。 这篇文章主 Read more ...


最近文章

  • Nowledge Mem 使用半年体验:让所有 AI Agent 共享同一份记忆 今年 2 月份我把 [[Nowledge Mem]] 装到 MacBook 上,想解决的是一个很常见的问题:我希望在 [[Perplexity]] 网页上查过的资料,直接在 Claude Code 中可以记住。但没想到大半年过去,它已经变成了我每天都在用的软件,而且是那种「不在后台跑着就会觉得别扭」的存在。我在 Claude Code、[[Codex]]、[[OpenClaw]] 里开的每一个会话,开头都会先从它这里拿一份简报;网页上和 AI 聊过的东西会自动同步进去;我做过的决定、踩过的坑、服务器的配置,都沉淀成一条条可以被任何 Agent 检索的记忆。说它是我所有 Agent 的记忆和大脑,一点都不夸张。
  • Aside AI 浏览器介绍:既能自己干活,也能接入 Agent 前两天整理了一篇 AI 浏览器自动化方案怎么选,把 Playwright、MCP、Agent 专用浏览器、WebMCP 这些路线梳理了一遍。在那篇文章里我提到,「内置 Agent 的 AI 浏览器」这一类里我最看好的是 Aside,原因是它的密码管理器设计得很用心,但篇幅有限没有展开。今天就单独写一篇,聊聊这个浏览器到底能做什么、和 [[Comet]]、[[Dia Browser]] 有什么不一样,以及我现在是怎么用它的。如果你看完想试试,可以用我的邀请链接 https://aside.com/r/UpYKnv9ziq 注册,注册后会额外获得 100 Credits。
  • AI 浏览器自动化方案怎么选:从 Playwright、MCP 到 Agent 浏览器和 WebMCP 的全景梳理 最近我一直在研究「让 AI 用浏览器」这件事。起因是看到 Nowledge 写了一个 browse-now Skill,可以直接让 Claude 控制浏览器,紧接着又偶然发现了 [[Ego Lite]] 这款专门为 Agent 设计的浏览器。顺着这条线,我把 Aside、BrowserOS、Deta Surf 这几款 AI 浏览器挨个调研了一遍,越看越发现它们的侧重点和实现方式差别很大:有人在做测试框架,有人在做浏览器插件,有人从 Chromium 内核开始为 Agent 改造浏览器,还有人在推动新的 Web 标准。它们看起来都在「让 AI 操作网页」,解决的却根本不是同一个问题。
  • 入手 GL.iNet Comet Pro(RM10):支持 Wi-Fi 6 的远程 IP KVM 家里的 [[Homelab]] 一直是一台 4 盘位的小主机跑 [[Proxmox VE]],上面跑着 Ubuntu 虚拟机、一堆 Docker 服务和下载机。平时远程管理全靠 SSH 加 [[Tailscale]],只要系统还活着基本没什么问题。真正让我不放心的是系统起不来的时候:升级内核后卡在启动界面、改网卡配置时手滑导致网络没起来、BIOS 被重置后不再从正确的硬盘启动,这时候 SSH 连不上,Tailscale 也不会在线,人不在家就只能干等。最近正好赶上一波促销,我入手了 [[GL.iNet]] 的 Comet Pro(型号 GL-RM10)远程 [[IP KVM]],叠加各种限时优惠之后实际支付 590.76 元,算是把 Homelab 远程管理的最后一块短板补上了。
  • 用 PowerContext 给多个 Coding Agent 做任务交接 现在我写代码基本是 [[Codex]] 和 [[Claude Code]] 轮着用。有时候是 Codex 的额度先用完了,有时候是某一步我觉得 Claude Code 更合适,于是一个任务经常要在两个 Agent 之间换手。真正麻烦的不是换工具本身,而是换手的那一刻:新会话对前面发生的事一无所知。之前选了哪个库、哪个旧接口不能动、改了哪些文件、测试跑没跑过,这些信息全都留在上一段对话里。我只能手动复述一遍,或者把一大段聊天记录贴回去,前者容易漏掉关键约束,后者浪费 Token,还会让模型在几千行历史里抓不住重点。说到底,我缺的不是一个更大的上下文窗口,而是一份能在 Agent 之间传递、而且接手方可以核对的「当前状态」。在写这篇文章的时候还出现了另外一个思路就是利用 [[magpie]] 将模型路由给充足额度的账号,这个之后再写文章说。