Claude Code always-on infrastructure — a phone number, a memory, and an alarm clock
24 tools with explicit schemas and descriptions. Naming is consistent (beecork_* prefix) and action-oriented. Descriptions are present but often generic (avg ~100 chars, below 194-char baseline). Parameter descriptions are sparse, many lack detail on format, constraints, or valid ranges. Schemas are well-formed JSON Schema with types and enums where appropriate, but output schemas are undocumented. Error handling guidance is absent. Three deprecated tools (beecork_cron_*) signal API churn. Composition is reasonable, tools are single-purpose, but some lack natural-language identifiers (e.g., beecork_task_delete requires ID, not name).
Get activity summary for the last N hours.
List configured channels and their capabilities.
Get cost summary (today, 7-day, 30-day, per-tab).
[DEPRECATED — use beecork_task_create] Schedule a task that will run automatically.
[DEPRECATED — use beecork_task_delete] Delete a scheduled task by ID.
[DEPRECATED — use beecork_task_list] List all scheduled tasks.
Delegate a sub-task to another tab. The result will be sent back when complete.
Output schemas undocumented. No tool returns a documented response structure. LLMs cannot plan downstream calls or extract required fields (e.g., task IDs, watcher IDs). Violates pattern:tool and pattern:response-shaper.
Parameter descriptions are sparse or generic. Many lack format constraints, valid ranges, or examples. E.g., 'schedule' in beecork_task_create says 'ISO datetime, interval, or cron' but does not specify format or examples. 'condition' in beecork_watch_create lists options but does not explain what 'contains X' or '> N' syntax means.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Export historical data as JSON for analysis.
List recent messages that failed to deliver via channels.
Get info to resume a tab's session in your terminal.
Send a notification to the user via their configured channels (Telegram, Discord, etc.).
Search Beecork's memory and knowledge files for facts matching a query.
Store a fact in Beecork's long-term memory. Use this for preferences, decisions, server addresses, outcomes, or anything the user might want recalled in future sessions.
Send a generated or local media file (image/video/audio) through the user's channels.
Send a message to another Beecork tab. The message will be processed asynchronously by that tab's Claude subprocess.
Get a summary of Beecork state: tab/task/watcher/memory counts.
Create a new Beecork tab (an isolated Claude session with its own working directory and history).
List all Beecork tabs and their status.
Schedule a task that will run automatically. The task sends a message to a Beecork tab at the scheduled time.
Delete a scheduled task by ID.
List all scheduled tasks.
Create a watcher that periodically runs a check command and triggers an action when a condition is met.
Delete a watcher by ID.
List all watchers.
Deprecated tools (beecork_cron_*) remain in the API. Three tools marked [DEPRECATED] signal API instability and force LLMs to choose between old and new variants. Migrate clients and remove deprecated tools.
No error handling guidance. Tools lack descriptions of failure modes, recovery steps, or actionable error messages. E.g., beecork_task_delete says 'Delete a scheduled task by ID' but does not explain what happens if the ID is invalid or the task is already running.
Natural-language identifiers missing. Tools like beecork_task_delete, beecork_watch_delete require opaque IDs. Users say 'delete the morning reminder' but must first call beecork_task_list to find the ID. Wrap ID lookup into the tool or accept task names.