Sunsetz 是一款本地优先的桌面 Agent 工作台。它把项目、会话、权限、计划、文件审阅、扩展和自动化集中在一个由 Tauri 驱动的原生应用中。
Sunsetz 正在持续重构中。界面只展示 Host 和 Runtime 已明确声明可用的能力;未完成的路线图功能不会作为已交付能力宣传。
- 多项目与多会话管理,支持搜索、归档、分叉和时间线回退。
- Runtime 流式会话、工具活动时间线、停止与发送队列。
- Ask、单次允许、会话允许、拒绝和受控无人值守权限策略。
- 三层输入器、附件持久化、精确上下文用量和 Runtime 模型选择。
- 前后台统一、可在 WebView 重载后恢复的权限/Agent 提问/计划交互;死亡 Runtime RPC 明确标记 interrupted。
- Files、Changes 和 Plan 资源面板,支持代码、Markdown、图片、媒体、PDF 和 Office 预览。
- 自定义 Provider、MCP、技能、只读插件目录/搜索/hooks、账号,以及带 Runtime 进度心跳的 Rust Host 计划任务调度。
- 可重建的本地会话全文检索、引用真实消息的有限 Memory 候选及显式有界上下文包,以及只在用户审阅后保存的 Skill 候选;两类候选都不会自动写入 Runtime。
- 简体中文、繁体中文、英文,以及浅色、深色和高对比度主题。
HostCapabilities v2能力门控:未知、不支持或未安装的入口不会进入界面和键盘路径。
阶段状态、已验证证据和仍缺门禁见长期重构执行状态。
| 层 | 技术与职责 |
|---|---|
| 桌面 Host | Rust、Tauri 2;窗口、文件、权限、持久化和 Runtime 生命周期 |
| 工作台 UI | React 19、TypeScript、Vite;会话、输入器、资源和设置界面 |
| Runtime 边界 | 版本化能力与 DTO;兼容细节隔离在私有适配层 |
| 验证 | Vitest、Playwright、Rust 测试、Tauri 命令与事件契约扫描 |
需要 Node.js 22+、pnpm 9 和 Rust stable。macOS 构建还需要 Xcode Command Line Tools;Windows 构建需要 Visual Studio Build Tools 和 WebView2。
pnpm install
pnpm dev仅运行 Web UI:
pnpm dev:ui仅做 UI 冒烟时可用本地模拟 Runtime(不会读取项目或运行工具):
SUNSETZ_ACP=mock pnpm dev真实本机工作请直接 pnpm dev,并在设置 → 我的模型中添加 API。默认内核是应用内 agent_loop,不需要 Grok CLI。
应用数据目录可通过 SUNSETZ_HOME 覆盖。
pnpm verify:contracts
pnpm typecheck
pnpm test
pnpm test:coverage
pnpm coverage:audit
pnpm coverage:changed
pnpm build:ui
pnpm test:visual
cd src-tauri && cargo test覆盖率策略见 coverage-policy.json,构建与打包说明见 docs/BUILD.md。
- 不要提交 Token、API Key、认证文件、支持包或私人项目内容。
- 项目信任和 Ask 权限默认开启;无人值守能力需要明确配置。
- 秘密值应进入系统安全存储,不得写入 journal、预览、技能、日志或诊断包。
- 安全问题请按
SECURITY.md私下报告。
源码按 LICENSE 中的 MIT 条款发布,并保留其中要求的第三方版权声明。Sunsetz 名称、图标和品牌资产不包含在源码许可授予的商标权中,详见 TRADEMARKS.md。
