Skip to content

TINKER:工具箱能被 AI 操作的那一刻,我知道它成型了

前言

TINKER 从一开始,目标就很简单:尽量做高质量、自己用得顺手的工具。不强迫登录,不堆账号体系,打开就能用,用完即走。数据也留在本地,支持导入导出,换机器或备份都不麻烦。

这些都重要,但最重要的一点是开放。

screenshot

插件体系

开放的第一步,是插件体系本身。

TINKER 用 npm 包作为插件的发布载体:任何人都可以把自己的工具做成以 tinker- 开头的包(也支持 @xxx/tinker- 这样的 scoped 包),发布到 npm 后即可被加载。应用会扫描全局安装的这类包并尝试引入,不设审核、不做推荐,也不强行内置到发行版里。

门槛尽量低:写插件的体验跟写普通 Web 页面差不多,本地开发完成后发布到 npm 即可,升级也和普通 npm 包一样。开放生态不靠审核把关,而靠「谁都能发、谁都能装」。

创建快捷方式

插件装进来之后,下一步是怎么更快地打开它们。

TINKER 支持为具体插件创建快捷方式。创建之后,它会像一个普通应用一样出现在系统里:双击就能直接打开对应插件,不必先进入工具箱再搜索。也正因为如此,Raycast 这类第三方启动器同样可以索引到这些快捷方式,用自己习惯的方式唤起插件。

raycast

命令行控制

快捷方式解决的是「像普通应用一样打开」,命令行则把控制权交给终端。

安装命令行工具后,可以用 tinker 直接操作正在运行的应用:列出已安装插件、打开某个插件、查看当前有哪些插件在跑,也可以关闭它们。比如:

bash
tinker list
tinker open json-editor
tinker ps

不必再回到窗口里点来点去,脚本和日常终端工作流都能接上工具箱。

命令行是自动化的基础。有了它,就有可能用脚本把多个插件串起来,编排自己的工作流:打开、处理、关闭,不必再依赖手动点击。

HTTP 远程访问

除了用终端控制,也可以从浏览器进来。启动 HTTP 远程服务后,就能直接访问并操作工具插件;再配上内网穿透,还能临时在其它设备——比如手机——上打开使用,不必守在电脑桌前。

http_remote

AI 助手与 MCP

TINKER 很早之前就接入了 AI 配置。想法很直接:所有工具共用一套配置,不用每个插件单独配一遍模型、密钥。

最近又给一部分插件加了类似聊天的助手。比如图表插件,可以直接打开助手,用文本告诉 AI 帮我画什么图,不必自己去记那些语法;正则插件则可以让它帮忙写表达式、对着测试文本调试。助手真正能「动手」,靠的是插件自己提供一套操作接口——读写内容、改参数、跑结果——AI 通过这些接口驱动插件,而不是只会空聊。

code_diagram_assistant

这些接口既然已经存在,就没有理由只给内置助手用。于是我设计了一套统一的 MCP 接口,每个插件都可以按同一套约定实现;再用 tinker mcp <插件名> 启动对应的 MCP 服务,外部 Agent 就能直接调用。

同一套接口也不必非得走 MCP:命令行可以直接调用,比如列出工具、执行某个操作:

bash
tinker open image-compressor
tinker call image-compressor --tool compress --args '{
  "paths": ["/path/to/photo.jpg"],
  "quality": 80,
  "outputDirectory": "/path/to/output"
}'

即便插件自己没有实现 MCP 接口,也还有一条通用通路:用 tinker open <插件名> --inspect 打开调试端口。agent-browser 这类工具可以连上去自行调试插件界面;换个角度看,这也等于给任意插件提供了通用控制能力——不依赖每个插件额外实现接口,照样能被外部驱动。

Skill

最后,是把这些能力封装成 Skill。Agent 装上之后就知道该怎么调用 TINKER,不必再在对话里反复解释命令格式、参数约定。

有了 Skill,AI 可以直接操作工具箱:从待办里查看今天要办的事,从股票插件里获取收藏股票的今日情况,从热榜插件里读今天的热门消息,从邮箱插件里查看邮件、发送邮件。更进一步,还可以让 AI 基于这些基础工具把某次工作流跑通,再沉淀成新的 Skill 或脚本,之后重复运行。

agent_skill

Skill 也支持创建插件:一句话生成工具。说出想要什么,它就能自动帮你写出插件,并以桌面应用的方式跑起来。更关键的是,生成出来的工具天然接上前面说的那套能力——快捷方式、命令行、MCP、调试端口——不用再单独补一遍开放接口。

结语

到这一步,工具箱不再只是「自己点开用」的一堆窗口,而是能被 AI 真正调用的能力集合。看着 AI 自动打开插件、读写数据、把事情做完——那一刻,我知道它成型了。

后面还会继续加插件,已有的插件也会不断改进。

仓库:https://github.com/liriliri/tinker

官网:https://tinker.liriliri.io