The Private Agent OS for Desktop & Mobile
Index files · Run AI agents · Connect to 10,000+ tools — all without sending data to the cloud
Website · Download · Features · Architecture · Roadmap · Contributing
Ghost is a private, local-first Agent OS for desktop and mobile. It indexes your files, understands your context, connects to thousands of tools via open protocols, and takes actions on your behalf — without sending a single byte to the cloud.
Your data should never leave your machine to get things done.
Ghost runs AI natively on your hardware — no cloud APIs, no GPU requirements, no external dependencies. From semantic search to agentic tool calling, everything happens locally. It speaks the complete 2026 agent protocol stack (MCP, AG-UI, A2UI, A2A) so you connect to every AI ecosystem without giving up privacy.
- <5ms keyword search (FTS5) + <500ms semantic search (sqlite-vec KNN) fused via Reciprocal Rank Fusion
- Native all-MiniLM-L6-v2 embeddings (384D, ~23MB) via Candle — zero external dependencies
- Fallback chain: Native Candle → Ollama (768D) → keyword-only
- Real-time file watcher for PDF, DOCX, XLSX, TXT, Markdown, and 50+ code formats
- Auto-detects CPU/RAM/GPU → selects optimal Qwen2.5-Instruct GGUF (0.5B–7B, Q4_K_M)
- ReAct agent: Reason → Act → Observe with grammar-constrained tool calling and 3-tier safety
- Zero-config: detect hardware → select model → download from HuggingFace Hub → load in background
- Graceful fallback: Native GGUF → Ollama HTTP → offline mode
Ghost is the first desktop app implementing every major agent protocol — no vendor lock-in, no proprietary APIs.
| Protocol | Status | What it does |
|---|---|---|
| MCP | ✅ Server + Client | Expose Ghost tools + connect to 10,000+ external servers via rmcp |
| MCP Catalog | ✅ App Store | 30+ curated servers + 6,000+ from Official MCP Registry, one-click install |
| Runtime Bootstrap | ✅ Zero-Config | Auto-install Node.js, uv/Python — no manual setup needed |
| MCP Apps | 🔜 Next | Render interactive tool UIs in-conversation (official MCP extension) |
| AG-UI | ✅ Runtime | Bidirectional agent↔user streaming — 30+ event types (Reasoning, Activity, ToolCallResult), SSE endpoint |
| A2UI | ✅ Renderer | Generative UI — 17+ component types (Tabs with active switching, inputs, data binding) |
| Skills | ✅ Registry | YAML frontmatter skill definitions + trigger matching |
| A2A | ✅ Discovery | Agent Card at /.well-known/agent.json + JSON-RPC stub — full task wiring in Phase 2 |
| WebMCP | 🔜 Planned | W3C browser bridge for structured web interactions |
- Windows (NSIS) · macOS (DMG × 2) · Linux (DEB/RPM/AppImage) · Android (APK/AAB) · iOS (ready)
- <10MB installer · <40MB RAM idle · <500ms cold start
- Conditional compilation (
#[cfg(desktop)]/#[cfg(mobile)]) — single Rust codebase - Onboarding wizard, system tray, zero-config file discovery
See ROADMAP.md → for the full development plan.
- Next: MCP Apps interactive UIs, A2A multi-agent coordination, OS UI automation
- Then: WebMCP browser bridge, Skills Marketplace, B2B/Teams
Ghost uses a 6-layer Agent OS architecture where each layer is independently replaceable:
┌──────────────────────────────────────────────────────┐
│ Frontend (React/TypeScript) │
│ Omnibox │ Results │ Chat │ A2UI Renderer │ Settings │
├──────────────────────────────────────────────────────┤
│ AG-UI Runtime (Agent ↔ User Streaming) │
│ ~16 event types │ Human-in-the-loop │ State sync │
├──────────────────────────────────────────────────────┤
│ Tauri v2 IPC Bridge │
├──────────────────────────────────────────────────────┤
│ Agent Engine (ReAct Loop) │
│ Executor │ Tools │ Safety │ Memory │ Skills │
├──────────────────────────────────────────────────────┤
│ Protocol Hub (Rust — rmcp + custom) │
│ MCP Server │ MCP Client │ MCP Apps │ A2A │ WebMCP │
├──────────────────────────────────────────────────────┤
│ Core Engine (Rust) │
│ File Watcher │ Text Extractor │ Embedding Engine │
│ Vector DB │ OS Automation │ Micro-agents │
├──────────────────────────────────────────────────────┤
│ AI Layer (Local — Zero Dependencies) │
│ Native: Candle + all-MiniLM-L6-v2 (384D embeddings) │
│ Fallback: Ollama + nomic-embed-text (768D) │
│ Chat: Qwen2.5-Instruct GGUF (0.5B–7B, native) │
│ Agent: Qwen2.5-Instruct GGUF (0.5B–7B, tool calling) │
└──────────────────────────────────────────────────────┘
Ghost uses a two-speed architecture to feel instant without burning CPU:
| Layer | When | Speed | Resource Usage |
|---|---|---|---|
| Fast Layer | Always | <10ms | 0% GPU, <1% CPU |
| Smart Layer | On demand | 200-2000ms | Activates native AI |
The Fast Layer uses OS accessibility APIs and FTS5 keyword search. The Smart Layer activates only when the user asks a natural language question, requests an action, or a new file needs indexing.
| Layer | Technology | Purpose |
|---|---|---|
| Shell | Tauri v2 + React 18 | <10MB installer, native perf, 5 platforms |
| Database | SQLite + sqlite-vec + FTS5 | Vectors + text + metadata in one .db |
| Embeddings | Candle + all-MiniLM-L6-v2 | 384D, ~23MB, in-process, zero deps |
| Chat / Agent | Candle GGUF + Qwen2.5-Instruct | 0.5B–7B tiers, tool calling, ReAct |
| Protocols | rmcp · AG-UI · A2UI · MCP Apps · A2A | MCP server+client, streaming, gen UI |
| Extraction | lopdf · zip · calamine | PDF, DOCX, XLSX — pure Rust |
Get the latest release from Releases or the website:
| Platform | Format | Notes |
|---|---|---|
| Windows x64 | .exe (NSIS) |
No admin required, WebView2 auto-bootstrap |
| macOS Apple Silicon | .dmg |
M1 / M2 / M3 / M4 |
| macOS Intel | .dmg |
x64, macOS ≥ 10.15 |
| Linux x64 | .deb .rpm .AppImage |
Debian, Fedora, universal |
| Android ARM64 | .apk .aab |
Min SDK 24, Tauri v2 WebView |
No external dependencies. Ghost ships with native AI — no Ollama, no GPU, no internet after first install.
Prerequisites: Rust (stable) · Bun ≥ 1.0 (or Node ≥ 18) · Tauri v2 deps
git clone https://github.com/ghostapp-ai/ghost.git && cd ghost
bun install
bun run tauri dev # Dev mode — native model downloads ~23MB on first run
bun run tauri build # Production build → src-tauri/target/release/bundle/# Android (requires SDK + NDK 27+)
bun run tauri android build --target aarch64Optionally install Ollama and pull nomic-embed-text for higher-quality 768D embeddings.
src/ # React 18 + TypeScript frontend
components/ # Onboarding, GhostInput, ChatMessages, A2UIRenderer, Settings …
hooks/ # useSearch, useAgui, usePlatform, useHotkey
lib/ # Tauri IPC wrappers, types, mode detection
src-tauri/src/ # Rust backend
indexer/ # File watcher + text extraction + chunking
db/ # SQLite · sqlite-vec · FTS5
embeddings/ # Native Candle + Ollama fallback + hardware detection
search/ # Hybrid search + RRF ranking
chat/ # Candle GGUF inference + model registry
agent/ # ReAct executor + tools + safety + memory + skills
protocols/ # MCP server/client · MCP catalog · Runtime bootstrap · AG-UI · A2UI · A2A · WebMCP
website/ # Astro Starlight documentation (GitHub Pages)
branding/ # Icons, social, brand guidelines
See ROADMAP.md for the detailed development plan with phases, milestones, and technical deliverables.
- Zero telemetry: Ghost collects no usage data, no analytics, no crash reports.
- Local-only processing: All AI inference runs on your machine — native Candle engine or optional Ollama.
- Single file database: Your entire vault is one
.dbfile you control. - Optional encryption: ChaCha20-Poly1305 for vault encryption when sync is enabled (Phase 2).
- Open source core: The engine is fully auditable.
Contributions welcome! Read CONTRIBUTING.md for setup and conventions. Security issues → SECURITY.md.
MIT — free and open source.
Tauri · Candle · sqlite-vec · rmcp · Ollama · MCP · A2A · AG-UI · OpenClaw
Your data · Your machine · Your ghost
Website · Download · Discussions