An improved Open Interpreter with selective code approval, dynamic RAG, and vision support — plus multi-machine hub tools for managing projects across distributed setups.
Fork of OpenInterpreter/open-interpreter v0.4.3 (AGPL-3.0) — for upstream docs see the original README.
Open Interpreter lets an LLM run code on your machine. That's powerful, but the vanilla experience has gaps: auto_run is all-or-nothing, large outputs get mangled, there's no RAG, and there's no way to dynamically update the system message between turns.
This fork fixes those things. The core improvements — callable auto_run, Mini-RAG, vision, output handling — work on any single machine with vLLM or Ollama. No multi-machine setup required.
If you do work across multiple machines (GPU servers, workstations, edge devices), there's a second layer: 15 CLI tools that unify git, services, LLM workflows, and project context into a single terminal. But that's optional — the OI improvements stand alone.
Standalone enhancements that work without hub tools — just install and use:
- Callable auto_run — pass a function instead of a boolean to approve commands selectively. Safe commands (ls, git status, hub tools) run automatically; destructive commands pause for confirmation. This is the mechanism behind the WebUI's Run/Skip buttons.
- Callable custom_instructions — dynamic system message that updates each turn. Enables RAG injection, project context switching, and any logic that needs to react to conversation state.
- Mini-RAG — lightweight semantic retrieval engine (all-MiniLM-L6-v2, 384-dim). Loads entries from a JSON file, embeds them, and injects the best matches into the system message each turn. No vector database — just cosine similarity.
- Vision support —
%imagecommand sends clipboard or file images to vision-capable models. Multi-image and prompted modes. - Streaming command output — output appears live in the code block as it's produced, not after the command finishes. Spinners and progress updates are visible in real time
- Escape to interrupt — press Escape to cancel LLM generation or a running command and return to the prompt. The subprocess is killed cleanly
- Inactivity timeout — the 120s execution timeout resets on any output. Active commands never time out; only silent ones do
- Sudo detection — intercepts
sudocommands with a warning before execution - Truncation fixes — large outputs preserve their tail (not just head), ANSI escape codes stripped cleanly
- Refresh throttle — fast streaming output no longer floods the scrollback
- Rich output panels — colored diffs, aligned tables, highlighted errors
- Context token tracking — real token counts (via tiktoken) shown after each response in both terminal (
ctx 3.4K/44K (8%)) and WebUI, with color-coded fill level - Self-update —
interpreter --updatepulls latest from origin, with optional auto-update on startup viaoi_auto_updateconfig - Vendored tokentrim — fixes a double-subtraction bug in context window management
- Project context injection — when launched via
work --oi, OI receives the project's directory tree, CLAUDE.md conventions, and session preamble. Full CLAUDE.md is pre-seeded as silent context; a truncated version stays in the system message - Cross-shell PTY — shell subprocess works on both bash and zsh hosts, with bracketed paste mode disabled at the terminal level
Full reference: OI Improvements documentation
One-command install:
# Hub — full install (all state, cron, tools)
curl -sL https://raw.githubusercontent.com/thehighnotes/open-interpreter/main/tools/hub/bootstrap.sh | bash
# Node — OI + delegation to an existing hub
curl -sL https://raw.githubusercontent.com/thehighnotes/open-interpreter/main/tools/hub/bootstrap.sh | bash -s nodeOr manually:
git clone https://github.com/thehighnotes/open-interpreter.git
cd open-interpreter
pip install -e .
python3 tools/hub/install.py # hub mode
python3 tools/hub/install.py --node # node modeFor OI improvements only (no hub tools), you're done after pip install — create a profile pointing at your LLM server (vLLM or Ollama) and run interpreter --profile my-profile.py.
Keep up to date with interpreter --update (or enable oi_auto_update in config for automatic pulls on startup).
See the Getting Started guide for configuration details, LLM profiles, and the full config.json schema.
15 CLI tools + a web interface for managing projects across machines, all driven by ~/.config/hub/config.json:
| Tool | Alias | Purpose |
|---|---|---|
hub |
hub, status |
Dashboard, priorities, services, config |
git |
repo |
Git dashboard, commit, push, checkpoint, deploy |
work |
— | One-command session: prepare → overview → begin |
work --oi |
— | Launch OI natively on a remote node for local file access |
overview |
— | LLM-powered project briefings |
research |
— | Arxiv + GitHub release monitor |
backup |
— | Rsync hub ecosystem to backup target |
code |
— | Semantic search, RAG, dependency graphs |
edit |
— | Structured remote file editing via SSH |
health-probe |
— | Host & service health checker (cron) |
notify |
— | Notification history viewer |
hubgrep |
— | Cross-ecosystem search |
search |
— | DuckDuckGo web search |
oi-web |
— | Web UI — chat, hub tabs, image upload |
Full reference: Hub Tools documentation
Hub dashboard — hosts, services, caches at a glance:
$ hub --status
══════════════════════════════════════════════════════
HUB STATUS Sun 02 Mar
══════════════════════════════════════════════════════
HOSTS
Hub 127.0.0.1 up 12d 3.2/7.4 GB
GPU Server 192.168.1.100 up 12d 6.1/30.4 GB llama3:8b
Workstation 192.168.1.50 suspended
BACKGROUND
autosummary running (pid 1234)
research last fetch 2h ago
Code Assist 5 projects indexed, watcher active
Session launcher — one command to wake hosts, warm the LLM, start services, and launch your editor with full context:
$ work myapp
✓ GPU Server online
✓ LLM ready (Qwen3.5-35B loaded)
✓ 2 services started
✓ Overview cache refreshed
Launching Claude Code with context preamble...
┌──────────────────┐ SSH ┌──────────────────┐
│ Hub │◄────────────────►│ GPU Server │
│ (source of │ │ (node) │
│ truth) │ ┌────────────┐ │ │
│ │ │ Workstation│ │ vLLM / Ollama │
│ all state: │ │ (node) │ │ OI (native) │
│ config, caches │ │ │ │ project repos │
│ journals, cron │ │ OI (native)│ │ backup storage │
│ hub tools │◄►│ gh CLI │ └──────────────────┘
│ backups │SS│ project │ ▲
└──────────────────┘H │ repos │ │
▲ └────────────┘ │
│ SSH ▲ │
└────────────────────┴──────────────────┘
nodes delegate state to hub
via SSH — config, caches, journals
The hub is the single source of truth — it owns all state: config, caches, journals, research data, and cron jobs. Nodes are remote machines where OI is installed for native file access and local code execution, but they delegate all persistent state back to the hub via SSH. This means you get full-speed file operations on the node while keeping one canonical set of project metadata. Install a node with install.py --node or use the bootstrap script with the --node flag.
Browser-based OI with hub integration — 8 tabs (Chat, Status, Projects, Repo, Research, Notify, Help, Settings), streaming markdown, code approval, image upload. Accessible from any device on the network.
oi-web # start on port 8585
open http://localhost:8585 # or http://<hub-ip>:8585Full reference: WebUI documentation
30+ magic commands let you operate the hub from inside an OI session:
%status Hub dashboard
%repo Git dashboard
%switch myapp Switch project context
%checkpoint Batch commit+push all dirty projects
%research Research digest
%image Send clipboard/file image to vision model
%help Show all commands
Full reference: OI Integration documentation
Development happens across three machines — a workstation for coding, an AGX Orin running vLLM for inference, and an Orin Nano as the always-on hub. The tools started as shell scripts to avoid repetitive SSH sessions and kept evolving as new problems came up. Born on ARM + NVIDIA but designed to be architecture-generic — pure Python, SSH, and config files. If you can run Python 3.10+ and reach your machines over SSH, it works.
Read the full story on AIquest → Architecture deep-dive, development timeline, and the thinking behind each layer.
| Platform | Status | Notes |
|---|---|---|
| Ubuntu x86_64 | Tested | Primary CI target. Bare metal and WSL2. |
| Jetson (ARM64) | Tested | Built on Orin Nano + AGX Orin. |
| Debian / RPi | Community | Pure Python + SSH — should work. Not CI-tested. |
| macOS | Untested | TUI menus fall back to numbered input. Core tools likely work. |
| Windows | Not supported | Requires WSL2. Uses termios, tty, Unix signals. |
| Page | Content |
|---|---|
| Getting Started | Install, config schema, LLM profiles, host roles |
| OI Improvements | Callable auto_run, custom_instructions, Mini-RAG |
| Hub Tools | Full reference for all 15 CLI tools |
| Web Interface | WebUI architecture, tabs, API endpoints, responsive layout |
| OI Integration | Magic commands — project, git, infra, vision |
| Reference | Modified files, new files, environment variables, contribution patterns |
| Troubleshooting | LLM backend, Code Assistant, WebUI — common problems and fixes |
AGPL-3.0, same as upstream. Modified files are marked with headers. See LICENSE.


