--- title: OpenJarvis description: Programming abstractions for on-device AI hide: - navigation --- # _Programming abstractions_ for on-device AI

OpenJarvis is a modular framework for building, running, and learning from local AI systems. Five composable pillars — each with a clear ABC interface and decorator-based registry. Everything runs on your hardware. Cloud APIs are optional.

> pip install openjarvis
--- ## Get Started === "Browser App" Run the full chat UI locally with one script: ```bash git clone https://github.com/HazyResearch/OpenJarvis.git cd OpenJarvis ./scripts/quickstart.sh ``` This installs dependencies, starts Ollama + a local model, launches the backend and frontend, and opens `http://localhost:5173` in your browser. === "Desktop App" Download the native desktop app — it bundles Ollama and the Python backend so everything works out of the box. [Download for macOS (Apple Silicon)](https://github.com/HazyResearch/OpenJarvis/releases/latest/download/OpenJarvis_aarch64.dmg){ .md-button .md-button--primary } Also available for [macOS (Intel)](https://github.com/HazyResearch/OpenJarvis/releases/latest/download/OpenJarvis_x64.dmg), [Windows](https://github.com/HazyResearch/OpenJarvis/releases/latest/download/OpenJarvis_x64-setup.exe), [Linux (DEB)](https://github.com/HazyResearch/OpenJarvis/releases/latest/download/OpenJarvis_amd64.deb), and [Linux (RPM)](https://github.com/HazyResearch/OpenJarvis/releases/latest/download/OpenJarvis_amd64.rpm). See the [Downloads](downloads.md) page for details. === "Python SDK" ```python from openjarvis import Jarvis j = Jarvis() # auto-detect engine response = j.ask("Explain quicksort.") print(response) ``` For more control, use `ask_full()` to get usage stats, model info, and tool results: ```python result = j.ask_full( "What is 2 + 2?", agent="orchestrator", tools=["calculator"], ) print(result["content"]) # "4" print(result["tool_results"]) # [{tool_name: "calculator", ...}] ``` === "CLI" ```bash jarvis ask "What is the capital of France?" jarvis ask --agent orchestrator --tools calculator "What is 137 * 42?" jarvis serve --port 8000 jarvis memory index ./docs/ jarvis memory search "configuration options" ``` --- ## Five Pillars 1. **Intelligence** — The LM: model catalog, generation defaults, quantization, preferred engine. 2. **Agents** — The agentic harness: system prompt, tools, context, retry and exit logic. Seven agent types. 3. **Tools** — MCP interface: web search, calculator, file I/O, code interpreter, retrieval, and any external MCP server. 4. **Engine** — The inference runtime: Ollama, vLLM, SGLang, llama.cpp, cloud APIs. Same `InferenceEngine` ABC. 5. **Learning** — Improvement loop: SFT weight updates, agent advisor, ICL updater. Trace-driven feedback. --- ## Key Features
- **Five Composable Pillars** --- Intelligence, Agents, Tools, Engine, and Learning — each with a clear ABC interface and decorator-based registry. - **5 Engine Backends** --- Ollama, vLLM, SGLang, llama.cpp, and cloud (OpenAI/Anthropic/Google). Same `InferenceEngine` ABC. - **Hardware-Aware** --- Auto-detects GPU vendor, model, and VRAM. Recommends the optimal engine for your hardware. - **Offline-First** --- All core functionality works without a network connection. Cloud APIs are optional extras. - **OpenAI-Compatible API** --- `jarvis serve` starts a FastAPI server with SSE streaming. Drop-in replacement for OpenAI clients. - **Trace-Driven Learning** --- Every interaction is traced. The learning system improves models (SFT) and agents (prompt, tools, logic).
--- ## Documentation
- **[Getting Started](getting-started/installation.md)** --- Install OpenJarvis, configure your first engine, and run your first query. - **[User Guide](user-guide/cli.md)** --- CLI, Python SDK, agents, memory, tools, telemetry, and benchmarks. - **[Architecture](architecture/overview.md)** --- Five-pillar design, registry pattern, query flow, and cross-cutting learning. - **[API Reference](api/index.md)** --- Auto-generated reference for every module. - **[Deployment](deployment/docker.md)** --- Docker, systemd, launchd. GPU-accelerated container images. - **[Development](development/contributing.md)** --- Contributing guide, extension patterns, roadmap, and changelog.