Shim教程:7MB的本地优先AI harness

📌 项目日期:2026年11月 | 数据来源:GitHub官方仓库 | 星数:450+

📋 项目简介

模型无关的编码Agent到处都是,但配置它们依然太难:provider ID、API端点、MCP JSON、技能目录、每家一个新界面。Shim(UNCUT作者Balanov的续作)是你与这一切之间的小适配器:说得清的用CLI,说不清的用嘴——本地小模型做命令路由,把自然语言翻译成白名单内的命令,变更类命令需要确认。

数据主张同样硬核:纯JSON配置+JSONL会话,API Key只从环境变量来、绝不写进Shim配置。它与 UNCUT(无损执行器) 是一对:UNCUT管"诚实执行",Shim管"统一接入"。手机侧的同类是 Mika。

🔧 设计主张

主张实现
说或敲都行完整可脚本CLI(专家)+ 自然语言(所有人)
本地小模型路由管理请求→白名单命令,变更需确认
模型随便带OpenAI兼容+Anthropic原生适配+主流预设
MCP与技能随便接stdio与Streamable HTTP;SKILL.md懒加载
保持轻7.29MiB二进制、9.96ms启动、零依赖栈
状态归你JSON配置+JSONL会话;Key只走环境变量

📦 使用

# Releases下载单二进制(Go静态编译)
shim --version          # 9.96ms启动
shim "把我的MCP服务器列出来"   # 自然语言管理
shim mcp add ...        # 或者标准CLI
# 配置是纯JSON,直接改也行

✅ 使用建议

📚 常见问题

Shim是什么?

Balanov(UNCUT作者)的小适配器:模型无关的编码Agent配置太复杂(provider ID、API端点、MCP JSON、技能目录、每家一个界面)——Shim是你与这一切之间的小适配层,7.29MiB单二进制、启动9.96ms。

命令路由怎么工作?

本地小模型把自然语言管理请求翻译成白名单内的命令;变更类命令需要确认——说得清的用CLI,说不清的用嘴。

支持什么?

任意模型API(OpenAI兼容+Anthropic原生适配+主流托管/本地商预设)、任意MCP服务器(stdio与Streamable HTTP)、Agent Skills(常见目录懒加载SKILL.md);无Electron/Node/Python/Docker/数据库/后台守护。