Skip to content

Latest commit

 

History

History
99 lines (72 loc) · 5.43 KB

File metadata and controls

99 lines (72 loc) · 5.43 KB

neenee logo

妮妮

English | 简体中文

一个基于 Rust 的 AI 编码助手,提供语义化终端界面、工具调用、按需技能和定时提示。

Rust 2024 License

特性

  • 语义化终端界面 — 自研网格+差分渲染引擎(neenee-tui-engine),从零构建以替代 ratatui。保留模式网格、写时脏标记差分、宽字符所有权管理、bce 感知的 crossterm 后端。支持实时状态、可展开的工具步骤、结构化 diff 展示。
  • 工具调用 — 完整的 ReAct 循环,支持原生与文本回退两种工具调用协议;内置 bash、文件读写、grep、glob、网页搜索及 MCP 服务器。
  • 定时提示 — 用 /schedule 按时钟调度提示:周期性 cron 任务,或倒计时 / 绝对时间的一次性定时器,让代理在无人值守时按计划运行。
  • 会话 Daemon 与控制平面 — 一个用户级 daemon 持有跨所有项目的每一个会话:任务不因关闭终端而中断,你可以随时随地观察或驱动它们——neenee status 提供多任务实时视图,TUI 内 /dashboard 切换会话而不中断工作,可读写的控制 API(创建 / 发提示 / 打断 / 批准 / 终止)走本地 socket 或 token 保护的局域网端口——Web 面板消费的正是这套协议。
  • 持久会话 — 原子写入、上下文压缩、会话恢复与分叉。
  • 技能系统 — 按需加载领域知识,或在被提及时自动注入。

快速开始

一键安装(macOS 与 Linux)—— 自动下载预编译二进制到 ~/.local/bin

curl -fsSL https://raw.githubusercontent.com/ming2k/neenee/main/install.sh | bash

可用 NEENEE_VERSION=0.22.1 指定版本,或用 INSTALL_DIR=/usr/local/bin 自定义安装目录。

或从源码编译

git clone https://github.com/ming2k/neenee.git
cd neenee
cargo run --release

首次启动后按 Ctrl+M 选择模型并填入 API Key,然后直接开始对话。

第一次运行 neenee 会自动拉起会话 daemon(一次性冷启动,之后每次启动即连)。见下文 Daemon 模式

Daemon 模式与多任务跟踪

neenee 作为客户端连接到一个用户级会话 daemon,由它持有跨所有项目的每一个会话(ADR-0096)。会话不依赖 TUI 即可持续运行,多个客户端可以同时驱动或观察:

neenee                   # 接入 daemon(首次使用自动拉起)
neenee serve             # 前台运行 daemon
neenee serve --detach    # …或后台运行
neenee serve --public    # 同时监听所有接口(TCP+token),开放给局域网客户端
neenee attach [id]       # 驱动某个 daemon 持有的会话
neenee status            # 一次性表格:需要注意的会话
neenee status --watch    # 实时表格,每次变化自动刷新
neenee status --json     # 原始监控帧(即中控面板的 API)
neenee dashboard         # 直接从 shell 进入全屏仪表盘

在 TUI 内按 /dashboard 打开会话仪表盘:一个全屏实时视图,上方是 console 区(选中会话的实时状态:当前工具、活动、上下文、进度),底部会话坞里每个会话一张卡片。回车打开只读预览;按 a attach 到某个会话——TUI 会先 detach 再 attach,所以你离开的会话会在 daemon 里继续运行。在同一界面还能 i 打断、p 发任务、n 新建会话。关闭 TUI 不会中断正在跑的轮次,随时 neenee attach <id> 接回。(/host 保留为隐藏别名。)

neenee dashboard 直接从 shell 进入同一个全屏仪表盘——无需先进入会话。它只把 daemon 上最近活跃的会话当作底层载体,在其之上升起仪表盘:Esc 退出,选中卡片按 a 则 attach 进入该会话。与 neenee status 一样,它不会拉起 daemon,因此需要一个已在运行且至少有一个会话的宿主。

daemon 默认通过 Unix socket 提供一条可读写的控制平面协议(创建、发提示、打断、批准、终止,外加监控流),--public 时同时走 TCP+token——这正是 Web 中控面板直接消费的东西。详见如何用会话宿主跟踪会话ADR-0096

快捷键

按键 功能
Enter 发送消息
Tab 接受斜杠命令 / @path 补全
Ctrl+M 打开模型选择器
Ctrl+T 打开待办
Ctrl+B 光标向左移动一个字符(readline backward-char)
Ctrl+C 复制 → 中断 → 关闭弹窗 → 清空 → 退出
Ctrl+V 粘贴剪贴板内容

常用命令

命令 说明
/schedule <when> <提示> 按 cron(周期性)或倒计时 / 绝对时间(一次性)调度提示
/compact 压缩上下文以释放空间
/session list 浏览和恢复历史会话
/export 将对话导出为 Markdown
/mcp 查看 MCP 服务器连接状态

详细架构、指南和参考文档见 docs/

许可证

MIT