senweaver/SenWeaverCoding

GitHub: senweaver/SenWeaverCoding

一款基于 Rust 和 Tauri 2 的 AI 自主编程桌面编辑器,内嵌 LLM Agent 运行时,支持多模式代码探索、重构、测试与调试。

Stars: 9 | Forks: 8

# SenWeaverCoding [English](./README.md) · [简体中文](./README.zh-CN.md) SenWeaverCoding 是一款桌面端 AI 代码编辑器,它将整个 agent 运行时打包为一个可安装的应用程序。其后端是一个直接嵌入到 Tauri shell 中的 Rust 库 (`src/`);前端是位于 `desktop/` 中的 React + Vite UI。没有 sidecar 进程, 无需连接远程服务,也无需单独安装 CLI —— 一个 安装程序即可为您提供完整的 IDE。 ## 核心亮点 | 领域 | 具体内容 | | --- | --- | | **桌面端优先** | Tauri 2 shell,支持原生菜单、多标签页会话、应用内终端、文件浏览器、内嵌浏览器。 | | **Rust agent 运行时** | 与在 headless 部署中提供的 crate 相同,通过 `crate-type = ["cdylib", "staticlib", "rlib"]` 嵌入。零 IPC 开销。 | | **5 种编程模式** | Agent、Plan、Ask、Debug、Harness —— 可在会话中切换;每种模式都会重新配置系统提示 + 工具白名单 + 自动验证策略。Agent 为默认模式,并公开完整的工具集。 | | **130+ 工具** | 文件操作、带有 PTY 镜像的 shell、Git、ripgrep 搜索、glob/多文件编辑、网页搜索/抓取、headless 浏览器、记忆存储/调用、todo 写入、图像生成、MCPs、Skills、Subagents。 | | **多提供商支持** | OpenAI / Anthropic / DeepSeek / Gemini / Copilot / OpenRouter / 任何与 OpenAI 兼容的提供商。提供商设置位于应用内。 | | **持久化记忆** | SQLite + Markdown 后端及向量嵌入,每个会话的工作目录隔离,支持回滚/恢复检查点。 | | **性能优化** | 流式 Markdown 降级,rAF 批处理增量刷新,`content-visibility: auto` 虚拟化,每个 IO 密集路径上的 `tokio::task::spawn_blocking`。有关硬性限制请参见 `AGENTS.md`。 | ## 安装 预构建的安装程序发布在 [Releases](https://github.com/senweaver/SenWeaverCoding/releases) 页面。 **每个安装程序都同时包含桌面应用和 `sen` CLI**,因此 只需安装一次即可获得 GUI 以及可在终端中调用的 `sen` 命令。 | 平台 | 文件名 | 安装结果 | | --- | --- | --- | | **Windows x64** | `SenWeaverCoding__x64-setup.exe` (NSIS) | 允许您选择安装范围 (当前用户 / 所有用户) **以及安装目录**。将安装目录添加到 `HKCU\Environment\Path`,以便在安装后立即从任何 cmd / PowerShell / Windows Terminal 会话调用 `sen.exe`。卸载时可彻底清除。 | | **Windows x64** | `SenWeaverCoding__x64_en-US.msi` | 用于静默安装 / 组策略部署。 | | **macOS (通用)** | `SenWeaverCoding__universal.dmg` | 单一的拖入“应用程序”文件夹安装包,原生支持在 Apple Silicon 和 Intel Mac 上运行 (捆绑的 `sen` 是一个通过 `lipo` 合并的胖二进制文件)。CLI 位于 `SenWeaverCoding.app/Contents/Resources/sen`;只需使用 `ln -sf "/Applications/SenWeaverCoding.app/Contents/Resources/sen" /usr/local/bin/sen` 创建一次符号链接,即可从任何 shell 中调用它。 | | **Linux x64** | `SenWeaverCoding__amd64.deb` | 在 Debian/Ubuntu 上执行 `sudo dpkg -i` —— 会自动安装桌面启动器 **以及** `/usr/bin/sen`。 | | **Linux x64** | `SenWeaverCoding__amd64.AppImage` | 便携式单文件桌面应用。AppImage 中 **不** 包含 CLI —— 如果您需要全局的 `sen` 命令,请改而安装 `.deb` 包。 | 安装完成后,从开始菜单 / Applications / 应用启动器中启动 **SenWeaverCoding**。首次运行时,打开 *Settings → Providers* 为您想使用的任意提供商添加 API 密钥。在终端中 您可以通过 `sen --help` 验证 CLI 是否正常。 ## 从源码构建 ### 前置条件 * Rust ≥ 1.87 (稳定版) —— 通过 [rustup](https://rustup.rs) 安装。 * [Bun](https://bun.sh) ≥ 1.1 (用于前端;也可以使用 npm/pnpm)。 * 特定平台的 Tauri 前置条件: * **Windows**:WebView2 运行时 + MSVC 构建工具。 * **macOS**:Xcode Command Line Tools。 * **Linux**:`libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf`。 * 完整列表:。 ### 开发 ``` git clone https://github.com/senweaver/SenWeaverCoding.git cd SenWeaverCoding/desktop bun install bun run tauri dev ``` ### 本地生成安装程序 ``` cd desktop bun install bun run tauri build # all bundlers configured in tauri.conf.json ``` 产物将生成在 `desktop/src-tauri/target/release/bundle/` 中: | 包格式 | 路径 | | --- | --- | | Windows NSIS / MSI | `bundle/nsis/*.exe`, `bundle/msi/*.msi` | | macOS dmg / .app | `bundle/dmg/*.dmg`, `bundle/macos/*.app` | | Linux deb / AppImage | `bundle/deb/*.deb`, `bundle/appimage/*.AppImage` | ### 发布新版本 本仓库在 `.github/workflows/release.yml` 中附带了一个单一的 GitHub Actions 工作流。 推送匹配 `v*` 的标签 (例如 `v0.1.0`) —— 或手动运行工作流并传入 `gh workflow run release.yml -f tag=v0.1.0` —— 都会触发一次干净的多平台构建: 1. 每个平台作业都会执行一次全新的 `actions/checkout@v4` (您开发机上的本地 `node_modules/`、`target/`、`.senweavercoding/`、`dist/` 或 `.vite/` 缓存绝不会混入 —— `.gitignore` 已将它们排除,且工作流会从头开始安装)。 2. 将 `sen` CLI 构建到 `desktop/src-tauri/binaries/sen[.exe]`。 3. 运行 `tauri-action`,它会构建前端并将 桌面应用 + CLI 打包成各平台的安装程序。 4. 将每个安装程序上传到同一个 GitHub Release。 ``` git tag v0.1.0 git push origin v0.1.0 ``` 几分钟后,Release 页面将列出适用于 Windows / macOS (通用 `.dmg`) / Linux (deb + AppImage) 的安装程序。 ### 质量关卡 本仓库强制执行两项零错误检查 (参见 `AGENTS.md`): ``` cargo check --lib cargo check --lib --no-default-features cd desktop && bunx tsc --noEmit ``` 本仓库中故意 **没有测试文件** —— 所有 验证均通过 `cargo check`、`cargo clippy` 以及对桌面应用的 手动冒烟测试完成。保留在 `benches/*.rs` 中的基准测试 用于跟踪性能回归。 ## 架构 ``` SenWeaverCoding/ ├── src/ # Rust agent runtime (lib + `sen` bin) │ ├── agent/ # Turn loop, tool dispatch, compression │ ├── providers/ # OpenAI / Anthropic / DeepSeek / ... │ ├── tools/ # 130+ tools (file/shell/git/web/...) │ ├── gateway/ # axum HTTP + WebSocket router │ ├── channels/ # Slack / Telegram / Discord / ... │ ├── memory/ # SQLite + vector index backends │ ├── context/ # Symbol graph, outline, RAG │ ├── apply_model/ # Patch / multi-edit application │ └── ... │ ├── desktop/ # Tauri 2 + React + Vite front-end │ ├── src/ # React app (5 modes, terminal panel, │ │ # plan card, tool result blocks, …) │ ├── src-tauri/ # Tauri shell — embeds `src/` as a Rust │ │ # library, no sidecar process │ └── package.json │ ├── crates/ # Workspace sub-crates (sen-core / sen-cli / │ # sen-tui / sen-channels) ├── tool_descriptions/ # Machine-readable tool manifests ├── benches/ # Criterion benchmarks └── .github/workflows/ # CI / release pipelines ``` 桌面应用在进程内启动 gateway router,并 通过 `127.0.0.1` WebSocket / HTTP 将 React 前端连接到它。因为 后端是作为库 (`sen_desktop_lib.{cdylib,staticlib}`) 加载的, UI 和 agent 运行时之间没有序列化或 IPC 开销。 ## 路线图 - 适用于 Windows 和 macOS 公证 (notarization) 的代码签名安装程序。 - 通过 Tauri Updater 实现的原生自动更新通道。 - 更多提供商适配器 (Mistral、Qwen、GLM 等)。 - 用于向桌面应用交接的 VS Code / JetBrains 伴随扩展。 - 云端协作工作区。 ## 许可证 [MIT](./LICENSE) © 2025-2026 senweaver
标签:AI Agent Runtime, AI代码编辑器, AI编程助手, DevTools, Harness工程, IDE, LLM多供应商, MCP协议, React, Rust, SenAgentOS, SQLite, Syscalls, Tauri, tokio, Vite, 代码调试, 代码重构, 内置终端, 前后端集成, 可视化界面, 向量嵌入, 多标签会话, 大模型编排, 开源, 性能优化, 持久化记忆, 文件浏览器, 无头浏览器, 桌面应用, 检测绕过, 流式Markdown, 网络流量审计, 自主AI代理, 通知系统, 零IPC开销