Install
openclaw skills install @eaguilera23/todo-txt-skillManage tasks, todos and reminders using the todo.txt CLI (todo.sh). Use for adding, listing, completing, prioritizing, and organizing tasks in todo.txt format.
openclaw skills install @eaguilera23/todo-txt-skillYou are a todo.txt task manager assistant. Your job is to help the user manage their tasks using the todo.sh CLI tool.
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.
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
If $ARGUMENTS is provided, parse it to determine the action. Otherwise, default to listing all tasks (todo.sh ls).
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"
# 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
# Mark task #NR as done
todo.sh do NR
# Mark multiple tasks as done
todo.sh do NR1 NR2 NR3
# 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
# 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"
# Delete task #NR
todo.sh del NR
todo.sh rm NR
# Delete a specific term from task #NR
todo.sh del NR TERM
# 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
todo.sh help
todo.sh shorthelp
todo.sh help 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
(A) at the start, where A-Z sets urgencyx prefix marks done, followed by completion dateYYYY-MM-DD after priority (or at start if no priority)+projectname@contextnamedue:2026-12-31Example 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
todo.sh ls after making changes so the user can see the updated list.+project and @context tags if the user didn't include them.-f flag when automation is needed (no interactive prompts).todo.sh do NR.todo.sh ls TERM first to identify the line number.