{"slug": "openplanter", "title": "OpenPlanter", "summary": "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.", "body_md": "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.\n\nPre-built binaries are available on the [Releases page](https://github.com/ShinMegamiBoson/OpenPlanter/releases/latest):\n\n**macOS**—`.dmg`\n\n**Windows**—`.msi`\n\n**Linux**—`.AppImage`\n\nThe desktop app (`openplanter-desktop/`\n\n) is a Tauri 2 application with a three-pane layout:\n\n**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.\n\n**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.\n\n```\ncd openplanter-desktop\n\n# Install frontend dependencies\ncd frontend && npm install && cd ..\n\n# Run in development mode\ncargo tauri dev\n\n# Build distributable binary\ncargo tauri build\n```\n\nRequires: Rust stable, Node.js 20+, and platform-specific Tauri dependencies ([see Tauri prerequisites](https://v2.tauri.app/start/prerequisites/)).\n\nThe Python CLI agent can be used independently of the desktop app.\n\n```\n# Install\npip install -e .\n\n# Configure API keys (interactive prompt)\nopenplanter-agent --configure-keys\n\n# Launch the TUI\nopenplanter-agent --workspace /path/to/your/project\n```\n\nOr run a single task headlessly:\n\n```\nopenplanter-agent --task \"Cross-reference vendor payments against lobbying disclosures and flag overlaps\" --workspace ./data\n# Add your API keys to .env, then:\ndocker compose up\n```\n\nThe container mounts `./workspace`\n\nas the agent's working directory.\n\n| Provider | Default Model | Env Var |\n|---|---|---|\n| OpenAI | `gpt-5.2` |\n`OPENAI_API_KEY` |\n| Anthropic | `claude-opus-4-6` |\n`ANTHROPIC_API_KEY` |\n| OpenRouter | `anthropic/claude-sonnet-4-5` |\n`OPENROUTER_API_KEY` |\n| Cerebras | `qwen-3-235b-a22b-instruct-2507` |\n`CEREBRAS_API_KEY` |\n| Ollama | `llama3.2` |\n(none — local) |\n\n[Ollama](https://ollama.com) runs models locally with no API key. Install Ollama, pull a model (`ollama pull llama3.2`\n\n), then:\n\n```\nopenplanter-agent --provider ollama\nopenplanter-agent --provider ollama --model mistral\nopenplanter-agent --provider ollama --list-models\n```\n\nThe base URL defaults to `http://localhost:11434/v1`\n\nand can be overridden with `OPENPLANTER_OLLAMA_BASE_URL`\n\nor `--base-url`\n\n. The first request may be slow while Ollama loads the model into memory; a 120-second first-byte timeout is used automatically.\n\nAdditional service keys: `EXA_API_KEY`\n\n(web search), `VOYAGE_API_KEY`\n\n(embeddings).\n\nAll keys can also be set with an `OPENPLANTER_`\n\nprefix (e.g. `OPENPLANTER_OPENAI_API_KEY`\n\n), via `.env`\n\nfiles in the workspace, or via CLI flags.\n\nThe agent has access to 19 tools, organized around its investigation workflow:\n\n**Dataset ingestion & workspace** — `list_files`\n\n, `search_files`\n\n, `repo_map`\n\n, `read_file`\n\n, `write_file`\n\n, `edit_file`\n\n, `hashline_edit`\n\n, `apply_patch`\n\n— load, inspect, and transform source datasets; write structured findings.\n\n**Shell execution** — `run_shell`\n\n, `run_shell_bg`\n\n, `check_shell_bg`\n\n, `kill_shell_bg`\n\n— run analysis scripts, data pipelines, and validation checks.\n\n**Web** — `web_search`\n\n(Exa), `fetch_url`\n\n— pull public records, verify entities, and retrieve supplementary data.\n\n**Planning & delegation** — `think`\n\n, `subtask`\n\n, `execute`\n\n, `list_artifacts`\n\n, `read_artifact`\n\n— decompose investigations into focused sub-tasks, each with acceptance criteria and independent verification.\n\nIn **recursive mode** (the default), the agent spawns sub-agents via `subtask`\n\nand `execute`\n\nto parallelize entity resolution, cross-dataset linking, and evidence-chain construction across large investigations.\n\n```\nopenplanter-agent [options]\n```\n\n| Flag | Description |\n|---|---|\n`--workspace DIR` |\nWorkspace root (default: `.` ) |\n`--session-id ID` |\nUse a specific session ID |\n`--resume` |\nResume the latest (or specified) session |\n`--list-sessions` |\nList saved sessions and exit |\n\n| Flag | Description |\n|---|---|\n`--provider NAME` |\n`auto` , `openai` , `anthropic` , `openrouter` , `cerebras` , `ollama` |\n`--model NAME` |\nModel name or `newest` to auto-select |\n`--reasoning-effort LEVEL` |\n`low` , `medium` , `high` , or `none` |\n`--list-models` |\nFetch available models from the provider API |\n\n| Flag | Description |\n|---|---|\n`--task OBJECTIVE` |\nRun a single task and exit (headless) |\n`--recursive` |\nEnable recursive sub-agent delegation |\n`--acceptance-criteria` |\nJudge subtask results with a lightweight model |\n`--max-depth N` |\nMaximum recursion depth (default: 4) |\n`--max-steps N` |\nMaximum steps per call (default: 100) |\n`--timeout N` |\nShell command timeout in seconds (default: 45) |\n\n| Flag | Description |\n|---|---|\n`--no-tui` |\nPlain REPL (no colors or spinner) |\n`--headless` |\nNon-interactive mode (for CI) |\n`--demo` |\nCensor entity names and workspace paths in output |\n\nUse `--default-model`\n\n, `--default-reasoning-effort`\n\n, or per-provider variants like `--default-model-openai`\n\nto save workspace defaults to `.openplanter/settings.json`\n\n. View them with `--show-settings`\n\n.\n\nKeys are resolved in this priority order (highest wins):\n\n- CLI flags (\n`--openai-api-key`\n\n, etc.) - Environment variables (\n`OPENAI_API_KEY`\n\nor`OPENPLANTER_OPENAI_API_KEY`\n\n) `.env`\n\nfile in the workspace- Workspace credential store (\n`.openplanter/credentials.json`\n\n) - User credential store (\n`~/.openplanter/credentials.json`\n\n)\n\nAll runtime settings can also be set via `OPENPLANTER_*`\n\nenvironment variables (e.g. `OPENPLANTER_MAX_DEPTH=8`\n\n).\n\n```\nopenplanter-desktop/         Tauri 2 desktop application\n  crates/\n    op-tauri/                 Tauri backend (Rust)\n      src/commands/           IPC command handlers (agent, wiki, config)\n    op-core/                  Shared core library\n  frontend/                   TypeScript/Vite frontend\n    src/components/           UI components (ChatPane, GraphPane, InputBar, Sidebar)\n    src/graph/                Cytoscape.js graph rendering\n    src/api/                  Tauri IPC wrappers\n    e2e/                      Playwright E2E tests\n\nagent/                        Python CLI agent\n  __main__.py                 CLI entry point and REPL\n  engine.py                   Recursive language model engine\n  runtime.py                  Session persistence and lifecycle\n  model.py                    Provider-agnostic LLM abstraction\n  builder.py                  Engine/model factory\n  tools.py                    Workspace tool implementations\n  tool_defs.py                Tool JSON schemas\n  prompts.py                  System prompt construction\n  config.py                   Configuration dataclass\n  credentials.py              Credential management\n  tui.py                      Rich terminal UI\n  demo.py                     Demo mode (output censoring)\n  patching.py                 File patching utilities\n  settings.py                 Persistent settings\n\ntests/                        Unit and integration tests\ncd openplanter-desktop\n\n# Development mode (hot-reload)\ncargo tauri dev\n\n# Frontend tests\ncd frontend && npm test\n\n# E2E tests (Playwright)\ncd frontend && npm run test:e2e\n\n# Backend tests\ncargo test\n# Install in editable mode\npip install -e .\n\n# Run tests\npython -m pytest tests/\n\n# Skip live API tests\npython -m pytest tests/ --ignore=tests/test_live_models.py --ignore=tests/test_integration_live.py\n```\n\nRequires Python 3.10+. Dependencies: `rich`\n\n, `prompt_toolkit`\n\n, `pyfiglet`\n\n.\n\nMIT — see [LICENSE](/ShinMegamiBoson/OpenPlanter/blob/main/LICENSE) for details.", "url": "https://wpnews.pro/news/openplanter", "canonical_source": "https://github.com/ShinMegamiBoson/OpenPlanter", "published_at": "2026-07-21 08:34:10+00:00", "updated_at": "2026-07-21 08:53:24.057296+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-agents", "ai-tools", "ai-products", "large-language-models"], "entities": ["OpenPlanter", "Tauri 2", "OpenAI", "Anthropic", "OpenRouter", "Cerebras", "Ollama", "Cytoscape.js"], "alternates": {"html": "https://wpnews.pro/news/openplanter", "markdown": "https://wpnews.pro/news/openplanter.md", "text": "https://wpnews.pro/news/openplanter.txt", "jsonld": "https://wpnews.pro/news/openplanter.jsonld"}}