little-coder:轻量本地编码代理

为小型本地模型调优的编码代理,融合30多个扩展和测试工具,让笔记本上的小模型也能完成编码与知识库任务。

Star 数
★ 2.7k
最近更新
1 个月前
License
Apache-2.0
主语言
TypeScript

30 秒速览

运行形态
命令行工具
可在哪里用
兼容但需适配
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Node.js >=22.19用于基准测试的 Python 3用于本地模型的 llama.cpp / Ollama / LM StudioShell / 命令行网络访问本地文件系统
典型场景
本地开发者:在无云依赖的笔记本上使用 Qwen3.6-35B-A3B 模型进行日常编码,利用其计划模式和自动上下文管理。
不适合
  • 需要开箱即用、不想配置本地推理服务器的用户
  • 没有 GPU 或显存不足 8GB 的机器
  • 不愿依赖 pi 框架、希望完全独立工具链的团队

这个 Agent 能做什么,适合哪些场景?

little-coder 是一个构建在 pi 之上的开源编码代理,专为优化小型本地语言模型(如 Qwen3.6-35B-A3B)而设计。它不fork pi,而是将 pi 作为依赖,并通过 .pi/extensions/ 下的30多个TypeScript扩展、skills/ 下的30个技能markdown文件以及 benchmarks/ 中的Python基准测试框架来增强功能。核心机制包括读写防护、技能注入、输出解析、质量监控、思考预算和权限门控,确保小模型高效且安全地工作。在Aider Polyglot、Terminal-Bench和GAIA等基准测试中表现优异,均可在消费级笔记本(8GB VRAM)上本地运行。安装简单,支持多种模型提供商,但主要针对 llama.cpp 和 Ollama 本地服务器优化。

little-coder 作为终端交互式代理运行,通过命令行启动,可读取项目文件、使用内置工具(read/write/edit/bash)修改代码、执行命令,并调用子代理进行研究和深度研究。它包含计划模式、子代理分发、历史记录、会话管理等功能。基准测试工具(如 benchmarks/aider_polyglot.py)通过 RPC 启动 pi 并执行测试任务。权限系统使用白名单限制 shell 命令,确保安全。它通过 .pi/extensions/ 中的扩展注入技能和知识,并监控模型输出质量。

  1. 本地开发者:在无云依赖的笔记本上使用 Qwen3.6-35B-A3B 模型进行日常编码,利用其计划模式和自动上下文管理。
  2. 小型团队:需要在不共享代码到云端的情况下,在本地维护知识库(如医疗、运动、教育领域),使用 little-coder 阅读和更新大量 markdown 文件。
  3. 基准测试爱好者:研究者使用其内置的基准测试工具在 Aider Polyglot、Terminal-Bench 2.0 和 GAIA 上评估小模型性能,并参与排行榜。
  4. 隐私敏感场景:用户可完全离线运行,通过 llama.cpp 或 Ollama 部署小模型,避免数据外泄。
  5. 多机器设置:在 GPU 服务器上运行推理,通过 LAN 从笔记本电脑连接,使用 LLAMACPP_BASE_URL 等环境变量。
  6. AI 代理研究者:需要参考 scaffold–model fit 研究或复现论文结果的开发者,可以克隆仓库并运行基准测试。

如何安装或部署这个 Agent?

安装需要 Node.js 22.19+。使用一行脚本:curl -fsSL https://raw.githubusercontent.com/itayinbarr/little-coder/main/install.sh | bash,或通过 npm install -g little-coder 或 bun add -g little-coder 安装。安装后 little-coder 命令即可使用。

如何使用这个 Agent?

