基于 Go + Bubble Tea 的本地 Coding Agent
NeoCode 是一个在终端中运行的 AI 编码助手,采用 ReAct(Reason-Act-Observe)循环模式,围绕以下主链路工作:
用户输入 -> Agent 推理 -> 调用工具 -> 获取结果 -> 继续推理 -> UI 展示
它适合希望在本地工作流中完成代码理解、修改、调试与自动化操作的开发者。
- 终端原生 TUI 交互体验(Bubble Tea)
- Agent 可调用内置工具完成文件与命令相关任务
- 支持 Provider/Model 切换(内建
openai、gemini、openll、qiniu) - 支持上下文压缩(
/compact),帮助长会话保持可用 - 支持工作区隔离(
--workdir、/cwd) - 会话持久化与恢复,降低重复沟通成本
- 支持持久记忆查看、显式写入与后台自动提取,保留跨会话偏好与项目事实
- Go
1.25+ - 可用的 API Key(如 OpenAI、Gemini、OpenLL、Qiniu)
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/1024XEngineer/neo-code/main/scripts/install.sh | bashWindows PowerShell:
irm https://raw.githubusercontent.com/1024XEngineer/neo-code/main/scripts/install.ps1 | iexgit clone https://github.com/1024XEngineer/neo-code.git
cd neo-code
go run ./cmd/neocode设置 API Key 示例(按你使用的 provider 选择):
export OPENAI_API_KEY="your_key_here"
export GEMINI_API_KEY="your_key_here"
export AI_API_KEY="your_key_here"
export QINIU_API_KEY="your_key_here"Windows PowerShell:
$env:OPENAI_API_KEY = "your_key_here"
$env:GEMINI_API_KEY = "your_key_here"
$env:AI_API_KEY = "your_key_here"
$env:QINIU_API_KEY = "your_key_here"按工作区启动(仅当前进程生效):
go run ./cmd/neocode --workdir /path/to/workspace/help:查看命令帮助/provider:打开 provider 选择器/model:打开 model 选择器/compact:压缩当前会话上下文/status:查看当前会话与运行状态/cwd [path]:查看或设置当前会话工作区/memo:查看记忆索引/remember <text>:保存记忆/forget <keyword>:按关键词删除记忆& <command>:在当前工作区执行本地命令
示例输入:
请先阅读当前项目目录结构并给出模块职责摘要
帮我在 internal/runtime 下定位与 tool result 回灌相关逻辑
- 主配置文件:
~/.neocode/config.yaml - 自定义 Provider:
~/.neocode/providers/<provider-name>/provider.yaml
配置原则(用户侧重点):
- API Key 通过环境变量注入,不写入
config.yaml --workdir只影响当前运行,不会回写到配置文件
详细配置请参考:docs/guides/configuration.md
欢迎通过 Issue 和 PR 参与共建。
-
在 Issues 先沟通问题或需求。
-
Fork 仓库并创建功能分支。
-
完成开发并确保改动聚焦、边界清晰。
-
本地自检:
gofmt -w ./cmd ./internal go test ./... go build ./... -
提交 PR 到主仓库并说明变更目的、影响范围和验证方式。
提交前请确认:
- 不提交明文密钥、个人配置或会话数据
- 不提交无关改动与临时文件
MIT