NERUDO
Sign in
kcirtapfromspace/OpenPlanterPublicForked from ShinMegamiBoson/OpenPlanterReplayed from github.com/kcirtapfromspace/OpenPlanter
Loading community…

Files

main
Browse repository

14 entries

README.md

1511d20

OpenPlanter

A recursive-language-model investigation agent with a terminal UI. 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.

Quickstart

bash
# Installpip install -e .​# Configure API keys (interactive prompt)openplanter-agent --configure-keys​# Launch the TUIopenplanter-agent --workspace /path/to/your/project

Or run a single task headlessly:

bash
openplanter-agent --task "Cross-reference vendor payments against lobbying disclosures and flag overlaps" --workspace ./data

Docker

bash
# Add your API keys to .env, then:docker compose up

The container mounts ./workspace as the agent's working directory.

Supported Providers

ProviderDefault ModelEnv Var
OpenAIgpt-5.2OPENAI_API_KEY
Anthropicclaude-opus-4-6ANTHROPIC_API_KEY
OpenRouteranthropic/claude-sonnet-4-5OPENROUTER_API_KEY
Cerebrasqwen-3-235b-a22b-instruct-2507CEREBRAS_API_KEY

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.

Agent Tools

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.

CLI Reference

Plain text
openplanter-agent [options]

Workspace & Session

FlagDescription
--workspace DIRWorkspace root (default: .)
--session-id IDUse a specific session ID
--resumeResume the latest (or specified) session
--list-sessionsList saved sessions and exit

Model Selection

FlagDescription
--provider NAMEauto, openai, anthropic, openrouter, cerebras
--model NAMEModel name or newest to auto-select
--reasoning-effort LEVELlow, medium, high, or none
--list-modelsFetch available models from the provider API

Execution

FlagDescription
--task OBJECTIVERun a single task and exit (headless)
--recursiveEnable recursive sub-agent delegation
--acceptance-criteriaJudge subtask results with a lightweight model
--max-depth NMaximum recursion depth (default: 4)
--max-steps NMaximum steps per call (default: 100)
--timeout NShell command timeout in seconds (default: 45)

UI

FlagDescription
--no-tuiPlain REPL (no colors or spinner)
--headlessNon-interactive mode (for CI)
--demoCensor entity names and workspace paths in output

Persistent Defaults

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.

TUI Commands

Inside the interactive REPL:

CommandAction
/modelShow current model and provider
/model NAMESwitch model (aliases: opus, sonnet, gpt5, etc.)
/model NAME --saveSwitch and persist as default
/model list [all]List available models
/reasoning LEVELChange reasoning effort
/statusShow session status and token usage
/clearClear the screen
/quitExit

Configuration

Keys are resolved in this priority order (highest wins):

  1. CLI flags (--openai-api-key, etc.)
  2. Environment variables (OPENAI_API_KEY or OPENPLANTER_OPENAI_API_KEY)
  3. .env file in the workspace
  4. Workspace credential store (.openplanter/credentials.json)
  5. User credential store (~/.openplanter/credentials.json)

All runtime settings can also be set via OPENPLANTER_* environment variables (e.g. OPENPLANTER_MAX_DEPTH=8).

Project Structure

Plain text
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 settingstests/           Unit and integration tests

Development

bash
# Install in editable modepip install -e .​# Run testspython -m pytest tests/​# Skip live API testspython -m pytest tests/ --ignore=tests/test_live_models.py --ignore=tests/test_integration_live.py

Requires Python 3.10+. Dependencies: rich, prompt_toolkit, pyfiglet.

License

See VISION.md for the project's design philosophy and roadmap.

Work history & code evidence

Code ecosystem

Explore repos →
Observed in repos on this profile

File and dependency evidence from up to six visible repos. Repository associations do not establish personal expertise or preference. Security tags describe tools and policies, without rating security.

Reading repo evidence…

Contribution activity

Filters

Commits, completed tasks and releases, grouped by recorded task or batch. Dates use UTC.

Loading recorded history…