A code search and execution engine with daemon-based indexing, symbol extraction, and command execution for developers
Needle has 20 tools with explicit schemas and descriptions visible in source. However, descriptions are terse (10-50 chars, well below the 194-char baseline), parameter descriptions are minimal or absent, and output schemas are not documented. Tool naming is verb-first and clear (status, workspace_add, search, read, exec), but parameter documentation is sparse. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Error handling guidance is absent, tools return errors but do not guide recovery. Schemas show types (PathBuf, String, SearchOptions) but lack constraints (enums, ranges, patterns). The exec tool accepts arbitrary shell commands with optional timeout but no validation guidance in the description.
Get context around a symbol definition
Execute a shell command with optional output adapter and timeout
Search for files by name pattern
Execute a git command with native git adapter
Inspect stored command execution output with optional failure details
Ping the daemon to verify it is running
Get raw output from a stored command execution
Read file contents with optional symbol, line range, or outline extraction
Descriptions are uniformly terse (10-50 chars vs. 194-char baseline). Examples: 'Get daemon status...' (30 chars), 'Add a path to workspace...' (26 chars). LLMs cannot distinguish when to call similar tools (search vs. text vs. files) without richer context.
Parameter descriptions are missing or minimal. 'SearchOptions' type is opaque, no description of what fields it contains, what limits apply, or how filtering works. 'WireBudget' is similarly undocumented. LLMs cannot reason about these parameters.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Find all references to a symbol
Rebuild the file metadata index from registered roots
Get repository information with language histograms
List recent command executions
Smart search combining file names and text content
Shutdown the daemon
Get daemon status including version, PID, and build information
Find symbols by name using tree-sitter extraction
Search for text patterns in files
Add a path to the workspace registry and reindex
List all registered workspace roots
Remove a path from the workspace registry
No output schemas documented. Tools return results but LLMs do not know what fields to expect. Example: 'repos' returns 'language histograms' but structure is not specified. 'read' returns file contents in multiple modes but output format is not documented.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. 'exec' and 'shutdown' are IRREVERSIBLE; 'workspace_add' and 'reindex' are WRITE operations. Annotations would help agents reason about safety and retry logic.
Error handling provides no recovery guidance. 'exec' tool accepts arbitrary commands and timeout but description does not explain what happens on timeout, command failure, or invalid adapter. No guidance for LLM to retry, ask user, or escalate.