feat(desktop): embed BoosAPI Desktop client as a subproject
Vendor the rebranded BoosAPI Desktop client (Tauri + Vue) into metapi as a monorepo subdirectory under desktop/. Source only — node_modules, dist, Cargo target and the upstream .git history are excluded. desktop/ keeps its own independent Cargo workspace (desktop/src-tauri with crates/*); it is not part of the backend boosapi crate, so a `cargo check` at the metapi root still compiles only the backend. Build the desktop app from desktop/src-tauri per desktop/README.md. Note: app icons are still placeholder assets pending the final BoosAPI logo. The updater signing keys live outside the repo and are not included.
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
<div align="center">
|
||||
|
||||
# BoosAPI Desktop
|
||||
|
||||
**English** | [简体中文](./README.zh-CN.md)
|
||||
|
||||
A local-first AI desktop client for the Boos ecosystem — multi-provider chat, AI agents, knowledge base, MCP, and a built-in API gateway, in one app.
|
||||
|
||||
[](https://github.com/Boos4721/boos-chat/releases)
|
||||
[](#platform-support)
|
||||
|
||||
</div>
|
||||
|
||||
## What is BoosAPI Desktop
|
||||
|
||||
BoosAPI Desktop is a desktop AI workspace that runs on your own machine. It ships with **BoosAPI** (`https://api.boos.lat`) wired in as the default provider, so you can start chatting immediately, while staying free to connect any other OpenAI-compatible endpoint. Your conversations, keys, and files live locally.
|
||||
|
||||
## Features
|
||||
|
||||
### Chat & models
|
||||
- **Multi-provider chat** — Connect BoosAPI, OpenAI, Claude, Gemini, DeepSeek, Qwen, and any OpenAI-compatible endpoint, with custom base URL, API path, headers, and proxy rules.
|
||||
- **Provider onboarding** — Import provider profiles via `boosapi://` deep links and CC Switch config import, applied after your confirmation.
|
||||
- **Model management** — Sync remote model lists, manage groups, test latency, and configure capability tags, context length, sampling defaults, reasoning profiles, and per-model `extra_body`.
|
||||
- **Conversation workflow** — Streaming replies, reasoning blocks, message versions, conversation branching, title generation, long-conversation compression, and multi-model parallel answers.
|
||||
|
||||
### AI agent
|
||||
- **Agent mode** — Let models read/edit files, run commands, and analyze code inside a controlled desktop workflow.
|
||||
- **Permission control** — Choose standard review, auto-accept edits, or full-access mode, with working-directory sandbox checks.
|
||||
- **Approval & cost panel** — Watch tool calls live, remember allow decisions, and track tokens and cost per agent session.
|
||||
|
||||
### Content rendering
|
||||
- **Markdown & math** — Render Markdown, code highlighting, tables, task lists, and LaTeX inline during streaming.
|
||||
- **Code, diagrams & artifacts** — Built-in Monaco code blocks, Mermaid, D2 diagrams, and an artifact panel for code, notes, reports, and previews.
|
||||
- **HTML fragment rendering** — Safely preview model-generated HTML fragments with streaming-stability fixes.
|
||||
|
||||
### Search & knowledge
|
||||
- **Web search** — Plug in Tavily, Zhipu WebSearch, Bocha, and more, with source citations and search-query generation.
|
||||
- **Local knowledge base** — Index private documents with sqlite-vec, configure retrieval/rerank options, and inspect retrieval feedback.
|
||||
- **Context management** — Attach files, search results, knowledge snippets, memory, and tool output to conversation context.
|
||||
|
||||
### Tools & extensions
|
||||
- **MCP protocol** — Run Model Context Protocol servers over stdio, SSE, or StreamableHTTP transports.
|
||||
- **Built-in tools** — Use built-in MCP tools like fetch and file search without installing separate servers.
|
||||
- **Tool-loop limits** — Configure a max tool-call loop count and recover interrupted or stuck tool sessions.
|
||||
|
||||
### API gateway
|
||||
- **Local gateway** — Expose OpenAI Chat Completions, OpenAI Responses, Claude-native, and Gemini-native APIs from the desktop app.
|
||||
- **Access & observability** — Manage gateway keys, SSL/TLS certificates, request logs, and usage stats locally.
|
||||
- **Client templates** — Ready-made config templates for Claude Code, Codex CLI, OpenCode, Gemini CLI, and custom clients.
|
||||
|
||||
### Data import & backup
|
||||
- **Third-party import** — Import ChatGPT exports, Cherry Studio backups, and Kelivo backups, with preview stats, warnings, and duplicate handling.
|
||||
- **Provider & file migration** — Cherry Studio / Kelivo import can optionally migrate linked providers, API keys, and file attachments.
|
||||
- **Backup** — Back up and restore via a local directory, WebDAV, or S3-compatible storage.
|
||||
|
||||
### Desktop experience & security
|
||||
- **Local encryption** — App state lives in `~/.boosapi/`, user files in `~/Documents/BoosAPI Desktop/`, and API keys are protected with AES-256 and a local master key.
|
||||
- **Desktop integration** — Tray, always-on-top, global shortcuts, autostart, proxy settings, and update checks.
|
||||
- **11 UI languages** — Switch between Simplified Chinese, Traditional Chinese, English, Japanese, Korean, French, German, Spanish, Russian, Hindi, and Arabic.
|
||||
|
||||
## Platform support
|
||||
|
||||
| Platform | Architecture |
|
||||
|----------|--------------|
|
||||
| macOS | Apple Silicon (arm64), Intel (x86_64) |
|
||||
| Windows 10/11 | x86_64, arm64 |
|
||||
| Linux | x86_64 (AppImage/deb/rpm), arm64 (AppImage/deb/rpm) |
|
||||
|
||||
## Quick start
|
||||
|
||||
Download the build for your platform from the [Releases](https://github.com/Boos4721/boos-chat/releases) page. On first launch, BoosAPI is preconfigured as the default provider — add your key in Settings and start chatting.
|
||||
|
||||
## Build from source
|
||||
|
||||
```bash
|
||||
# Frontend deps
|
||||
pnpm install
|
||||
|
||||
# Build the bundled renderer packages (first time only)
|
||||
pnpm --dir libs/stream-monaco install && pnpm --dir libs/stream-monaco build
|
||||
pnpm --dir libs/markstream-vue install && pnpm --dir libs/markstream-vue run build:parser
|
||||
pnpm --dir libs/markstream-vue/packages/markstream-react build
|
||||
|
||||
# Run in dev / produce a bundle
|
||||
pnpm tauri dev
|
||||
pnpm tauri build
|
||||
```
|
||||
|
||||
Requires Rust (stable), Node 20+, pnpm, and the Tauri Linux system dependencies (`webkit2gtk-4.1`, `libsoup-3.0`) on Linux.
|
||||
|
||||
## FAQ
|
||||
|
||||
### macOS says the app is "damaged" or "from an unidentified developer"
|
||||
|
||||
The app is not signed by Apple, so macOS may warn you. Remove the quarantine attribute:
|
||||
|
||||
```bash
|
||||
sudo xattr -dr com.apple.quarantine "/Applications/BoosAPI Desktop.app"
|
||||
```
|
||||
|
||||
Then open it from **System Settings → Privacy & Security** and click **Open Anyway** if prompted.
|
||||
|
||||
## License
|
||||
|
||||
BoosAPI Desktop is a fork of [AQBot](https://github.com/AQBot-Desktop/AQBot), used and relicensed with the author's permission. It bundles the MIT-licensed open-agent-sdk. See [LICENSE](LICENSE).
|
||||
Reference in New Issue
Block a user