OpenJarvis

Programming abstractions for on-device AI.

Project Docs Python License

--- > **[Documentation](https://hazyresearch.stanford.edu/OpenJarvis/)** > > **[Project Site](https://www.intelligence-per-watt.ai/)** OpenJarvis is a framework for building AI systems that run *entirely on local hardware*. Rather than treating intelligence as a cloud service, OpenJarvis provides composable abstractions for local model selection, inference, agentic reasoning, tool use, and learning — all aware of the hardware they run on. ```python from openjarvis import Jarvis j = Jarvis() # auto-detect hardware + engine response = j.ask("Explain backpropagation") # route to best local model j.ask("Solve x^2 - 5x + 6 = 0", # multi-turn agent with tools agent="orchestrator", tools=["calculator", "think"]) j.memory.index("./papers/") # index documents into local storage results = j.memory.search("attention mechanism") # semantic retrieval j.close() ``` ## Installation ```bash pip install openjarvis # core framework pip install openjarvis[server] # + FastAPI server ``` You also need a local inference backend: [Ollama](https://ollama.com), [vLLM](https://github.com/vllm-project/vllm), [SGLang](https://github.com/sgl-project/sglang), or [llama.cpp](https://github.com/ggerganov/llama.cpp). ## Quick Start The fastest path is Ollama on any machine with Python 3.10+: ```bash # 1. Install OpenJarvis pip install openjarvis # 2. Detect hardware and generate config jarvis init # 3. Install and start Ollama (https://ollama.com) curl -fsSL https://ollama.com/install.sh | sh ollama serve # start the Ollama server # 4. Pull a model ollama pull qwen3:8b # 5. Ask a question jarvis ask "What is the capital of France?" # 6. Verify your setup jarvis doctor ``` `jarvis init` auto-detects your hardware and recommends the best engine. After init, it prints engine-specific next steps. Run `jarvis doctor` at any time to diagnose configuration or connectivity issues. ## The Five Pillars | Pillar | What it does | Key abstractions | |--------|-------------|-----------------| | **Intelligence** | Model management and routing | `RouterPolicy`, `QueryAnalyzer`, `ModelCatalog` | | **Engine** | Inference runtime abstraction | `InferenceEngine` ABC — Ollama, vLLM, SGLang, llama.cpp, MLX | | **Agents** | Pluggable reasoning strategies | `BaseAgent` ABC — Simple, Orchestrator, ReAct, OpenHands, OpenClaw | | **Tools** | Capabilities via MCP | `BaseTool` ABC — calculator, code interpreter, web search, memory; external MCP servers auto-discovered | | **Learning** | Trace-driven adaptation | `LearningPolicy` ABC — SFT (model routing), AgentAdvisor (restructuring), ICL (tool usage) | Every interaction produces a **Trace** — a structured record of the full reasoning chain. Learning policies consume traces to improve model selection, agent behavior, and tool usage over time. ## About OpenJarvis is part of [Intelligence Per Watt](https://www.intelligence-per-watt.ai/), a research initiative studying the efficiency of on-device AI systems. The project is developed at [Hazy Research](https://hazyresearch.stanford.edu/) and the [Scaling Intelligence Lab](https://scalingintelligence.stanford.edu/) at [Stanford SAIL](https://ai.stanford.edu/). ## Sponsors

Laude InstituteStanford MarloweGoogle Cloud PlatformLambda Labs

## License [Apache 2.0](LICENSE)