九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

cross-agent-teams 发布: 让本机的多个 coding agent 互相通信

我现在本机长期开着好几个 coding agent 一起工作: Claude Code 跑主开发, Codex 在另一边做 review 或者跑长任务, 偶尔再拉一个 opencode 做点别的. 工具都不缺, 真正缺的是: 它们之间没有任何官方互通方式. 想让 Codex 把刚发现的问题”告诉”那边的 Claude Code, 只能我自己把内容复制过去. Claude Code 这种纯 TUI 的 agent 还没有”被外部唤醒”的标准入口, 你给它写一段话, 它的 CLI 不会”叮”一下, 用户必须主动切窗口才能看到.

折腾了一阵以后, 我做了一个本地 MCP daemon, 叫 cross-agent-teams-mcp (项目内简称 xats), 就是给本机所有这些 agent 一个统一的邮箱和唤醒通道. 各 agent 还跑在自己原生的 CLI 里, 完全不用改 harness, daemon 只负责”传话”和”敲门”.

仓库地址: https://github.com/jtianling/cross-agent-teams-mcp

阅读全文....

Agent of Empires: 一个基于 tmux 的 AI agent 会话管理器

最近一段时间, 各种 AI coding agent 工具我都在试. 试来试去以后, 我越来越觉得, 真正麻烦的往往不是模型本身, 而是怎么把多个 agent 安排好: 谁在什么分支上工作, 谁在跑什么任务, 当前是不是卡住了, 要不要我去接管一下, 关掉界面以后它是不是还在继续跑. 这些事情如果全靠手工管理, agent 一多, 很快就乱了.

用了大半个月的 Agent of Empires 以后, 觉得可以认真写一下. 名字起得很大(以后简称 AoE) 不过它做的事情倒是挺朴素: 它不是重新造一整套”AI IDE”, 而是站在 tmuxgit worktree 这些已经很好用的基础设施上, 做了一个专门给 AI agent 用的会话管理器. AoE 最近刚到 v1.0.0, 整体已经比较成熟了.

仓库地址:

阅读全文....

dual-yazi: 给 Yazi 加上我想要的双栏模式

最近在终端里管理文件时, 我一直有点拧巴: 一方面, Yazi 这种新一代 terminal file manager 确实做得很好, 速度快, 预览强, 插件系统也灵活; 另一方面, 如果你像我一样长期用过 Midnight Commander, Total Commander 这类双栏文件管理器, 很多操作习惯其实已经刻在手上了.

所以这两天我干脆 fork 了一份 Yazi, 做了个 dual-yazi: https://github.com/jtianling/dual-yazi. 它不是另起炉灶重写一个文件管理器, 而是在原版 Yazi 上补上我自己最想要的一层工作流: 固定双栏, 每栏独立 tabs, 直接跨栏复制/移动, 以及单栏/双栏和预览模式的切换.

对我自己来说, 这是个挺自然的方向. 我喜欢 Yazi 这套比较现代的 TUI 文件管理体验, 但也一直怀念传统双栏管理器那种”左右两个目录永远摆在眼前”的直接感. 现在总算把这两边拼到一起了.

dual-yazi 双栏模式截图

仓库地址:

阅读全文....

只给 Spec, 不给代码: 也许这会成为一种新的软件发布方式

最近看到 openai/symphony 这个项目, 我第一反应不是”这个实现我想试试”, 而是”这个发布方式有点意思”.

因为它在 README 里给出的第一个选项, 不是先教你怎么安装官方实现, 而是先让你根据 SPEC.md 自己做一个. 官方当然也附了一个实验性的 Elixir 参考实现, 但那个被放在了第二个选项. 这个顺序本身就很说明问题: openai 真正想先传递出去的, 可能不是某一份具体代码, 而是这套系统的设计.

我感觉这件事情挺值得记一下. 随着 code agent 越来越强, 以后有些软件的”发布”, 也许真的不一定非得先附带一份完整源码, 而是可以先给出一份足够明确的 spec, 让大家各自用自己熟悉的语言和运行环境去实现. 代码还是会有, 但它开始更像是 spec 的一个实例, 而不是唯一的交付物.

阅读全文....

net-use 发布:监控 macOS app 实际访问了哪些 IP

有时候想给某个 app 配防火墙白名单, 最麻烦的不是配规则, 而是根本不知道它到底连了哪些地址. 而且现在很多 app 都不只是一个主进程, 还会拉起 helper, renderer, crash reporter 之类的子进程, 只盯着一个 PID 往往不够. 于是写了个小工具 net-use, 用来实时追踪指定 app 及其整个子进程树访问过的远端 IP, 并把结果去重输出出来.

仓库地址:https://github.com/jtianling/net-use

阅读全文....

skillsmgr 发布

最近在整理各种 AI 编程工具的 skills 时,发现每个工具都有自己的目录和格式,切来切去很容易乱。索性就做了一个统一管理的小工具:skillsmgr。它把 skills 集中安装到 ~/.skills-manager/ 里,然后通过一个统一的 .agents/skills/ 目录部署到项目中,目前支持 44 个工具。

仓库地址:https://github.com/jtianling/skills-manager

阅读全文....

编程语言语法比较网站

一直以来, 经常需要同时使用多种编程语言, 要么是自己在自学一个新的编程语言, 正在做一些练手的项目, 同时公司的项目也在开发. 或者在某个项目中, 同时写前后端, 而前后端用的分别是不同的语言, 这些时候, 我都有一个想法, 要是有个网站, 能并排列出我正在使用的几个语言的语法示例就好了, 这些在切换编程语言的时候, 脑子不容易乱. 这么多年过去了, 因为大模型的成熟, 写这么一个网站变得如此的容易, 我把网址贴出来, 有一样需求的人随时查看吧.

https://www.jtianling.com/programming-language-comparison

阅读全文....