A self-hosted personal AI assistant that lives on your machine. Discord, terminal, and voice channels, bring-your-own model, durable memory, scheduled tasks, skills, and MCP tools.
Tars has 8 tools with mostly complete schemas and descriptions. Naming is action-oriented (manage_*, web_*, discover_*, invoke_*). Descriptions range 50 - 250 chars, meeting baseline. However, several tools lack parameter descriptions or have vague language. manage_facts and manage_notes omit descriptions for key parameters ('key', 'value', 'queryOrContent'). manage_tasks has a complex schema with 10 parameters but some lack clarity on mutual exclusivity. Error handling is minimal, no recovery guidance or actionable error messages visible. Output schemas are not documented. Tools are well-composed (single responsibility), but parameter validation rules are not explicit in descriptions.
Find optional MCP extension tools and their input schemas. Search before invoking a specialized integration.
Invoke an optional MCP extension tool after discovering its exact name and input schema with discover_extension_tools.
Manage core facts about the user. Facts are persistent key-value pairs representing preferences, rules, identity, and durable information.
Append timestamped notes to the daily journal or search across all facts, daily notes, and past sessions.
Manage scheduled tasks. Supports creating, listing, modifying, toggling, and deleting tasks.
Save, update, or remove durable memory entries. Memory says who the owner is and what the standing state of your operations is; reusable procedures belong in skills, and one-off task narratives belong nowhere. Keep entries short; the same lesson learned twice is ONE entry. Writes are saved to disk immediately and appear in your context at the next session boundary.
manage_facts and manage_notes lack parameter descriptions for 'key', 'value', 'queryOrContent'. LLMs cannot infer what these fields control without explicit text.
manage_tasks has 10 parameters with complex interdependencies (e.g., 'id' required for delete/toggle/modify, 'title'/'prompt'/'schedule' required for create). Mutual exclusivity and conditional requirements are not documented.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract fields without knowing what each tool returns.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Fetch the text/Markdown content of a specific web URL, stripped of header/footer boilerplate.
Search the web using DuckDuckGo (free, keyless) and return a list of matches.
Error handling is not visible in tool definitions. No recovery guidance, error classification, or actionable error messages documented.
invoke_extension_tool accepts a generic 'arguments' object without schema validation. LLMs cannot know what fields are valid without discovering the tool first.