4.8 KiB
title, description, hide
| title | description | hide | |
|---|---|---|---|
| OpenJarvis | Programming abstractions for on-device AI |
|
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.
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"
The desktop app is a native window for the chat UI. Start the backend first,
then open the app.
**1.** Start backend: `git clone ... && cd OpenJarvis && ./scripts/quickstart.sh`
**2.** Download the app:
[Download for macOS (Apple Silicon)](https://github.com/HazyResearch/OpenJarvis/releases/download/desktop-latest/OpenJarvis_1.0.0_aarch64.dmg){ .md-button .md-button--primary }
Also available for [Windows](https://github.com/HazyResearch/OpenJarvis/releases/download/desktop-latest/OpenJarvis_1.0.0_x64-setup.exe), [Linux (DEB)](https://github.com/HazyResearch/OpenJarvis/releases/download/desktop-latest/OpenJarvis_1.0.0_amd64.deb), and [Linux (RPM)](https://github.com/HazyResearch/OpenJarvis/releases/download/desktop-latest/OpenJarvis-1.0.0-1.x86_64.rpm). See [Installation](getting-started/installation.md#desktop-app) 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
- Intelligence — The LM: model catalog, generation defaults, quantization, preferred engine.
- Agents — The agentic harness: system prompt, tools, context, retry and exit logic. Seven agent types.
- Tools — MCP interface: web search, calculator, file I/O, code interpreter, retrieval, and any external MCP server.
- Engine — The inference runtime: Ollama, vLLM, SGLang, llama.cpp, cloud APIs. Same
InferenceEngineABC. - 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
InferenceEngineABC. -
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 servestarts 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
-
Install OpenJarvis, configure your first engine, and run your first query.
-
CLI, Python SDK, agents, memory, tools, telemetry, and benchmarks.
-
Five-pillar design, registry pattern, query flow, and cross-cutting learning.
-
Auto-generated reference for every module.
-
Docker, systemd, launchd. GPU-accelerated container images.
-
Contributing guide, extension patterns, roadmap, and changelog.