What Makes This Different
Open Interpreter lets LLMs run code. open-mind lets LLMs understand code — and then make decisions about how to execute it.
Three capabilities that open-interpreter doesn't have:
1. 🧠 Induction Engine
Ingest any GitHub repo (or local codebase) and the induction engine builds a living model of it:
- Parses every function and class using AST (Python) or tree-sitter (Rust, C, C++, JavaScript, TypeScript)
- Extracts signatures, docstrings, type hints, call graphs
- Identifies test coverage — which functions are tested, which aren't
- Builds dual-side vectors — input vectors (what triggers this function?) and output vectors (what does it produce?)
- Stores everything in SQLite for fast retrieval
=
2. 🎸 Tripartite Synchronizer
For every function in your codebase, the synchronizer decides: how much thinking does this need?
| Decision | When | Cost | Example |
|---|---|---|---|
| HARDCODE | Hot path, tested, deterministic | 0 tokens, ~1ms | add(a, b) — just run it |
| CACHED | Pre-computed, stable output | 0 tokens, ~5ms | Config lookups — replay the result |
| HYBRID | Mostly stable, some edge cases | ~50 tokens | API calls — cache + fallback |
| MODEL | Novel, creative, untested | ~500 tokens, ~2s | New feature generation — ask the LLM |
Three inputs drive the decision:
- Hardware profile — GPU? RAM? Battery? Edge device?
- Application profile — Latency? Safety? Scale?
- User profile — Manual control? Creative? Consistent?
=
=
=
=
# "hardcode"
3. 🔌 Export Bridges
Connect the induction engine to the real world:
- lever-runner export → skill packs for the lever-runner command system
- pincherOS .nail export → pre-computed results for edge devices (ESP32, Jetson)
- Vector search → semantic function lookup across ingested repos
# Export HARDCODE functions as lever-runner commands
# Export CACHED functions as .nail files for pincherOS
Quick Start
Install
Use as Open Interpreter (everything still works)
All original open-interpreter functionality is preserved. Chat with an LLM, run code, iterate.
Use the Induction Engine
# Ingest a repo
=
# Build vectors
=
# Search for functions
=
Run the Full Pipeline Demo
This runs the complete loop: ingest → vectorize → hardware probe → tripartite decisions → export lever-runner pack → export .nail files.
Run the Tripartite Demo
Shows the synchronizer making decisions for different hardware/application/user scenarios.
Architecture
open-mind/
├── interpreter/
│ ├── core/ # Open Interpreter core (unchanged)
│ │ ├── core.py # Interpreter class
│ │ └── respond.py # Response handling
│ ├── induction/ # ✨ THE NEW STUFF
│ │ ├── ingester.py # Repo → functions/classes pipeline
│ │ ├── multi_lang_parser.py # tree-sitter multi-language parser
│ │ ├── vector_builder.py # Dual-side vector builder
│ │ ├── synchronizer.py # Tripartite decision engine
│ │ ├── hardware_probe.py # GPU/RAM/CPU detection
│ │ ├── spreader.py # Continuous iteration engine
│ │ ├── profiles.py # Pre-built scenarios
│ │ ├── export_lever.py # lever-runner bridge
│ │ └── export_nail.py # pincherOS bridge
│ ├── llm/ # LLM setup (OpenAI, local, etc.)
│ ├── cli/ # CLI interface
│ ├── code_interpreters/ # Python, JS, R, Shell execution
│ ├── terminal_interface/ # Terminal UI
│ ├── rag/ # RAG pipeline
│ └── utils/ # Utilities
├── tests/
│ ├── test_induction.py # Induction engine tests
│ ├── test_synchronizer.py # Synchronizer tests
│ └── test_interpreter.py # Original interpreter tests
├── demo_full_pipeline.py # Full pipeline demo
├── demo_tripartite.py # Tripartite demo
└── induction-results/ # Stored ingestion results
The Induction Engine — Deep Dive
How Ingestion Works
- Clone the repo (or use a local path)
- Walk the file tree, skipping
.git/,target/,node_modules/ - Detect language by file extension
- Parse each file:
- Python → built-in
astmodule (always works) - Rust, C, C++, JS, TS → tree-sitter (optional, requires
pip install tree-sitter-*)
- Python → built-in
- Extract: functions (name, signature, docstring, args, types, return type, calls), classes (name, bases, methods, docstring)
- Build call graph: who calls whom
- Detect tests:
test_*.py,*_test.py, files withassert/#[test] - Mark tested functions: search for function names in test content
- Return IngestResult: everything structured and queryable
The IngestResult
:
:
: # Every parsed function
: # Every parsed class
: # Test file paths
: # Directory tree
: # caller → [callees]
: # Summary statistics
FunctionInfo
: # "tdot"
: # "src.lib"
: # "src/lib.rs"
: # 42
: # 48
: # "def tdot(a: &[Trit], b: &[Trit]) -> Trit"
: # "Inner product of two ternary vectors mod 3"
: # Full function source
: # ["#[inline]"]
: # ["a", "b"]
: # {"a": "&[Trit]", "b": "&[Trit]"}
: # "Trit"
: # Functions this calls
: # Functions that call this (populated later)
: # Is this function tested?
The Tripartite Synchronizer — Deep Dive
Three Inputs
Hardware Profile (the body):
Auto-detected via probe_hardware():
=
Application Profile (the task):
User Profile (the human):
Decision Matrix
| Hardware | Application | User | Decision |
|---|---|---|---|
| GPU, fast | Safety-critical | Consistent | HARDCODE |
| Edge, low power | Any | Any | CACHED |
| Any | Novel, creative | Creative | MODEL |
| Any | Mostly stable | Manual control | HYBRID |
| Battery low | Flexible | Consistent | CACHED |
| Workstation | Untested | Explorer | MODEL |
Multi-Language Support
The induction engine parses code in multiple languages via tree-sitter:
| Language | Extensions | Parser |
|---|---|---|
| Python | .py |
Built-in ast (always works) |
| Rust | .rs |
tree-sitter-rust |
| C | .c, .h |
tree-sitter-c |
| C++ | .cpp, .hpp, .cc |
tree-sitter-cpp |
| JavaScript | .js |
tree-sitter-javascript |
| TypeScript | .ts |
tree-sitter-typescript |
Install tree-sitter support:
Without tree-sitter, only Python files are parsed. With it, the engine handles all six languages.
The Spreader — Continuous Iteration
The Spreader runs multiple passes over an ingested repo, refining the model each time:
=
=
Each pass:
- Re-evaluates tripartite decisions with updated call graphs
- Propagates confidence scores through the call chain
- Identifies new test coverage from changed files
- Updates vector embeddings with new context
Export Formats
lever-runner Skill Pack
Export HARDCODE functions as commands for the lever-runner system:
=
=
pincherOS .nail Files
Export CACHED functions as pre-computed results for pincherOS edge devices:
=
=
Hardware Probe
Auto-detect your system's capabilities:
=
Pre-Built Profiles
Common scenarios are pre-configured:
# Autonomous driving — safety first, low latency
=
# Creative writing — high creativity, flexible latency
=
# Edge device — low power, cached results
=
# Developer tool — balanced, hybrid defaults
=
Relation to the SuperInstance Ecosystem
open-mind is part of the SuperInstance ecosystem:
| Project | Role | Link |
|---|---|---|
| openmind | Standalone package (Python + CLI + Jupyter) | SuperInstance/openmind |
| open-mind | This repo — open-interpreter + induction engine | You are here |
| agent-knowledge | Agent-to-agent documentation | SuperInstance/agent-knowledge |
| openmind-esp32-bridge | Rust: motor neurons for ESP32 | SuperInstance/openmind-esp32-bridge |
| openmind-conductor | Rust: multi-agent orchestration | SuperInstance/openmind-conductor |
| openmind-mirror | Rust: self-reflection + coherence | SuperInstance/openmind-mirror |
| openmind-cellular | Resource-adaptive computation | SuperInstance/openmind-cellular |
| ai-writings | Creative writing + manifestos | SuperInstance/ai-writings |
The Standalone Package
If you don't need the open-interpreter chat interface and just want the induction engine + muscle memory + cellular computation, use the standalone package:
See SuperInstance/openmind for the standalone package with 95 tests, CLI, Jupyter magic, and resource-adaptive computation.
The Agent Knowledge Base
For AI agents discovering this ecosystem, read the a2a documentation at agent-knowledge:
- THE AHA MOMENT — All 303 ternary crates project one structure
- MUSCLE MEMORY — Proprioception for agents
- CELLULAR JUPYTER — Computation that breathes
- HOW TO FLEX — Quick start guide
Development
Running Tests
# All tests
# Just induction tests
# Just synchronizer tests
Project Structure
interpreter/
├── induction/ # ← Your playground
│ ├── ingester.py # Try: add a new language parser
│ ├── synchronizer.py # Try: add a new decision factor
│ ├── vector_builder.py # Try: add a real embedding model
│ └── profiles.py # Try: add a new scenario profile
├── core/ # Open Interpreter core
├── llm/ # LLM integrations
└── code_interpreters/ # Code execution environments
License
MIT — same as Open Interpreter.
Credits
Based on Open Interpreter by Killian Lucas.
Induction engine, tripartite synchronizer, and hardware probe by SuperInstance.