Local-first AI Agent desktop workbench with deterministic, event-sourced coding agent SDK, CLI, and TUI
Spark Agent exposes 30 tools via STDIO IPC, but definition quality is severely compromised. Tool names use inconsistent patterns (browser-panel:devtools-open vs custom-tools:list); many lack verb-first clarity. Descriptions are present but generic (e.g., 'List custom tools with optional filtering', 10 words, no context on when to use). Input schemas visible but sparse: most parameters lack type constraints, enums, or validation guidance. No output schemas documented. Error handling absent, no recovery guidance, no categorization. Security concerns: custom-tools:write-secret exposes secret management as a tool parameter, violating secret-injection pattern. No tool annotations (readOnlyHint, destructiveHint). Composition issues: custom-tools:test-run conflates draft and published specs; custom-tools:publish requires optimistic locking (expectedDraftVersion) but no guidance on obtaining it. Overall, definitions read as thin IPC wrappers rather than LLM-optimized tool interfaces.
Close the embedded DevTools view within a browser panel
Open embedded DevTools for a webview target within a browser panel
Update the bounds of an open DevTools view within a browser panel
Create a new custom tool
Delete a custom tool
Create a draft for a custom tool
Save a draft for a custom tool
STDIO transport only, not remotely accessible. Cannot be used by hosted MCP clients or cloud-based agents. Blocks production deployment.
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, forcing them to guess at downstream tool chaining and data extraction.
custom-tools:write-secret exposes secret management as a tool parameter, violating secret-injection pattern. Secrets in tool params are logged and leak into traces.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes (e.g., custom-tools:delete vs custom-tools:get).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
Export custom tools to a payload
Get a specific custom tool by ID
Check which secrets are configured for a custom tool
Check vision routing for custom tool host with image attachments
Import custom tools from a payload
Clear invocations for a custom tool
List invocations of custom tools
Set the retention period for custom tool invocations
List custom tools with optional filtering
Publish a custom tool from draft
Rollback a custom tool to a previous version
Enable or disable a custom tool
Get the workspace for a custom tool in the studio
Test run a custom tool with provided input
Update an existing custom tool
Write a secret value for a custom tool
Get details of a specific tool package
Install a tool package from an archive file
Install a tool package from a local directory
Install a tool package from a Git repository
Install a tool package by importing from an MCP server
List all installed tool packages
Run a project step in a tool package
Descriptions are generic and lack LLM-optimization. Most are 10 - 40 chars, missing context on WHEN to use the tool, prerequisites, or recovery guidance. Baseline is 50 - 200 chars.