---
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.