Latest posts
apic:给任何 HTTP API 一个命令行,不用再为每个服务写 CLI
apic 是一个可以把任何 HTTP API 变成命令行的工具:读取 API 的定义(OpenAPI / Swagger,或几行 YAML),每个接口生成一条命令,参数变成选项,带 shell 补全。
- 定义即命令:有 OpenAPI 文档的服务一条
site add接入;没有文档的内部服务,写几行 YAML 列出接口即可。 - 多环境与认证:dev / prod 各自的地址和凭证,支持 bearer、basic、apikey、登录换 token、外部命令取 token;生产环境写操作要
--yes。 - 取值、分页、换格式:
--pick跨层取字段、改列名,--all-pages翻页合并,-o table/yaml直接看。 - 人和 AI agent 共用:stdout 只有响应体,退出码有固定含义,
apic skill生成给 agent 的SKILL.md;密钥在-v、--dry-run和报错里一律打码。
把 Claude Code、Codex 当成可验收的任务来跑:gofer,一个自托管的 agent 控制面
同时开着三四个 Claude Code 和 Codex 会话、分布在两台电脑和一个容器里的时候,我经常答不上这几个问题:哪个会话在等我回复?那个让它改测试的 agent 到底改了什么,跑过测试没有?昨天晚上派出去的活,现在是做完了、卡住了,还是早就报错退出了?出门在外,手机上能不能看一眼、点个批准?
gofer 是我为这件事写的工具。一句话:你的 agent、你的机器、一个控制面——把 Claude Code、Codex、ACP agent 或者普通命令,作为可追踪、可验收的任务,跑在你自己的每台机器上,不上云,worker 也不需要开入站端口。

让 agent 跑 14 轮、换 3 次段还记得第 1 轮的约束:suga 的长会话做法
agent 在一个会话里干久了,会出三种问题:上下文塞满后开始压缩,压缩掉的恰好是你第一轮交代的约束;每次请求都背着几千 token 的固定开销,会话越长越贵;出了问题想回头查“它到底做了什么”,却没有记录可查。
suga 是我用 Go 写的个人 coding agent,目标是一个会话能陪我干一整天活。这篇讲它在长会话上的几处取舍,哪些有数据支撑、哪些试过没成,以及它和我的任务平台 gofer 怎么配合。suga 本身就是在 gofer 上由 agent 一批批写出来的。
当前版本 v0.49,
v0阶段次版本之间可能有不兼容变更;MIT 许可;以下是suga的一些介绍。

miglite v0.8.0:迁移文件可以嵌进二进制了
上一篇写 miglite 是 6 月,当时还是 v0.4.0。三个多月里,它发到了 v0.8.0:v0.4.0..v0.8.0 之间有 69 个提交,4 次发版。
我这次最想解决的是部署时带着 migrations/ 目录的问题。顺便把几处“参数能传进去、实际不起作用”的行为补上了。
