Persistent TODO scratch pad for tracking tasks across sessions. Use when the user asks to add, list, complete, remove, or summarize tasks in a portable workspace Markdown file. Uses stable task IDs and exact matching; heartbeat reporting is opt-in and count-only.
编程
todo.txt skill
试用Manage tasks, todos and reminders using the todo.txt CLI (todo.sh). Use for adding, listing, completing, prioritizing, and organizing tasks in todo.txt format.
它能做什么
Manage tasks, todos and reminders using the todo.txt CLI (todo.sh). Use for adding, listing, completing, prioritizing, and organizing tasks in todo.txt format.
技能文档
You are a todo.txt task manager assistant. Your job is to help the user manage their tasks using the todo.sh CLI tool.
Step 1: Run the requested todo.sh command
Just run it. Don't check whether todo.sh is installed beforehand — assume it is.
If the command fails because todo.sh isn't found, run the installer bundled with this skill, then retry the original command:
bash scripts/install_todo_cli.sh
(This script lives in the same directory as this SKILL.md file. It detects your OS, installs todo.sh — via Homebrew on macOS, from source on Linux — sets up the config file, and is safe to re-run.)
If the script itself fails, fall back to the manual installation steps below.
Manual installation (if the script doesn't work)
macOS
brew install todo-txt
cp -n $(brew --prefix)/opt/todo-txt/todo.cfg ~/.todo.cfg
Linux (from source)
git clone https://github.com/todotxt/todo.txt-cli.git
cd todo.txt-cli
make
sudo make install
cp -n /usr/local/etc/todo/config ~/.todo/config
Verify installation
todo.sh -V
Step 2: Understand the user's request
If $ARGUMENTS is provided, parse it to determine the action. Otherwise, default to listing all tasks (todo.sh ls).
Commands Reference
Adding tasks
todo.sh add "TASK DESCRIPTION +project @context"
todo.sh a "TASK DESCRIPTION"
# Add multiple tasks at once
todo.sh addm "FIRST TASK +project1
SECOND TASK +project2 @context"
# Add to a specific file
todo.sh addto inbox.txt "TEXT TO ADD"
Listing tasks
# List all tasks
todo.sh ls
todo.sh list
# List tasks matching a term
todo.sh ls TERM
# List tasks for a specific project
todo.sh ls +project
# List tasks for a specific context
todo.sh ls @context
# List tasks with priority A-C
todo.sh lsp A-C
# List all (including done tasks)
todo.sh lsa
# List projects
todo.sh lsprj
# List contexts
todo.sh lsc
Completing tasks
# Mark task #NR as done
todo.sh do NR
# Mark multiple tasks as done
todo.sh do NR1 NR2 NR3
Prioritizing tasks
# Set priority (A-Z) for task #NR
todo.sh pri NR A
todo.sh p NR A
# Remove priority from task
todo.sh depri NR
todo.sh dp NR
Editing tasks
# Append text to task #NR
todo.sh append NR "TEXT TO APPEND"
todo.sh app NR "TEXT TO APPEND"
# Prepend text to task #NR
todo.sh prepend NR "TEXT TO PREPEND"
todo.sh prep NR "TEXT TO PREPEND"
# Fully replace task #NR
todo.sh replace NR "UPDATED TASK TEXT"
Deleting tasks
# Delete task #NR
todo.sh del NR
todo.sh rm NR
# Delete a specific term from task #NR
todo.sh del NR TERM
Maintenance
# Move done tasks to done.txt
todo.sh archive
# Remove duplicate lines
todo.sh deduplicate
# Move task NR to another file
todo.sh move NR dest.txt
todo.sh mv NR dest.txt
# Generate a report (open vs done count)
todo.sh report
Getting help
todo.sh help
todo.sh shorthelp
todo.sh help ACTION
Key options (flags before the action)
| Flag | Meaning |
|---|---|
-f | Force — skip confirmation prompts |
-p | Plain mode — no colors |
-c | Color mode |
-t | Auto-prepend today's date when adding tasks |
-a | Don't auto-archive on completion |
-A | Auto-archive on completion |
-n | Remove blank lines on deletion |
-v | Verbose — show confirmation messages |
-d CONFIG | Use a specific config file |
Example with flag:
todo.sh -f do 3 # delete task 3 without confirmation
todo.sh -t add "Buy milk +groceries" # add with today's date
todo.txt Format
- Priority:
(A)at the start, where A-Z sets urgency - Completion:
xprefix marks done, followed by completion date - Creation date:
YYYY-MM-DDafter priority (or at start if no priority) - Project tags:
+projectname - Context tags:
@contextname - Key:value metadata:
due:2026-12-31
Example tasks:
(A) Call dentist @phone +health due:2026-12-15
(B) 2026-12-01 Write report +work @computer
x 2026-12-10 2026-12-01 Buy groceries +errands @store
Buy birthday card @errands
Behavior guidelines
- Always run
todo.sh lsafter making changes so the user can see the updated list. - When adding tasks, suggest using
+projectand@contexttags if the user didn't include them. - Use
-fflag when automation is needed (no interactive prompts). - If the user asks to "complete" or "finish" a task, use
todo.sh do NR. - To find a task number, run
todo.sh ls TERMfirst to identify the line number. - Present task lists in a clean, readable format to the user.
相关技能
Coordinate Todo tasks across AI agents through Git
Install and drive `do`, the agent-drivable CLI for the do personal todo / life-tracking app. `do` is a thin client over the app's public REST API (`/api/v1`)...
Route TODO checklists to the right storage + TaskList conversational discipline. Topics — session (/wip), file (fix_plan.md), issue (GitHub Issues), completion-report, fix-plan-sync, priority-prefix, media-separation (tracking vs recording vs knowledge). Use when: "TODO management", "checklist", "todowrite", "fix_plan cleanup", "register as issue", "completion report", "task priority", "media-separation".
Microsoft To Do (to-do.office.com). Use this skill for ANY Microsoft To Do request — reading, creating, updating, and deleting data. Whenever a task involves Microsoft To Do, use this skill instead of calling the API directly.
Read and write Microsoft To Do via shared Outlook Graph auth: enumerate task lists, read/filter tasks, and create, update, complete, or delete tasks (writes require --apply plus a typed-YES prompt or an explicit --yes flag).