kmd-core daemon
Rust 多会话守护进程:fork PTY、喂 stdin、收 stdout,按会话广播状态。
Rust 多会话守护进程跑在 Termux 里,管理 PTY 会话与 Lua 适配器;Compose 客户端负责实例列表、stdin 与通知。Codex、Claude、Gemini 在手机上各占一个会话。
$ kmd-core serve \
--bind 127.0.0.1:8765 \
--adapter adapters/codex.lua
[kmd-core] listening on ws://127.0.0.1:8765
[kmd-core] adapter loaded: codex.lua
┌─ sessions ────────────────────┐
codex running pty/1
claude running pty/2
gemini stopped pty/3
└───────────────────────────────┘
输入 help 看能用什么,chat "……" 和临渊星说话。
Termux · PTY 会话 · WebSocket IPC · 这块是真能敲的
守护进程、传输层与客户端各司其职,会话状态实时上行。
Rust 多会话守护进程:fork PTY、喂 stdin、收 stdout,按会话广播状态。
JSON 协议走 ws://127.0.0.1:8765,只监听回环地址,不出本机。
多实例列表、选中会话的 stdin 面板,Ktor WebSocket 客户端直连。
每个会话的状态镜像进 Android 通知,前台服务保活。
让每个 CLI 助手继承真实环境,再由 Lua 决定怎么被驱动。
子进程直接继承 Termux 的 PATH、HOME 与已装工具,Codex / Claude / Gemini 凭据原样可用。
adapters/codex.lua 描述启动命令与协议,新增一个 AI CLI 只需一份 Lua。
多个 CLI 实例同时跑,stdin 面板切换焦点,互不串扰。
APK 捆绑 libkmd_core.so,Termux 不在场时也能拉起 PoC 后端。
桌面与 Termux 同一套命令;Android 客户端启动时自动连接。
1 · 启动守护进程(Termux / 桌面)
cargo run --release -- \
serve --bind 127.0.0.1:8765 \
--adapter adapters/codex.lua
2 · 连接ws://127.0.0.1:8765
3 · 打包 Android 后端./scripts/package-android-backend.sh
客户端行为
启动 → 尝试连接 Termux 守护进程
→ 失败则延时拉起内置后端
→ 会话列表 · stdin · 通知
当前状态PoC · 本地实验,暂不开源