OpenPlanter OpenPlanter, a recursive-language-model investigation agent with a desktop GUI and terminal interface, ingests heterogeneous datasets such as corporate registries, campaign finance records, lobbying disclosures, and government contracts to surface non-obvious connections through evidence-backed analysis. The tool, available as pre-built binaries for macOS, Windows, and Linux, features a Tauri 2 desktop app with a three-pane layout including a live knowledge graph, wiki source drawer, and session persistence, and supports multiple AI providers including OpenAI, Anthropic, OpenRouter, Cerebras, and Ollama. A recursive-language-model investigation agent with a desktop GUI and terminal interface. OpenPlanter ingests heterogeneous datasets — corporate registries, campaign finance records, lobbying disclosures, government contracts, and more — resolves entities across them, and surfaces non-obvious connections through evidence-backed analysis. It operates autonomously with file I/O, shell execution, web search, and recursive sub-agent delegation. Pre-built binaries are available on the Releases page https://github.com/ShinMegamiBoson/OpenPlanter/releases/latest : macOS — .dmg Windows — .msi Linux — .AppImage The desktop app openplanter-desktop/ is a Tauri 2 application with a three-pane layout: Sidebar — Session management, provider/model settings, and API credential status Chat pane — Conversational interface showing the agent's objectives, reasoning steps, tool calls, and findings with syntax-highlighted code blocks Knowledge graph — Interactive Cytoscape.js visualization of entities and relationships discovered during investigation. Nodes are color-coded by category corporate, campaign-finance, lobbying, contracts, sanctions, etc. . Click a source node to open a slide-out drawer with the full rendered wiki document. Live knowledge graph — Entities and connections render in real time as the agent works. Switch between force-directed, hierarchical, and circular layouts. Search and filter by category. Wiki source drawer — Click any source node to read the full markdown document in a slide-out panel. Internal wiki links navigate between documents and focus the corresponding graph node. Session persistence — Investigations are saved automatically. Resume previous sessions or start new ones from the sidebar. Background wiki curator — A lightweight agent runs in the background to keep wiki documents consistent and cross-linked. Multi-provider support — Switch between OpenAI, Anthropic, OpenRouter, Cerebras, and Ollama local from the sidebar. cd openplanter-desktop Install frontend dependencies cd frontend && npm install && cd .. Run in development mode cargo tauri dev Build distributable binary cargo tauri build Requires: Rust stable, Node.js 20+, and platform-specific Tauri dependencies see Tauri prerequisites https://v2.tauri.app/start/prerequisites/ . The Python CLI agent can be used independently of the desktop app. Install pip install -e . Configure API keys interactive prompt openplanter-agent --configure-keys Launch the TUI openplanter-agent --workspace /path/to/your/project Or run a single task headlessly: openplanter-agent --task "Cross-reference vendor payments against lobbying disclosures and flag overlaps" --workspace ./data Add your API keys to .env, then: docker compose up The container mounts ./workspace as the agent's working directory. | Provider | Default Model | Env Var | |---|---|---| | OpenAI | gpt-5.2 | OPENAI API KEY | | Anthropic | claude-opus-4-6 | ANTHROPIC API KEY | | OpenRouter | anthropic/claude-sonnet-4-5 | OPENROUTER API KEY | | Cerebras | qwen-3-235b-a22b-instruct-2507 | CEREBRAS API KEY | | Ollama | llama3.2 | none — local | Ollama https://ollama.com runs models locally with no API key. Install Ollama, pull a model ollama pull llama3.2 , then: openplanter-agent --provider ollama openplanter-agent --provider ollama --model mistral openplanter-agent --provider ollama --list-models The base URL defaults to http://localhost:11434/v1 and can be overridden with OPENPLANTER OLLAMA BASE URL or --base-url . The first request may be slow while Ollama loads the model into memory; a 120-second first-byte timeout is used automatically. Additional service keys: EXA API KEY web search , VOYAGE API KEY embeddings . All keys can also be set with an OPENPLANTER prefix e.g. OPENPLANTER OPENAI API KEY , via .env files in the workspace, or via CLI flags. The agent has access to 19 tools, organized around its investigation workflow: Dataset ingestion & workspace — list files , search files , repo map , read file , write file , edit file , hashline edit , apply patch — load, inspect, and transform source datasets; write structured findings. Shell execution — run shell , run shell bg , check shell bg , kill shell bg — run analysis scripts, data pipelines, and validation checks. Web — web search Exa , fetch url — pull public records, verify entities, and retrieve supplementary data. Planning & delegation — think , subtask , execute , list artifacts , read artifact — decompose investigations into focused sub-tasks, each with acceptance criteria and independent verification. In recursive mode the default , the agent spawns sub-agents via subtask and execute to parallelize entity resolution, cross-dataset linking, and evidence-chain construction across large investigations. openplanter-agent options | Flag | Description | |---|---| --workspace DIR | Workspace root default: . | --session-id ID | Use a specific session ID | --resume | Resume the latest or specified session | --list-sessions | List saved sessions and exit | | Flag | Description | |---|---| --provider NAME | auto , openai , anthropic , openrouter , cerebras , ollama | --model NAME | Model name or newest to auto-select | --reasoning-effort LEVEL | low , medium , high , or none | --list-models | Fetch available models from the provider API | | Flag | Description | |---|---| --task OBJECTIVE | Run a single task and exit headless | --recursive | Enable recursive sub-agent delegation | --acceptance-criteria | Judge subtask results with a lightweight model | --max-depth N | Maximum recursion depth default: 4 | --max-steps N | Maximum steps per call default: 100 | --timeout N | Shell command timeout in seconds default: 45 | | Flag | Description | |---|---| --no-tui | Plain REPL no colors or spinner | --headless | Non-interactive mode for CI | --demo | Censor entity names and workspace paths in output | Use --default-model , --default-reasoning-effort , or per-provider variants like --default-model-openai to save workspace defaults to .openplanter/settings.json . View them with --show-settings . Keys are resolved in this priority order highest wins : - CLI flags --openai-api-key , etc. - Environment variables OPENAI API KEY or OPENPLANTER OPENAI API KEY .env file in the workspace- Workspace credential store .openplanter/credentials.json - User credential store ~/.openplanter/credentials.json All runtime settings can also be set via OPENPLANTER environment variables e.g. OPENPLANTER MAX DEPTH=8 . openplanter-desktop/ Tauri 2 desktop application crates/ op-tauri/ Tauri backend Rust src/commands/ IPC command handlers agent, wiki, config op-core/ Shared core library frontend/ TypeScript/Vite frontend src/components/ UI components ChatPane, GraphPane, InputBar, Sidebar src/graph/ Cytoscape.js graph rendering src/api/ Tauri IPC wrappers e2e/ Playwright E2E tests agent/ Python CLI agent main .py CLI entry point and REPL engine.py Recursive language model engine runtime.py Session persistence and lifecycle model.py Provider-agnostic LLM abstraction builder.py Engine/model factory tools.py Workspace tool implementations tool defs.py Tool JSON schemas prompts.py System prompt construction config.py Configuration dataclass credentials.py Credential management tui.py Rich terminal UI demo.py Demo mode output censoring patching.py File patching utilities settings.py Persistent settings tests/ Unit and integration tests cd openplanter-desktop Development mode hot-reload cargo tauri dev Frontend tests cd frontend && npm test E2E tests Playwright cd frontend && npm run test:e2e Backend tests cargo test Install in editable mode pip install -e . Run tests python -m pytest tests/ Skip live API tests python -m pytest tests/ --ignore=tests/test live models.py --ignore=tests/test integration live.py Requires Python 3.10+. Dependencies: rich , prompt toolkit , pyfiglet . MIT — see LICENSE /ShinMegamiBoson/OpenPlanter/blob/main/LICENSE for details.