最近看到 openai/symphony 这个项目, 我第一反应不是”这个实现我想试试”, 而是”这个发布方式有点意思”.
因为它在 README 里给出的第一个选项, 不是先教你怎么安装官方实现, 而是先让你根据 SPEC.md 自己做一个. 官方当然也附了一个实验性的 Elixir 参考实现, 但那个被放在了第二个选项. 这个顺序本身就很说明问题: openai 真正想先传递出去的, 可能不是某一份具体代码, 而是这套系统的设计.
我感觉这件事情挺值得记一下. 随着 code agent 越来越强, 以后有些软件的”发布”, 也许真的不一定非得先附带一份完整源码, 而是可以先给出一份足够明确的 spec, 让大家各自用自己熟悉的语言和运行环境去实现. 代码还是会有, 但它开始更像是 spec 的一个实例, 而不是唯一的交付物.
阅读全文....
最近一段时间,各种 AI coding agent 工具我都在试。试来试去以后,我越来越觉得,真正麻烦的往往不是模型本身,而是怎么把多个 agent 安排好:谁在什么分支上工作,谁在跑什么任务,当前是不是卡住了,要不要我去接管一下,关掉界面以后它是不是还在继续跑。这些事情如果全靠手工管理,agent 一多,很快就乱了。
这两天看到一个我觉得挺有意思的工具:Agent of Empires。名字起得很大,不过它做的事情倒是挺朴素:它不是重新造一整套“AI IDE”,而是站在 tmux 和 git worktree 这些已经很好用的基础设施上,做了一个专门给 AI agent 用的会话管理器。这个思路我很喜欢。
仓库地址:
阅读全文....
有时候想给某个 app 配防火墙白名单, 最麻烦的不是配规则, 而是根本不知道它到底连了哪些地址. 而且现在很多 app 都不只是一个主进程, 还会拉起 helper, renderer, crash reporter 之类的子进程, 只盯着一个 PID 往往不够. 于是写了个小工具 net-use, 用来实时追踪指定 app 及其整个子进程树访问过的远端 IP, 并把结果去重输出出来.
仓库地址:https://github.com/jtianling/net-use
阅读全文....
最近在整理各种 AI 编程工具的 skills 时,发现每个工具都有自己的目录和格式,切来切去很容易乱。索性就做了一个统一管理的小工具:skillsmgr。它把 skills 集中放到 ~/.skills-manager/ 里,然后一键部署到不同的工具里。
仓库地址:https://github.com/jtianling/skills-manager
阅读全文....
最近在使用 Claude Code、Cursor、Cline 之类的 AI 编程工具时,总会遇到一个重复劳动:每个工具都有自己的规则目录,格式略有差异,团队的约定需要在多个地方复制粘贴,还容易漂移。于是做了一个小工具 rulesmgr,统一管理一份规则,然后一次性部署到多个工具。
仓库地址:https://github.com/jtianling/rules-manager
阅读全文....
A lightweight HTTP service that wraps Ollama’s Rerank model into a standard Rerank API, enabling Dify and other applications to use local Ollama models for document reranking.
https://github.com/jtianling/dify-ollama-rerank-adapter
阅读全文....
DeepSeek 很好用, 但是他们公司一直不注重使用体验的优化, 比如在 DeepSeek 网站中, 就一直没有一个搜索历史记录的功能, 于是, 我做了一个. 没有上架商店, 开源自取.
https://github.com/jtianling/deepseek-search-chrome
阅读全文....
一直以来, 经常需要同时使用多种编程语言, 要么是自己在自学一个新的编程语言, 正在做一些练手的项目, 同时公司的项目也在开发. 或者在某个项目中, 同时写前后端, 而前后端用的分别是不同的语言, 这些时候, 我都有一个想法, 要是有个网站, 能并排列出我正在使用的几个语言的语法示例就好了, 这些在切换编程语言的时候, 脑子不容易乱. 这么多年过去了, 因为大模型的成熟, 写这么一个网站变得如此的容易, 我把网址贴出来, 有一样需求的人随时查看吧.
https://www.jtianling.com/programming-language-comparison
阅读全文....
Rust 作为编译型的语言, 交叉编译挺方便的, 这样开发和部署, 都能简单挺多. 本文以在 Mac 上, 交叉编译一个使用 SDL 库的程序到一个手持 ARM 设备(clockwork Gameshell) 为例, 记录一下怎么使用 Rust 的交叉编译, 特别是怎么在交叉编译的时候, 还能链接类似 SDL 这种外部的库.
Rust 的生态是比较完善的, 只是相关的资料比较少的, 基本上是一步一个坑. 除了对 Rust 自身的 Rustup 等工具的了解, 还需要用到 Docker, Linux 包管理等知识, 希望对同样被困住的同学有帮助. 同时, 本文也会顺便讲讲思路, 以帮助大家将相关知识应用到其他交叉编译的场景.
阅读全文....
最近 Flutter 的流行, 让 Dart 这个似乎已经要死的语言又复活了. 最近在找能同时在 iOS 和 H5 两端同时运行的编程语言, 没想到 Dart 竟然是非常合适的对象, 有点意外, 于是看了看 Dart.
阅读全文....