topydo

Manage todo.txt tasks using topydo CLI. Add, list, complete, prioritize, tag, and organize tasks with dependencies, due dates, recurrence, and projects. Use for any task management, todo lists, or when the user mentions tasks, todos, or todo.txt. Requires Python 3 and pip. Works on macOS, Linux, and Windows.

3,891 stars

Best use case

topydo is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Manage todo.txt tasks using topydo CLI. Add, list, complete, prioritize, tag, and organize tasks with dependencies, due dates, recurrence, and projects. Use for any task management, todo lists, or when the user mentions tasks, todos, or todo.txt. Requires Python 3 and pip. Works on macOS, Linux, and Windows.

Teams using topydo should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/topydo/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/bastos/topydo/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/topydo/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How topydo Compares

Feature / AgenttopydoStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Manage todo.txt tasks using topydo CLI. Add, list, complete, prioritize, tag, and organize tasks with dependencies, due dates, recurrence, and projects. Use for any task management, todo lists, or when the user mentions tasks, todos, or todo.txt. Requires Python 3 and pip. Works on macOS, Linux, and Windows.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# topydo - Todo.txt Task Manager

topydo is a powerful CLI for managing tasks in the todo.txt format. It supports dependencies, due dates, start dates, recurrence, priorities, projects, and contexts.

## Task Format Reference

```
(A) 2025-01-11 Task text +Project @Context due:2025-01-15 t:2025-01-10 rec:1w star:1
│   │          │         │        │        │             │            │      │
│   │          │         │        │        │             │            │      └─ Star marker
│   │          │         │        │        │             │            └─ Recurrence
│   │          │         │        │        │             └─ Start/threshold date
│   │          │         │        │        └─ Due date
│   │          │         │        └─ Context
│   │          │         └─ Project
│   │          └─ Task description
│   └─ Creation date
└─ Priority (A-Z)
```

## Installation

### Homebrew (macOS, preferred)
```bash
brew install topydo
```

### pip (all platforms)
```bash
pip3 install topydo
```

With optional features:
```bash
pip3 install 'topydo[columns,prompt,ical]'
```

### apt (Ubuntu/Debian)
```bash
sudo apt install python3-pip && pip3 install topydo
```

## Configuration

Config file locations (in order of precedence):
- `topydo.conf` or `.topydo` (current directory)
- `~/.topydo` or `~/.config/topydo/config`
- `/etc/topydo.conf`

Example `~/.topydo`:
```ini
[topydo]
filename = ~/todo.txt
archive_filename = ~/done.txt
colors = 1
identifiers = text

[add]
auto_creation_date = 1

[sort]
sort_string = desc:importance,due,desc:priority
ignore_weekends = 1
```

## Adding Tasks

Basic task:
```bash
topydo add "Buy groceries"
```

With priority (A is highest):
```bash
topydo add "(A) Urgent task"
```

With project and context:
```bash
topydo add "Write report +ProjectX @office"
```

With due date (absolute):
```bash
topydo add "Submit proposal due:2025-01-15"
```

With due date (relative):
```bash
topydo add "Call mom due:tomorrow"
```

With due date (weekday):
```bash
topydo add "Weekly review due:fri"
```

With start/threshold date:
```bash
topydo add "Future task t:2025-02-01"
```

With recurrence (weekly):
```bash
topydo add "Water plants due:sat rec:1w"
```

With strict recurrence (always on 1st of month):
```bash
topydo add "Pay rent due:2025-02-01 rec:+1m"
```

With dependency (must complete before task 1):
```bash
topydo add "Write tests before:1"
```

As subtask of task 1:
```bash
topydo add "Review code partof:1"
```

## Listing Tasks

List all relevant tasks:
```bash
topydo ls
```

Include hidden/blocked tasks:
```bash
topydo ls -x
```

Filter by project:
```bash
topydo ls +ProjectX
```

Filter by context:
```bash
topydo ls @office
```

Filter by priority:
```bash
topydo ls "(A)"
```

Filter by priority range:
```bash
topydo ls "(>C)"
```

Filter tasks due today:
```bash
topydo ls due:today
```

Filter overdue tasks:
```bash
topydo ls "due:<today"
```

Filter tasks due by Friday:
```bash
topydo ls "due:<=fri"
```

Combine multiple filters:
```bash
topydo ls +ProjectX @office due:today
```

Exclude context:
```bash
topydo ls -- -@waiting
```

Sort by priority:
```bash
topydo ls -s priority
```

Sort descending by due date, then priority:
```bash
topydo ls -s desc:due,priority
```

Group by project:
```bash
topydo ls -g project
```

Limit to 5 results:
```bash
topydo ls -n 5
```

Custom output format:
```bash
topydo ls -F "%I %p %s %{due:}d"
```

Output as JSON:
```bash
topydo ls -f json
```

## Completing Tasks

Complete task by ID:
```bash
topydo do 1
```

Complete multiple tasks:
```bash
topydo do 1 2 3
```

Complete all tasks due today:
```bash
topydo do -e due:today
```

Complete with custom date:
```bash
topydo do -d yesterday 1
```

## Priority Management

Set priority A:
```bash
topydo pri 1 A
```

Set priority for multiple tasks:
```bash
topydo pri 1 2 3 B
```

