An interactive terminal AI agent you can fully undo — any model, acts on your real files, every action reversible.
opendot provides 13 tools with basic schemas and descriptions, but falls short of production quality. Tool names follow verb_noun convention (list_files, read_file, grep, glob, edit, write_file, move, run_shell, spawn_explorers, web_fetch). Descriptions exist but are terse (10-80 chars, well below the 194-char baseline). Input schemas are present with type declarations, but parameter descriptions are minimal or missing context. Output schemas are not documented. Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. The spawn_explorers tool is well-designed for parallel investigation but lacks output schema documentation. Composio integration tools (composio__COMPOSIO_*) expose raw API patterns without abstraction. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY, REVERSIBLE, WRITE). Security: run_shell accepts arbitrary commands with no validation or sandboxing, critical injection risk.
Get schema for a Composio tool by slug
Execute a Composio tool action
Search Composio tools by query (e.g. 'linear create issue')
Make a targeted find-and-replace in a file
Find files by pattern (e.g. **/*.py)
Search file contents by regex
Inspect the project — list files in a directory
Move or rename a file or directory (surgical, undoable)
run_shell accepts arbitrary shell commands with no input validation, sanitization, or sandboxing. Critical command injection risk if agent is compromised or prompt-injected.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels declared (READ_ONLY, REVERSIBLE, WRITE). LLM cannot infer safety properties from tool names alone.
Output schemas not documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., what does spawn_explorers return? What fields does grep output?). Baseline: 100% of A+ tools document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Inspect the project — read file contents
Run shell commands (npm, git, build, cp, tests, etc.)
Investigate several INDEPENDENT questions about the project in parallel. Each task runs as a read-only subagent (grep/glob/read only — it cannot change anything) and returns findings. Use this to understand a codebase fast by splitting distinct questions across lanes. For anything that changes files, do it yourself.
Fetch a URL as LLM-ready markdown
Create a new file or fully rewrite one
Descriptions are terse (10 - 80 chars, well below 194-char baseline). Missing context on WHEN to use each tool, prerequisites, and what it returns. E.g., 'Inspect the project, list files in a directory' does not explain when to call list_files vs glob.
No error handling or recovery guidance. Tools do not categorize errors as retryable, user-fixable, or fatal. No actionable error messages (e.g., 'File not found. Check path with list_files()' vs bare 404).