A conversation-first chatbot runtime built on pi-mono. Local sidecar providing HTTP RPC + WS event frames over a WAL.
Tachikoma has 17 tools with basic schemas and descriptions, but significant quality gaps prevent production readiness. All tools have descriptions (10-100 chars, mostly 50-80), and input schemas are present with type definitions. However, descriptions are often too terse (e.g., 'List all chat sessions' lacks context on when/why to call), parameter descriptions are minimal or absent, and output schemas are completely undocumented. No error handling guidance, no recovery paths, and no tool annotations. The tool set mixes concerns (session.send handles both text and images; session.respondToApproval conflates approval logic with scope selection). Naming is verb-first but sometimes ambiguous (session.compact, memory.forget). No pagination support despite list tools. Missing critical metadata like required permissions, idempotency guarantees, and side-effect clarity.
Server handshake: returns protocol version, engine version, capabilities, and session defaults
List available AI models
Gracefully shutdown the engine
Delete a memory record by ID
List all memory records
Search memory records by query
Abort the current turn in a session
Output schemas completely undocumented. No tool returns a documented schema, LLMs cannot predict response structure, forcing them to guess at field names and types for downstream tool calls.
Descriptions too terse and lack context. 'List all chat sessions' (23 chars) does not explain when to call it, what fields are returned, or how to use results. Baseline is 194 chars; these average ~60 chars.
Parameter descriptions missing or minimal. 'skills' param in session.create has no description of what skills are available or how they affect behavior. 'instructions' in session.compact is vague.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Compact a session's event log with optional instructions
Create a new chat session with optional model, thinking level, title, workspace, toolset, and skills
Delete a chat session and its event log
List all chat sessions
Open an existing chat session by ID
Rename a session
Respond to a tool approval request
Send a message to a session with optional images
Change the model for a session
Change the thinking level for a session
No error handling guidance. Tools like session.delete and memory.forget are destructive but provide no recovery hints, confirmation patterns, or error classification (retryable vs fatal).
No pagination support. session.list and memory.list lack limit, offset, or cursor parameters. Large result sets will blow context windows without pagination.