todoziTodozi Eisenhower matrix API client + LangChain tools. Create matrices, tasks, goals, notes; list/search/update; bulk operations; webhooks. Categories: do, done, dream, delegate, defer, dont.
Install via ClawdBot CLI:
clawdbot install bgengs/todoziAs SDK:
from skills.todozi.scripts.todozi import TodoziClient
client = TodoziClient(api_key="your_key")
matrices = await client.list_matrices()
task = await client.create_task("Build feature", priority="high")
await client.complete_item(task.id)
As LangChain Tools:
from skills.todozi.scripts.todozi import TODOZI_TOOLS
# Add to agent tools list
| Class | Purpose |
|-------|---------|
| TodoziClient | Async API client |
| TodoziTask | Task dataclass |
| TodoziMatrix | Matrix dataclass |
| TodoziStats | Stats dataclass |
export TODOZI_API_KEY=your_key
export TODOZI_BASE=https://todozi.com/api # optional, default provided
# List all matrices
matrices = await client.list_matrices()
# Create matrix
matrix = await client.create_matrix("Work", category="do")
# Get matrix
matrix = await client.get_matrix("matrix_id")
# Delete matrix
await client.delete_matrix("matrix_id")
# Create task
task = await client.create_task(
title="Review PR",
priority="high",
due_date="2026-02-01",
description="Check the new feature",
tags=["pr", "review"],
)
# Create goal
goal = await client.create_goal("Ship v2", priority="high")
# Create note
note = await client.create_note("Remember to call Mom")
# Get item
item = await client.get_item("item_id")
# Update item
updated = await client.update_item("item_id", {"title": "New title", "priority": "low"})
# Complete item
await client.complete_item("item_id")
# Delete item
await client.delete_item("item_id")
# List tasks (with filters)
tasks = await client.list_tasks(status="todo", priority="high")
# List goals
goals = await client.list_goals()
# List notes
notes = await client.list_notes()
# List everything
all_items = await client.list_all()
Searches only: title, description, tags (NOT content)
results = await client.search(
query="pr",
type_="task", # task, goal, or note
status="pending",
priority="high",
category="do",
tags=["review"],
limit=10,
)
# Update multiple
await client.bulk_update([
{"id": "id1", "title": "Updated"},
{"id": "id2", "priority": "low"},
])
# Complete multiple
await client.bulk_complete(["id1", "id2"])
# Delete multiple
await client.bulk_delete(["id1", "id2"])
# Create webhook
webhook = await client.create_webhook(
url="https://yoururl.com/todozi",
events=["item.created", "item.completed"],
)
# List webhooks
webhooks = await client.list_webhooks()
# Update webhook
await client.update_webhook(webhook_id, url, ["*"])
# Delete webhook
await client.delete_webhook(webhook_id)
# Stats
stats = await client.get_stats()
# Health check
health = await client.health_check()
# Validate API key
valid = await client.validate_api_key()
# Register (get API key)
keys = await client.register(webhook="https://url.com")
The skill provides @tool decorated functions for agent integration:
from skills.todozi.scripts.todozi import TODOZI_TOOLS
# Available tools:
# - todozi_create_task(title, priority, due_date, description, thread_id, tags)
# - todozi_list_tasks(status, priority, thread_id, limit)
# - todozi_complete_task(task_id)
# - todozi_get_stats()
# - todozi_search(query, type_, status, priority, limit)
# - todozi_list_matrices()
| Category | Description |
|----------|-------------|
| do | Do now (urgent + important) |
| delegate | Delegate (urgent + not important) |
| defer | Defer (not urgent + important) |
| done | Completed items |
| dream | Goals/dreams (not urgent + not important) |
| dont | Don't do (neither) |
Auto-create default matrix:
task = await client.create_task("My task") # Creates "Default" matrix if needed
Get stats with completion rate:
stats = await client.get_stats()
rate = stats.completed_tasks / stats.total_tasks * 100 if stats.total_tasks > 0 else 0
Search with multiple filters:
results = await client.search("feature", type_="task", status="pending", priority="high")
Complete multiple tasks:
tasks = await client.list_tasks(status="todo")
ids = [t.id for t in tasks[:5]]
await client.bulk_complete(ids)
AI Usage Analysis
Analysis is being generated⦠refresh in a few seconds.
Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Clau...
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Search and analyze your own session logs (older/parent conversations) using jq.
Typed knowledge graph for structured agent memory and composable skills. Use when creating/querying entities (Person, Project, Task, Event, Document), linking related objects, enforcing constraints, planning multi-step actions as graph transformations, or when skills need to share state. Trigger on "remember", "what do I know about", "link X to Y", "show dependencies", entity CRUD, or cross-skill data access.
Ultimate AI agent memory system for Cursor, Claude, ChatGPT & Copilot. WAL protocol + vector search + git-notes + cloud backup. Never lose context again. Vibe-coding ready.
Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection