终端里的本地 AI 编程代理 —— 多模型供应商、工具调用、内置网关、零依赖全屏 TUI。 目标是把 opencode 的界面与能力尽量还原。
当前为源码构建(CMake),暂无预编译安装包。
一个 C++20 从零写起的 agent:供应商层 + 工具 / function calling + 本地网关 + 全屏 TUI。
内置三种协议实现,同一个 Provider 接口,上层完全不感知差异。
~/.lvxcode/config.json模型通过 function calling 驱动本地工具,结果回填 prompt 多轮循环。
read / write / edit / glob / grep / bash / todo / current_timewrite / edit 记录 before/after,随时输出 unified diff纯手写 ANSI + termios,不依赖 ncurses,渲染是增量的。
ctrl+p 命令面板与 ctrl+x leader 快捷键网关是内部 API(非 OpenAI 兼容),Agent 循环跑在服务端。
127.0.0.1:4100,TUI 只是它的一个客户端写类工具必须经客户端批准,网关阻塞等待,超时即拒绝。
read / glob / grep)自动放行write / edit / bash 弹窗确认:Allow once / Allow always / Reject最终形态是 .lvx 容器,跑在 LVX 运行时上,而不只是桌面程序。
lvx build 以 clang --target=wasm32-wasi 编译为 platform=lvxblvxcode 是一个会读写文件、执行命令的本地 agent,请先了解以下几点。
write / edit / bash 仅在你批准后执行;重要目录请勿无脑 Allow always。../、绝对路径、符号链接)都会被拒绝。目前从源码构建。需要 C++20 编译器与 CMake(网络层用系统 libcurl,JSON 用 nlohmann/json,其余零依赖)。
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
./build/lvxcode # 起网关 + 进 TUI
./build/lvxcode gateway # 只跑网关
ctest --test-dir build --output-on-failure # 14 个离线测试套件
| 目标 | 产物 | 构建方式 |
|---|---|---|
| Linux 桌面 | build/lvxcode |
CMake + 任一 C++20 编译器 |
| Windows 桌面 | build/lvxcode.exe |
同上(MSVC / clang-cl) |
| LVX 运行时 | *.lvx(platform=lvxb) |
lvx build(clang --target=wasm32-wasi) |
重建后入口软链 ~/.local/bin/lvxcode 即最新;数据目录是 ~/.lvxcode(可用 LVXCODE_HOME 覆盖)。
常用命令:lvxcode --show-config 查看当前配置,lvxcode --list-models 列出供应商模型。
开发中,以下为主要里程碑。