在项目目录下运行 little-coder 启动默认模型(需本地 llama.cpp 服务器,默认 http://127.0.0.1:8888/v1),或指定 --model,例如 little-coder --model anthropic/claude-haiku-4-5。使用前需设置本地 API 密钥环境变量(如 LLAMACPP_API_KEY=noop)。交互功能包括 ctrl+q 切换计划模式、f2 进行深度研究、/resume 恢复会话。模型配置可通过 ~/.config/little-coder/models.json 覆盖。

这个 Agent 有哪些优点和局限?

优点
  • 针对小模型优化,在 8GB VRAM 笔记本上可运行,且性能超过大型云模型(Aider Polyglot 45.56% vs 基线19.11%)。
  • 模块化架构:所有扩展和技能作为独立模块,便于自定义和删除,不干扰核心。
  • 提供四个基准测试(Aider Polyglot、Terminal-Bench、GAIA)的完整结果,易于复现和评估。
  • 安全性良好:shell 白名单、写保护、上下文管理,防止模型误操作。
  • 支持多种本地模型服务器(llama.cpp、Ollama、LM Studio)和云模型,灵活性高。
局限
  • 主要依赖 pi 框架,使用 pi 的扩展模型,自定义扩展需要学习 pi 的 API。
  • 安装和使用需要 Node.js 22.19+ 和 Python(基准测试),对技术栈有要求。
  • 默认配置针对特定模型(Qwen3.6-35B-A3B),切换模型可能需要调整配置。
  • 本地推理性能受限于硬件,大模型在无 GPU 时可能较慢。
  • 社区推荐模型更新频繁,但官方 models.json 更新不频繁,需要用户自己添加。

这个 Agent 与同类方案有什么区别?

与其他编码代理(如 Aider)相比,little-coder 在小模型上表现更佳,但基于 pi 的架构可能更适合熟悉 pi 的用户。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
little-coder:轻量本地编码代理 当前 58 · 缺口较多 命令行工具免费 + 模型费 ★ 2.7k 1 个月前 TypeScript —
hax 62 · 存在缺口 命令行工具免费 + 模型费 ★ 924 1 天前 C OpenAI API · Claude API
Forge:自托管 LLM 工具调用的可靠性层 49 · 缺口较多 命令行工具免费 + 模型费 ★ 2.3k 4 天前 Python OpenAI API · Claude API
Thunderbolt 49 · 缺口较多 桌面应用免费 + 模型费 ★ 4.8k 1 天前 TypeScript OpenAI API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
58/ 100 五分制 2.9 / 5
本评测基于 2026年8月9日 的源码;此后该项目发布了 6 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 14/29
可靠稳定 8/14
适用触发 12/18
规范维护 11/18
有效结果 9/13
证据核验 4/8
查看各维度的扣分理由
信任安全14 / 29 · 2.4/5

证据显示:权限控制有内置白名单和写入保护,但默认允许bash执行,且用户确认流程依赖pi。数据流透明度有限,未详细说明数据如何被处理。敏感数据处理未明确。依赖安全有overrides但未审计。外部影响有明确说明。回滚机制未明确。来源归属有作者和仓库信息。扣分:数据流透明度不足,敏感数据处理不明确,依赖安全未审计。

可靠稳定8 / 14 · 2.9/5

证据显示:README与package.json一致,依赖声明明确,但失败消息未详细说明。扣分:失败消息不充分。

适用触发12 / 18 · 3.3/5

证据显示:明确目标用户为小型本地模型,能力边界清晰,触发方式明确,环境适配有详细说明。扣分:无重大扣分。

规范维护11 / 18 · 3.1/5

证据显示:信息架构清晰,安装说明详细,命名稳定,示例和FAQ有,已知限制部分提及,许可证明确,版本和变更日志有,维护责任明确。扣分:已知限制部分不完整。

有效结果9 / 13 · 3.5/5

证据显示:输出可用性有说明,边际价值有基准数据,成本效益有分析。扣分:无重大扣分。

证据核验4 / 8 · 2.5/5

证据显示:声明有链接支持,但跨来源验证有限,事实与推断分离。扣分:跨来源验证不足。

风险与缓解建议
  • 默认允许bash执行,需谨慎配置权限模式。
  • 数据流透明度有限,建议审查数据处理方式。
  • 依赖安全未审计,建议检查依赖漏洞。
证据充分度:低 评估于 2026年8月9日 审查版本 0b7234031aab 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.20.0
    发布说明摘录
    Fixed - A multi-line edit no longer deadlocks the run ([#127](https://github.com/itayinbarr/little-coder/issues/127) by [@brlucasdx](https://github.com/brlucasdx)). pi already recovers an edits argument sent as a JSON *string* instead of an array, and that recovery is a bare JSON.parse in a try. It fails on the single most common way a small local model writes one: raw newlines inside oldText/newText, which is what multi-line code *is*. JSON.parse throws Bad control character in string literal, the empty catch swallows it, edits stays a string, and schema validation …
    在 GitHub 查看 ↗
  2. v1.19.0
    发布说明摘录
    Fixed - little-coder -p survives a compaction instead of losing the run ([#115](https://github.com/itayinbarr/little-coder/issues/115) by [@Or1j1n](https://github.com/Or1j1n)). v1.18.0 stopped the crash in #108 but not the thing it was a symptom of: under -p, a long task that the TUI completes exited Request aborted with code 1 and empty stdout. pi's compact() is the manual path and its first act is await this.abort(), and print-mode reads the run's verdict straight off the last message (if (stopReason === "error" || stopReason === "aborted")), so aborting the run discards …
    在 GitHub 查看 ↗
  3. v1.18.0
    发布说明摘录
    Fixed - A compaction that settles after the session is gone no longer takes the process down ([#108](https://github.com/itayinbarr/little-coder/issues/108) by [@heinrichI](https://github.com/heinrichI)). The context watchdog reported its result through the ctx captured at the turn that fired the compaction, and pi invalidates the whole extension runtime on dispose(), so ctx.ui and pi.sendUserMessage() throw This extension ctx is stale after session replacement or reload from that point on. pi invokes the compaction callbacks from a floating void (async () => …)(), which tur …
    在 GitHub 查看 ↗

常见问题

little-coder 需要联网吗?
不必须。可以使用本地模型(llama.cpp、Ollama)完全离线运行,但安装和更新时需要网络。
支持哪些模型?
支持任何 OpenAI 兼容的 API,包括本地模型(llama.cpp、Ollama、LM Studio)和云模型(Anthropic、OpenAI)。默认模型是 Qwen3.6-35B-A3B,可通过 --model 指定。
如何添加新的本地模型?
编辑 ~/.config/little-coder/models.json 文件,添加 provider 配置,然后使用 --model 选择。
权限控制如何工作?
默认 'auto' 模式只允许白名单命令(如 ls、cat、git status),其他命令需通过 LITTLE_CODER_BASH_ALLOW 添加。'accept-all' 模式用于基准测试,跳过白名单。
遇到上下文溢出怎么办?
little-coder 在上下文使用超过80%时自动触发压缩,也可通过 LITTLE_CODER_COMPACT_AT_PERCENT 调整阈值。如果频繁压缩,建议使用更大上下文窗口的模型。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents