目录

icode-go

用 Go 打造的 LLM Agent 平台(对标 Claude Code / opencode,但不限于 coding):事件驱动、一切皆服务、一切皆插件。单仓 monorepo(go.work + 21 个模块),跨模块协作只经 icodes-core 的服务契约与事件总线。

跑起来

两个入口 main:icodes-tui(交互终端)与 icodes-cli(headless CLI)。

TUI 默认是客户端模式:探测并 attach 已运行的 daemon;没有就后台拉起自己的 --serve 形态。本进程不装配宿主。真实 LLM provider 由 daemon 侧装配(anthropic/openai)。

go run ./icodes-tui          # 默认:客户端模式(spawn-or-reuse daemon)
go run ./icodes-tui --local  # 进程内模式:本进程装配宿主,不起 daemon
go run ./icodes-tui --serve  # daemon 形态:无 UI,监听 unix socket 供客户端 attach

CLI 的 binary 名是 icode:

go build -o icode ./icodes-cli
./icode run "任务文本"   # 跑一次 headless agent turn(恒新会话)
./icode serve            # 常驻 daemon
./icode --help           # 全部子命令:config/event/mcp/session/version…

go install ./icodes-cli 产出的 binary 名取目录名(icodes-cli);要 icode 请用上面的 go build -o icode。

密钥只从环境变量或未入库的 .env 读取(AGENTS §16);.env 已在 .gitignore 中。

门禁

本仓没有 CI,门禁脚本就是唯一入口:

scripts/check.sh                 # go.work 里的全部 21 个模块
scripts/check.sh icodes-common   # 只跑指定模块(可传多个)

每个模块依次执行 gofmt -l .、go build ./...、go vet ./...、go test ./... -race;任一模块失败即非零退出,并在末尾汇总失败模块。

  • cgo:脚本自动为 icodes-codebase、icodes-host、icodes-cli、icodes-tui 卸载全局 CGO_CPPFLAGS/CGO_LDFLAGS。本机若全局导出这两个变量会破坏 tree-sitter 构建;手动跑这四个模块时同样要加 env -u CGO_CPPFLAGS -u CGO_LDFLAGS。
  • 空壳模块:go vet/go test 的「matched no packages」按 AGENTS §11 特判跳过,不算失败。

其余门禁:

scripts/arch-deps.sh            # 依赖方向(例外清单 scripts/arch-deps-allowlist.txt)
scripts/svc-topics.sh --check   # svc.* 主题冻结清单
scripts/dir-flat.sh --check     # 单目录生产文件数

目录

顶层目录即模块名。模块清单与各自职责见 AGENTS.md §五、一行式索引见 docs/README.md;本文件不再手抄模块表,避免与 go.work 漂移。

  • icodes-tui/、icodes-cli/:两个入口 main
  • icodes-host/:两个入口共用的宿主装配库
  • icodes-core/、icodes-common/:内核契约与跨模块纯类型
  • 其余 icodes-*:插件(provider/storage/tools/transport/mcp/rag/…)
  • docs/:设计文档与需求工作区;scripts/:门禁脚本
关于
15.9 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号