Skip to content

Repository files navigation

Nova

Nova(前身为 Nebula AI)是一款基于 Tauri + React 构建的本地优先 AI 工作台。它支持 Ollama 本地模型与 OrcaRouter 云端模型,把对话、可编辑成果、网页预览和文件导出放在同一个桌面应用里。

功能

  • 四种工作模式:网页构建、代码助手、内容创作、通用问答。
  • 双 Provider:自动探测 Ollama 本地模型,也可使用 OrcaRouter 兼容接口。
  • Agent 执行循环:支持计划、工具调用、观察、修复与最多 20 步的多轮执行。
  • 仓库智能:授权工作目录后可浏览文件树、按文件名与内容全文检索、只读打开文件,并把文件路径一键引用到任务输入。
  • Git 改动审查:任务之外提供工作区级的暂存/未暂存统一 diff 审查视图,与浏览器、文件树并列。
  • @文件 上下文:在任务里用 @src/main.ts 这样的路径引用文件,Nova 会把内容(自动截断)附加给模型作为上下文。
  • 安全本地工具:文件读写、全文搜索、受限命令和 URL 获取均由 Rust 网关校验;敏感操作需要明确授权。
  • 防覆盖写入write_file 授权时记录文件指纹,审批后目标若被外部修改则拒绝写入,避免过期 diff 被盲目应用。
  • 透明授权write_file 授权弹窗展示逐行 diff(长差异折叠为上下文片段),run_command 高亮白名单命中原因,fetch_url 展示域名与 DNS 解析摘要。
  • 执行可观测:实时展示 Agent 状态与累计 token 用量,工具输出与网页自检诊断(按严重度着色)可在时间线中按需查看;任务失败或中断后可一键重试。
  • 网页自检:Agent 网页模式在禁网沙盒中执行 DOM 与运行时检查,最多自动修复三轮。
  • 任务快照 v2:保存计划、最近 120 条对话、脱敏工具时间线、累计 token 用量与完整/部分产物;重启后中断任务恢复为"已停止"并可继续,失败时的部分成果不再丢失。
  • 可靠流式输出:正确处理跨网络分片的 NDJSON / SSE 数据,可随时停止生成。
  • 成果工作区:模型输出可以继续编辑、复制,并导出为 HTML、代码、Markdown 或文本文件。
  • 安全网页预览:生成的 HTML 在隔离 iframe 中运行,不继承应用权限。
  • 桌面友好:模型状态刷新、API Key 显示控制、响应式布局与键盘操作;Monaco 编辑器按需加载,不阻塞应用启动。

下载与使用

Releases 下载最新安装包:

平台 产物
Windows 10/11 x64 NSIS .exe 安装程序
macOS 11+ Apple Silicon .dmg
macOS 11+ Intel .dmg

发布由 GitHub Actions 从标签构建,附 SHA256SUMS.txt 与构建来源证明;详见 RELEASING.md

使用 Ollama

  1. Ollama 官网 安装 Ollama。
  2. 拉取一个模型,例如:
ollama pull qwen2.5-coder:7b
  1. Windows 用户首次使用时执行:
setx OLLAMA_ORIGINS "*"
  1. 完全退出并重新启动 Ollama,然后打开 Nova。若模型没有出现,点击左侧刷新按钮。

使用 OrcaRouter

  1. 在左侧 Provider 中选择 OrcaRouter。
  2. 输入 API Key,并选择或填写模型 ID。
  3. API Key 仅保留在当前应用内存中,关闭应用后即清除,不会写入本地存储。

工作模式

模式 适合任务 默认成果
网页构建 单页网站、组件原型、交互页面 HTML + 沙盒预览
代码助手 编写脚本、修复错误、重构与解释代码 自动识别语言的代码
内容创作 文章、方案、邮件、提纲 Markdown 文稿
通用问答 分析、总结、规划和开放式问题 Markdown 回答

Agent 模式

  1. 在左侧 Execution 中选择“Agent · 多步执行”。
  2. 通过系统目录选择器授权一个工作目录。该授权仅保留到应用关闭或更换目录。
  3. 选择模型并提交任务。Agent 会先生成计划,再按需申请工具权限。
  4. write_filefetch_url 支持本次或本会话授权;run_command 始终逐条确认。
  5. Agent 生成的文件必须先写入临时沙盒并完成检查,之后才能写入授权工作目录。

Agent 单任务最多执行 20 次模型迭代;工具参数连续两次无法解析或检测到重复调用循环时会安全终止。受限命令不接受 shell 字符串,只能在临时沙盒内运行允许的检查命令。

任务输入支持 @相对路径 引用工作区文件:Nova 会读取内容并附加到模型上下文(单文件超过 24,000 字符自动截断,最多 8 个引用),时间线会标注已附加的文件。Agent 也可以用 search_files 工具按文件名或内容检索工作区,避免盲目遍历目录。

Agent 运行面板会实时显示计划进度、状态与累计 token 用量(OrcaRouter 流式请求会显式请求 usage 数据,并随任务快照持久化);点击时间线条目可展开详情、查看工具输出原文与按严重度着色的自检诊断。任务失败或被中断后,面板底部提供"用同一任务重试"入口,已完成步骤与产物始终保留。任务历史使用首段指令生成简短标题,便于搜索和恢复。

本地开发

需要 Node.js、pnpm、Rust 和 Tauri 2 的系统依赖。

pnpm install
pnpm check
pnpm test
pnpm tauri dev

可选的真实浏览器回归需要 Python Playwright;安装后运行 pnpm test:browser。该脚本会自行启动并关闭临时 Vite 服务,验证密钥清理、Agent 工作区门禁和沙盒预览错误捕获。

Rust 网关回归:

cd src-tauri
cargo fmt --all -- --check
cargo clippy --locked -- -D warnings
cargo test --locked

构建桌面安装包:

pnpm tauri build

技术栈

  • Tauri 2
  • React 19 + TypeScript
  • Vite 7
  • Monaco Editor
  • Ollama NDJSON API
  • OrcaRouter OpenAI-compatible SSE API

隐私说明

Ollama 模式直接访问本机服务。OrcaRouter 模式会把当前对话发送到所选云端模型;API Key 只驻留内存,不会持久化。导出的文件只写入用户在保存对话框中选择的位置。Agent 任务快照不包含 API Key,但会保存最近 120 条对话消息(上限 512 KB)以便恢复任务;普通单轮生成的对话仍只保留在内存中。

完整说明参见 隐私政策

卸载

在 Windows 中打开 设置 → 应用 → 已安装的应用 → Nova → 卸载

Code signing policy

Nova 正在申请 SignPath Foundation 的开源代码签名服务。v0.3.0 的自动签名发布流程已经就绪,并会在缺少可信签名时阻止发布。完整要求参见 Code signing policyTrusted release setup

Free code signing provided by SignPath.io, certificate by SignPath Foundation.

许可证

本项目采用 MIT License

About

A Tauri + React AI code builder

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages