HeartCode
用于终端的编码代理,可与任何openai兼容的模型一起工作。
零依赖关系。 中没有 node_modules,没有安装脚本,没有导入包
在你背后:只有Node.js(20或更新)和HeartCode自己的代码。你安装的是
你能读到的。

我为什么要这么做
不与其他编码cli竞争。我做它是为了自己用,因为那些我 我做了我需要做的事:
- 没有依赖,所以没有供应链攻击。 使用您的文件、密钥和
您的shell。大多数都会拉入数百个npm包,它们中的任何一个,或者它们中的任何一个包
依赖,可以被劫持并在更新中发送恶意软件。HeartCode没有:no
node_modules,没有安装脚本,只有Node.js和HeartCode自己的代码。没有什么 再给别人下毒,你就能看到你写的所有东西。 - 我使用过的其他cli都没有这样做,所以HeartCode做:
- 在您的模型中自行旋转,跨提供商。 给它一个免费的清单 包括)。当一个达到速率限制,下降或失败时,下一个从另一个应答 提供者优先,然后继续工作。状态栏中的一个栏显示何时有回退响应。
- 搬到更大的模型,而不是忘记。 当谈话超出了模特的范围 上下文窗口,它在总结任何内容之前切换到一个有空间的模型。
- 在构建之前进行研究。 它假定记忆的内容已经过期,并读取 首先是当前的官方文档,而不是博客或内存。
- 学习,每个项目,并保持它。 它读取的每个网页都是完整的
.heartcode/research/. 当一项任务结束时,它会把值得知道的内容作为笔记保存下来 (.heartcode/memory/),在后台删除垃圾和废弃文件,同时 你继续。它修复的错误变成了 教训是不会重复的。下一个任务从已知的东西开始,而不是再次搜索。 - 在调用它完成之前检查它的工作首先是一个计划,每次改变后都要运行,然后是另一个 根据您的要求对结果进行建模。兜圈子把工作交给 你的下一个型号;只有你(Esc)停止它。
- 从薄弱的和本地的模型中得到好的结果。 不能调用工具的模型是引导步骤 的一步。按行号编辑保存不能完全重复文本的模型。每个模型的 能力来自 models.dev,所以不需要花时间去寻找答案。
- 只发送需要的东西。 MCP工具在使用之前都是名字,旧的工具输出变成一个 指针指向其已保存的文件,并在任务需要时到达指南。
- 在电报上告诉你 当一项任务完成、失败或等待你时,你可以走开。
- 从来没有发送
max_tokens,所以没有供应商会在你没有选择的情况下缩短回复时间。
剩下的就是你所期望的
- 任何openai兼容的提供商比如OpenRouter、Groq、NVIDIA、Gemini、Ollama、 LM工作室,你自己的代理…
- 设置在网页上 在您自己的机器上(
/settings),而不是通过编辑配置文件。 - 可由其他工具和AI代理使用:
heart -p无头运行一个任务,比如claude -p(见 SKILL.md). - 记录你需要的,没有别的: 7种,每一种都是自己打开的(都是由 默认):请求、工具和命令、模型选择、代理的决定、错误、 谈话,调试。在设置页面上阅读它们,搜索和生活。
- 需要技巧,MCP服务器和钩子 在Claude Code的格式中;
/import把你的带过来。 - 告诉你什么时候有更新的版本 (每次NPM启动时,在状态栏中检查):
/update显示更改的内容,并按照安装HeartCode的方式安装它。把它关掉/settings→将军。 - 一个精心安排工作的人将“Pick”设置为“orchestrator hands out”, 每条消息都以您选择的模式开始(快速、便宜的模式就足够了)。它的答案 如果可以,立即执行(“hi”不需要其他模型),否则将工作交给任意一个 它认为你的模型适合它。它知道每个人能做什么,也知道自己在larena的位置 公众的排名。你的模型显示了每个模型的编码、Web应用和视觉得分。
- 默认情况下有纪律地工作它的规则(来自Karpathy的指导原则,Grill Me,
超级大国(马尾辫和穴居人)在建造之前会问,首先找到bug的根本原因,
编写最少有效的代码,只更改任务需要的部分,在说完成之前进行验证,
然后停下来,简短地回答。一种技能
use: always为每条消息添加自己的规则。 - 选项卡 (
Alt+T),每个都有自己的会话,并将工作的工作树分开。 - 后台有服务器和观察者:模型启动一个并继续工作,读取它的
在需要时输出,并停止它。
Alt+B(或/background)显示他们的日志在输入的上方, 每个标签(←/→或点击开关),而你的工作;没有什么能比HeartCode更长久。 /context:内容填充上下文窗口,部分地(系统提示、工具、消息、工具) 结果)和最大的单件。
我如何设置和使用它
1. 安装
从npm:
npm install -g heartcode
或者从来源:
git clone https://github.com/p32929/HeartCode.git
cd HeartCode
npm start
npm start 链接的 heart 命令到那个文件夹,所以a git pull 更新它。
2. 运行 heart
在你想从事的项目中:
cd ~/code/my-app
heart
3. 打开设置页面
类型 /settings. 设置页面将在浏览器中打开。显示的链接是您的机器
网络地址(如 http://192.168.1.108:43135/?t=…),所以它从另一个设备上打开
同样的网络:通过SSH在服务器上的HeartCode,在笔记本电脑上的页面。只有那个链接有效:
它有一个密钥,页面只回应这台机器自己的地址。正在运行的
HeartCode会立刻发现你的改变。

侧边栏分为四组:
- 模型: 你的列表 (HeartCode使用的模型,按顺序排列)和 供应商 (他们 来自)。
- 一般: 设置 (不用问它就能做什么,终端颜色,特征,思维 努力,语音输入,网络搜索:您自己的搜索和引擎的顺序,以及哪些外部工具已经准备好了)和 状态栏 (拖放什么的 底线显示,与实时预览)。 通知:电报。
- 技能, MCP服务器 和 系统提示: HeartCode可以做什么以及它是如何被告知的。
- 先进的: 日志 (七种,各开或关,一个观看器)和 文件 (其余的设置,作为文件)。
4. 添加一个提供者并选择模型
在 模型→供应商:

- 添加提供者:它的名称、基础URL和API密钥。选择其中一个预设来填充URL。
- 选择要使用的模型:单击一个模型将其添加到您的列表中。我使用免费模型。
5. 把你的清单按顺序排好
在 模型→您的列表:
- 按上下文和能力排序。 单击 能力 列,然后 上下文: 能做得最多的模型首先出现,其中最大的上下文窗口首先出现 点击列将打破之前的联系;再按一次可以倒转,第三次可以 下降)。点击 保存订单 为了保存它。
- 再重新安排一下。 拖动一行来移动它。#1是HeartCode使用的;其他的是 它的退路,按顺序尝试。
- 测试它们 (可选): 测试所有 发送每个短消息,并显示真正的答案。 每次测试等待10秒; 测试等上面的列表改变了这一点。
- 它们进行过滤 (可选):按名称、提供商、测试结果(works、doesn't、not tested或一个) 错误如402),语境,工具,思维,图像或自由。 测试N 然后只测试那些 所示, 只使用这N个 使它们成为HeartCode使用的模型,按照您看到的顺序 请留在“提供者”下)。过滤到工作的,按作品排序?,只使用这些:HeartCode使用您的 工作模型,最快优先。
如果一个模型说 没有找到 在models.dev, 重试 再查一遍,或者 设置 告诉 心脏编码它能做什么。
6. 可选:通知和日志
- 通知一项任务完成、失败或等待你完成时的电报信息。制作一个机器人 与 @BotFather,粘贴其令牌,在bot中按Start,然后 HeartCode找到你的聊天记录。
- 高级设置→日志:只打开你需要的类型(请求,工具和命令,模型选择) 代理的决定(错误、对话、调试),并在那里读取它们:通过运行、搜索、实时。 超过3天的日志将被删除(您可以更改)。
7. 回到HeartCode
回到终点站。当设置页面打开时,HeartCode显示一个对话框并等待。 您的更改已经在里面了。
8. 按“Enter”键停止设置界面
关掉 选中:按“Enter”。页面停止,心脏代码再次属于你。

9. 发送“Hi”作为测试
类型 Hi ,按“Enter”。等待回复:您的模型有效。
10. 开始使用它
使用HeartCode像任何其他编码代理:要求它读取,更改,运行和修复的东西在您的
项目。 / 显示每个命令, Shift+Tab 无需请求就能改变它的行为, Esc 停止
它, heart --help 列出所有其他的东西。当它工作时,离开对话的命令
独自一人(/help, /cost, /diff, /select_model, /settings, /tab, /exit马上跑;这个
改变它的人(/compact, /rewind, /resume等它做完再说。采摘者,问题和什么
命令显示(/help, /context, /diff…)在对话中打开; Esc
关闭它。
谢谢
我从其他编码代理和他们遇到的问题中学到了很多HeartCode处理的东西 第一。谢谢 Reika (它的测量结果很小 模型:发送“no, do this instead”作为你自己的消息,诚实地计算代码的令牌, 保留提供商的提示缓存,检查哪些使用了更改后的函数,保存哪些模型 压实前发现), OpenCode, 克莱因, OpenClaw 和 π,他们向我展示了许多这样的用例。