[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74223":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":14,"forks30d":14,"starsTrendScore":16,"compositeScore":18,"rankGlobal":8,"rankLanguage":8,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":8,"pushedAt":8,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":14,"starSnapshotCount":14,"syncStatus":15,"lastSyncTime":27,"discoverSource":28},74223,"OpenPlanter","ShinMegamiBoson\u002FOpenPlanter","ShinMegamiBoson",null,"Python",1633,248,26,5,0,2,6,29,20.19,"MIT License",false,"main",true,[],"2026-06-12 02:03:24","# OpenPlanter\n\nA 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\u002FO, shell execution, web search, and recursive sub-agent delegation.\n\n![OpenPlanter Desktop](screenshot.png)\n\n## Download\n\nPre-built binaries are available on the [Releases page](https:\u002F\u002Fgithub.com\u002FShinMegamiBoson\u002FOpenPlanter\u002Freleases\u002Flatest):\n\n- **macOS** — `.dmg`\n- **Windows** — `.msi`\n- **Linux** — `.AppImage`\n\n## Desktop App\n\nThe desktop app (`openplanter-desktop\u002F`) is a Tauri 2 application with a three-pane layout:\n\n- **Sidebar** — Session management, provider\u002Fmodel settings, and API credential status\n- **Chat pane** — Conversational interface showing the agent's objectives, reasoning steps, tool calls, and findings with syntax-highlighted code blocks\n- **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### Features\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.\n- **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.\n- **Session persistence** — Investigations are saved automatically. Resume previous sessions or start new ones from the sidebar.\n- **Background wiki curator** — A lightweight agent runs in the background to keep wiki documents consistent and cross-linked.\n- **Multi-provider support** — Switch between OpenAI, Anthropic, OpenRouter, Cerebras, and Ollama (local) from the sidebar.\n\n### Building from Source\n\n```bash\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:\u002F\u002Fv2.tauri.app\u002Fstart\u002Fprerequisites\u002F)).\n\n## CLI Agent\n\nThe Python CLI agent can be used independently of the desktop app.\n\n### Quickstart\n\n```bash\n# Install\npip install -e .\n\n# Configure API keys (interactive prompt)\nopenplanter-agent --configure-keys\n\n# Launch the TUI\nopenplanter-agent --workspace \u002Fpath\u002Fto\u002Fyour\u002Fproject\n```\n\nOr run a single task headlessly:\n\n```bash\nopenplanter-agent --task \"Cross-reference vendor payments against lobbying disclosures and flag overlaps\" --workspace .\u002Fdata\n```\n\n### Docker\n\n```bash\n# Add your API keys to .env, then:\ndocker compose up\n```\n\nThe container mounts `.\u002Fworkspace` as the agent's working directory.\n\n## Supported Providers\n\n| Provider | Default Model | Env Var |\n|----------|---------------|---------|\n| OpenAI | `gpt-5.2` | `OPENAI_API_KEY` |\n| Anthropic | `claude-opus-4-6` | `ANTHROPIC_API_KEY` |\n| OpenRouter | `anthropic\u002Fclaude-sonnet-4-5` | `OPENROUTER_API_KEY` |\n| Cerebras | `qwen-3-235b-a22b-instruct-2507` | `CEREBRAS_API_KEY` |\n| Ollama | `llama3.2` | (none — local) |\n\n### Local Models (Ollama)\n\n[Ollama](https:\u002F\u002Follama.com) runs models locally with no API key. Install Ollama, pull a model (`ollama pull llama3.2`), then:\n\n```bash\nopenplanter-agent --provider ollama\nopenplanter-agent --provider ollama --model mistral\nopenplanter-agent --provider ollama --list-models\n```\n\nThe base URL defaults to `http:\u002F\u002Flocalhost:11434\u002Fv1` 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.\n\nAdditional service keys: `EXA_API_KEY` (web search), `VOYAGE_API_KEY` (embeddings).\n\nAll 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.\n\n## Agent Tools\n\nThe agent has access to 19 tools, organized around its investigation workflow:\n\n**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.\n\n**Shell execution** — `run_shell`, `run_shell_bg`, `check_shell_bg`, `kill_shell_bg` — run analysis scripts, data pipelines, and validation checks.\n\n**Web** — `web_search` (Exa), `fetch_url` — pull public records, verify entities, and retrieve supplementary data.\n\n**Planning & delegation** — `think`, `subtask`, `execute`, `list_artifacts`, `read_artifact` — 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` and `execute` to parallelize entity resolution, cross-dataset linking, and evidence-chain construction across large investigations.\n\n## CLI Reference\n\n```\nopenplanter-agent [options]\n```\n\n### Workspace & Session\n\n| Flag | Description |\n|------|-------------|\n| `--workspace DIR` | Workspace root (default: `.`) |\n| `--session-id ID` | Use a specific session ID |\n| `--resume` | Resume the latest (or specified) session |\n| `--list-sessions` | List saved sessions and exit |\n\n### Model Selection\n\n| Flag | Description |\n|------|-------------|\n| `--provider NAME` | `auto`, `openai`, `anthropic`, `openrouter`, `cerebras`, `ollama` |\n| `--model NAME` | Model name or `newest` to auto-select |\n| `--reasoning-effort LEVEL` | `low`, `medium`, `high`, or `none` |\n| `--list-models` | Fetch available models from the provider API |\n\n### Execution\n\n| Flag | Description |\n|------|-------------|\n| `--task OBJECTIVE` | Run a single task and exit (headless) |\n| `--recursive` | Enable recursive sub-agent delegation |\n| `--acceptance-criteria` | Judge subtask results with a lightweight model |\n| `--max-depth N` | Maximum recursion depth (default: 4) |\n| `--max-steps N` | Maximum steps per call (default: 100) |\n| `--timeout N` | Shell command timeout in seconds (default: 45) |\n\n### UI\n\n| Flag | Description |\n|------|-------------|\n| `--no-tui` | Plain REPL (no colors or spinner) |\n| `--headless` | Non-interactive mode (for CI) |\n| `--demo` | Censor entity names and workspace paths in output |\n\n### Persistent Defaults\n\nUse `--default-model`, `--default-reasoning-effort`, or per-provider variants like `--default-model-openai` to save workspace defaults to `.openplanter\u002Fsettings.json`. View them with `--show-settings`.\n\n## Configuration\n\nKeys are resolved in this priority order (highest wins):\n\n1. CLI flags (`--openai-api-key`, etc.)\n2. Environment variables (`OPENAI_API_KEY` or `OPENPLANTER_OPENAI_API_KEY`)\n3. `.env` file in the workspace\n4. Workspace credential store (`.openplanter\u002Fcredentials.json`)\n5. User credential store (`~\u002F.openplanter\u002Fcredentials.json`)\n\nAll runtime settings can also be set via `OPENPLANTER_*` environment variables (e.g. `OPENPLANTER_MAX_DEPTH=8`).\n\n## Project Structure\n\n```\nopenplanter-desktop\u002F         Tauri 2 desktop application\n  crates\u002F\n    op-tauri\u002F                 Tauri backend (Rust)\n      src\u002Fcommands\u002F           IPC command handlers (agent, wiki, config)\n    op-core\u002F                  Shared core library\n  frontend\u002F                   TypeScript\u002FVite frontend\n    src\u002Fcomponents\u002F           UI components (ChatPane, GraphPane, InputBar, Sidebar)\n    src\u002Fgraph\u002F                Cytoscape.js graph rendering\n    src\u002Fapi\u002F                  Tauri IPC wrappers\n    e2e\u002F                      Playwright E2E tests\n\nagent\u002F                        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\u002Fmodel 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\u002F                        Unit and integration tests\n```\n\n## Development\n\n### Desktop App\n\n```bash\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```\n\n### CLI Agent\n\n```bash\n# Install in editable mode\npip install -e .\n\n# Run tests\npython -m pytest tests\u002F\n\n# Skip live API tests\npython -m pytest tests\u002F --ignore=tests\u002Ftest_live_models.py --ignore=tests\u002Ftest_integration_live.py\n```\n\nRequires Python 3.10+. Dependencies: `rich`, `prompt_toolkit`, `pyfiglet`.\n\n## License\n\nMIT — see [LICENSE](LICENSE) for details.\n","OpenPlanter 是一个具有桌面GUI和终端界面的递归语言模型调查代理。它能够处理公司注册、竞选财务记录、游说披露、政府合同等多种异构数据集，解析这些数据中的实体，并通过基于证据的分析揭示非显而易见的联系。其核心功能包括实时知识图谱展示、交互式文档浏览、会话持久化及多提供商支持等，采用Python开发并利用Tauri框架构建跨平台桌面应用。适用于需要深度数据分析与关联发现的研究场景，如企业合规审查、政治献金追踪等领域。","2026-06-11 03:49:34","high_star"]