2.1k★by lucky-2968
todo-management – OpenClaw Skill
todo-management is an OpenClaw Skills integration for data analytics workflows. Per-workspace SQLite todo manager (./todo.db) with groups and task statuses (pending/in_progress/done/skipped), operated via {baseDir}/scripts/todo.sh for adding, listing, editing, moving, and removing entries and managing groups.
Skill Snapshot
| name | todo-management |
| description | Per-workspace SQLite todo manager (./todo.db) with groups and task statuses (pending/in_progress/done/skipped), operated via {baseDir}/scripts/todo.sh for adding, listing, editing, moving, and removing entries and managing groups. OpenClaw Skills integration. |
| owner | lucky-2968 |
| repository | lucky-2968/todo-management-1-1-2 |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @lucky-2968/todo-management-1-1-2 |
| last updated | Feb 7, 2026 |
Maintainer

name: todo-management description: Per-workspace SQLite todo manager (./todo.db) with groups and task statuses (pending/in_progress/done/skipped), operated via {baseDir}/scripts/todo.sh for adding, listing, editing, moving, and removing entries and managing groups. metadata: {"openclaw":{"emoji":"📝","requires":{"bins":["sqlite3"]}}} user-invocable: true
Todo Management
What this skill controls
A per-workspace SQLite database:
- Default:
./todo.db - Override:
TODO_DB=/path/to/todo.db
All changes MUST happen through the CLI:
bash {baseDir}/scripts/todo.sh ...
Statuses
pending (default), in_progress, done, skipped
Default list hides done and skipped unless --all or --status=....
Non-negotiable rules
1) No file writing (ever)
- Do NOT create or edit any files (e.g.,
todos.md, notes, markdown, exports). - Do NOT output “filename blocks” like
todos.md (...). - The only persistent state is in
todo.db, mutated bytodo.sh.
2) Never print the todo list unless explicitly asked
- If the user does NOT ask to “show/list/print my todos”, do NOT paste the list.
- Default behavior after mutations: one short confirmation line only.
3) Keep replies extremely short
- After success: respond with ONE line, max ~5 words (translate to user’s language yourself).
- Do not include bullets, tables, code blocks, or tool output unless the user explicitly asked for the list/details.
Allowed confirmations (English examples; translate as needed):
- “Done.”
- “Added.”
- “Updated.”
- “Removed.”
- “Moved.”
- “Renamed.”
- “Cleared.”
- “Added to the list.”
4) Ambiguity handling (the ONLY exception to rule #2)
If the user requests a destructive action but does not specify an ID (e.g., “remove the milk task”):
- run
entry list(optionally with--group=...) - show the results (minimal table)
- ask which ID to act on
This is the only case where you may show the list without the user explicitly requesting it.
5) Group deletion safety
group remove "X"moves entries to Inbox (default).- Only delete entries if the user explicitly chooses that:
- ask: “Move entries to Inbox (default) or delete entries too?”
- only then use
--delete-entries.
Commands (use exactly these)
Entries
- Add:
bash {baseDir}/scripts/todo.sh entry create "Buy milk"bash {baseDir}/scripts/todo.sh entry create "Ship feature X" --group="Work" --status=in_progress
- List (ONLY when user asks, or for ambiguity resolution):
bash {baseDir}/scripts/todo.sh entry listbash {baseDir}/scripts/todo.sh entry list --group="Work"bash {baseDir}/scripts/todo.sh entry list --allbash {baseDir}/scripts/todo.sh entry list --status=done
- Show one entry:
bash {baseDir}/scripts/todo.sh entry show 12
- Edit text:
bash {baseDir}/scripts/todo.sh entry edit 12 "Buy oat milk instead"
- Move:
bash {baseDir}/scripts/todo.sh entry move 12 --group="Inbox"
- Change status:
bash {baseDir}/scripts/todo.sh entry status 12 --status=donebash {baseDir}/scripts/todo.sh entry status 12 --status=skipped
- Remove:
bash {baseDir}/scripts/todo.sh entry remove 12
Groups
- Create / list:
bash {baseDir}/scripts/todo.sh group create "Work"bash {baseDir}/scripts/todo.sh group list
- Rename (alias: edit):
bash {baseDir}/scripts/todo.sh group rename "Work" "Work (Project A)"bash {baseDir}/scripts/todo.sh group edit "Work" "Work (Project A)"
- Remove:
- Default (move entries to Inbox):
bash {baseDir}/scripts/todo.sh group remove "Work"
- Delete entries too (ONLY if user explicitly wants it):
bash {baseDir}/scripts/todo.sh group remove "Work" --delete-entries
- Default (move entries to Inbox):
“Clear the list” behavior (no list printing)
To clear the todo list:
- run
entry list --allto get IDs (do NOT paste the results) - remove each ID with
entry remove ID - reply with ONE line: “Cleared.”
If the user then asks to see the list, run entry list and show it.
Dialogue example (expected behavior)
User: "I need to buy milk, add it to my todo list" Agent: "Done."
User: "Oh, and I also need to clean the room" Agent: "Added to the list."
User: "Show my todos" Agent: (prints the list)
User: "Remove the milk one" Agent: (lists matching tasks + asks for ID, then removes when ID is provided)
todo-management (OpenClaw Skill)
A simple, per-workspace todo manager for OpenClaw that stores everything in a local SQLite DB (./todo.db) and is controlled via a single script (todo.sh).
- ✅ Groups (default:
Inbox) - ✅ Task statuses:
pending,in_progress,done,skipped - ✅ Deterministic CLI (no “creative” file writing)
- ✅ Designed to keep agent replies short (no auto-pasting the full list)
Requirements
sqlite3must be available in yourPATH(Most macOS/Linux systems already have it; otherwise install via your package manager.)
After installation: make the script executable
Depending on how you installed skills, your path may differ. The common one is:
chmod +x skills/todo-management/scripts/todo.sh
If your local setup uses a different skills directory, adjust the path accordingly.
Quick check (should print help text):
bash skills/todo-management/scripts/todo.sh --help
How it works
-
The skill ships with a CLI script inside the skill folder:
.../skills/todo-management/scripts/todo.sh
-
The data lives in your current working directory (workspace):
- default DB file:
./todo.db - override location:
TODO_DB=/path/to/todo.db
- default DB file:
So: the script is global (skill asset), but the tasks are local to the project you’re working in.
Examples (CLI)
Add tasks
bash skills/todo-management/scripts/todo.sh entry create "Buy milk"
bash skills/todo-management/scripts/todo.sh entry create "Check image feature at work" --group="Work"
List tasks (active by default)
bash skills/todo-management/scripts/todo.sh entry list
Show everything (including done/skipped)
bash skills/todo-management/scripts/todo.sh entry list --all
Edit / move / change status
bash skills/todo-management/scripts/todo.sh entry edit 1 "Buy oat milk"
bash skills/todo-management/scripts/todo.sh entry move 1 --group="Inbox"
bash skills/todo-management/scripts/todo.sh entry status 1 --status=done
Groups
bash skills/todo-management/scripts/todo.sh group create "Work"
bash skills/todo-management/scripts/todo.sh group rename "Work" "Work (Project A)"
bash skills/todo-management/scripts/todo.sh group remove "Work" # moves entries to Inbox
bash skills/todo-management/scripts/todo.sh group remove "Work" --delete-entries
Example (how the agent should respond)
The skill is configured to be concise by default:
User: I need to buy milk, add it to my todo list
Agent: Done.
User: Oh, and I also need to clean the room
Agent: Added to the list.
User: Show my todos
Agent: (prints the list)
Notes
- This skill intentionally does not write
todos.mdor any other files. - The todo list is only printed when you explicitly ask to show/list it (or when the agent needs IDs to disambiguate a destructive action).
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
FAQ
How do I install todo-management?
Run openclaw add @lucky-2968/todo-management-1-1-2 in your terminal. This installs todo-management into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/lucky-2968/todo-management-1-1-2. Review commits and README documentation before installing.