Remove priority:
```bash
topydo depri 1
```

## Tagging Tasks

Set due date:
```bash
topydo tag 1 due tomorrow
```

Star a task:
```bash
topydo tag 1 star 1
```

Remove a tag:
```bash
topydo tag 1 due
```

Set custom tag with relative date:
```bash
topydo tag -r 1 review 2w
```

## Modifying Tasks

Append text to task:
```bash
topydo append 1 "additional notes"
```

Append due date:
```bash
topydo append 1 due:friday
```

Edit task in text editor:
```bash
topydo edit 1
```

Edit all tasks in project:
```bash
topydo edit -e +ProjectX
```

## Deleting Tasks

Delete by ID:
```bash
topydo del 1
```

Delete multiple:
```bash
topydo del 1 2 3
```

Delete by expression:
```bash
topydo del -e completed:today
```

## Dependencies

Add dependency (task 2 depends on task 1):
```bash
topydo dep add 2 to 1
```

Task 2 is part of task 1:
```bash
topydo dep add 2 partof 1
```

List what depends on task 1:
```bash
topydo dep ls 1 to
```

List what task 1 depends on:
```bash
topydo dep ls to 1
```

Remove dependency:
```bash
topydo dep rm 2 to 1
```

Visualize dependencies (requires graphviz):
```bash
topydo dep dot 1 | dot -Tpng -o deps.png
```

## Postponing Tasks

Postpone by 1 week:
```bash
topydo postpone 1 1w
```

Postpone by 3 days:
```bash
topydo postpone 1 3d
```

Postpone including start date:
```bash
topydo postpone -s 1 1w
```

## Other Commands

Sort the todo.txt file:
```bash
topydo sort
```

Revert last command:
```bash
topydo revert
```

Show revert history:
```bash
topydo revert ls
```

List all projects:
```bash
topydo lsprj
```

List all contexts:
```bash
topydo lscon
```

Archive completed tasks:
```bash
topydo archive
```

## Relative Dates

- `today`, `tomorrow`, `yesterday`
- Weekdays: `mon`, `tue`, `wed`, `thu`, `fri`, `sat`, `sun`
- Periods: `1d` (days), `2w` (weeks), `3m` (months), `1y` (years)
- Business days: `5b` (excludes weekends)

## Sort/Group Fields

- `priority`, `due`, `creation`, `completed`
- `importance`, `importance-avg`
- `project`, `context`, `text`, `length`

Prefix with `desc:` for descending. Example: `desc:importance,due`

## Tips

- Use a clean, human-readable format to present results to the user
- Enable stable text IDs: set `identifiers = text` in config
- Star important tasks: add `star:1` tag
- Hidden tags by default: `id`, `p`, `ical`
- Importance = priority + due date proximity + star status

Related Skills

---

3891
from openclaw/skills

name: article-factory-wechat

Content & Documentation

humanizer

3891
from openclaw/skills

Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.

Content & Documentation

find-skills

3891
from openclaw/skills

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.

General Utilities

tavily-search

3891
from openclaw/skills

Use Tavily API for real-time web search and content extraction. Use when: user needs real-time web search results, research, or current information from the web. Requires Tavily API key.

Data & Research

baidu-search

3891
from openclaw/skills

Search the web using Baidu AI Search Engine (BDSE). Use for live information, documentation, or research topics.

Data & Research

agent-autonomy-kit

3891
from openclaw/skills

Stop waiting for prompts. Keep working.

Workflow & Productivity

Meeting Prep

3891
from openclaw/skills

Never walk into a meeting unprepared again. Your agent researches all attendees before calendar events—pulling LinkedIn profiles, recent company news, mutual connections, and conversation starters. Generates a briefing doc with talking points, icebreakers, and context so you show up informed and confident. Triggered automatically before meetings or on-demand. Configure research depth, advance timing, and output format. Walking into meetings blind is amateur hour—missed connections, generic small talk, zero leverage. Use when setting up meeting intelligence, researching specific attendees, generating pre-meeting briefs, or automating your prep workflow.

Workflow & Productivity

self-improvement

3891
from openclaw/skills

Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Claude ('No, that's wrong...', 'Actually...'), (3) User requests a capability that doesn't exist, (4) An external API or tool fails, (5) Claude realizes its knowledge is outdated or incorrect, (6) A better approach is discovered for a recurring task. Also review learnings before major tasks.

Agent Intelligence & Learning

botlearn-healthcheck

3891
from openclaw/skills

botlearn-healthcheck — BotLearn autonomous health inspector for OpenClaw instances across 5 domains (hardware, config, security, skills, autonomy); triggers on system check, health report, diagnostics, or scheduled heartbeat inspection.

DevOps & Infrastructure

linkedin-cli

3891
from openclaw/skills

A bird-like LinkedIn CLI for searching profiles, checking messages, and summarizing your feed using session cookies.

Content & Documentation

notebooklm

3891
from openclaw/skills

Google NotebookLM 非官方 Python API 的 OpenClaw Skill。支持内容生成(播客、视频、幻灯片、测验、思维导图等)、文档管理和研究自动化。当用户需要使用 NotebookLM 生成音频概述、视频、学习材料或管理知识库时触发。

Data & Research

小红书长图文发布 Skill

3891
from openclaw/skills

## 概述

Content & Documentation