返回技能库

Todoist 管理器

通过 todoist CLI 封装器管理 Todoist 的任务、项目、标签和评论。当用户请求添加任务、列出代办事项、完成条目、管理项目或与其 Todoist 帐户交互时使用。

作者:andreisuslov · 最新版本:1.0.0

收藏:0 · 下载:1.3k

说明文档

# Todoist CLI

Manage Todoist via the REST API v2.

## Setup

1. Get API token: Todoist → Settings → Integrations → Developer → API token
2. Set environment variable:
   ```bash
   export TODOIST_API_TOKEN="your_token_here"
   ```
3. Make CLI executable:
   ```bash
   chmod +x ~/clawd/skills/todoist/scripts/todoist
   ```

## CLI Location

```bash
~/clawd/skills/todoist/scripts/todoist
```

## Quick Reference

### Tasks

```bash
# List all tasks
todoist tasks

# List with filter
todoist tasks --filter "today"
todoist tasks --filter "overdue"
todoist tasks --filter "#Work"
todoist tasks --project PROJECT_ID

# Quick views
todoist today
todoist overdue
todoist upcoming

# Get single task
todoist task TASK_ID

# Add task
todoist add "Buy groceries"
todoist add "Call mom" --due tomorrow
todoist add "Meeting prep" --due "today 3pm" --priority 4
todoist add "Review PR" --project PROJECT_ID --labels "work,urgent"
todoist add "Write docs" --description "Include examples"

# Update task
todoist update TASK_ID --content "New title"
todoist update TASK_ID --due "next monday"
todoist update TASK_ID --priority 3

# Complete / reopen / delete
todoist complete TASK_ID
todoist reopen TASK_ID
todoist delete-task TASK_ID
```

### Projects

```bash
# List projects
todoist projects

# Get project
todoist project PROJECT_ID

# Create project
todoist add-project "Work"
todoist add-project "Personal" --color blue --favorite

# Update project
todoist update-project PROJECT_ID --name "New Name"
todoist update-project PROJECT_ID --color red

# Delete project
todoist delete-project PROJECT_ID
```

### Sections

```bash
# List sections
todoist sections
todoist sections PROJECT_ID

# Create section
todoist add-section --name "In Progress" --project PROJECT_ID

# Delete section
todoist delete-section SECTION_ID
```

### Labels

```bash
# List labels
todoist labels

# Create label
todoist add-label "urgent"
todoist add-label "blocked" --color red

# Delete label
todoist delete-label LABEL_ID
```

### Comments

```bash
# List comments
todoist comments --task TASK_ID
todoist comments --project PROJECT_ID

# Add comment
todoist add-comment "Need more info" --task TASK_ID

# Delete comment
todoist delete-comment COMMENT_ID
```

## Filter Syntax

Todoist supports powerful filter queries:

| Filter | Description |
|--------|-------------|
| `today` | Due today |
| `tomorrow` | Due tomorrow |
| `overdue` | Past due |
| `7 days` | Due in next 7 days |
| `no date` | No due date |
| `#ProjectName` | In specific project |
| `@label` | Has label |
| `p1`, `p2`, `p3`, `p4` | Priority level |
| `assigned to: me` | Assigned to you |
| `created: today` | Created today |

Combine with `&` (and) or `|` (or):
```bash
todoist tasks --filter "today & #Work"
todoist tasks --filter "overdue | p1"
```

## Due Date Strings

Natural language due dates:
- `today`, `tomorrow`, `yesterday`
- `next monday`, `next week`
- `in 3 days`
- `every day`, `every weekday`
- `every monday at 9am`
- `Jan 15`, `2026-01-20`
- `today at 3pm`

## Priority Levels

| Value | Meaning |
|-------|---------|
| 1 | Normal (default) |
| 2 | Medium |
| 3 | High |
| 4 | Urgent |

## Output

All commands return JSON. Pipe to `jq` for formatting:

```bash
todoist tasks | jq '.[] | {id, content, due: .due.string}'
todoist today | jq -r '.[].content'
```

## Notes

- Requires `curl` and `jq`
- All output is JSON for easy scripting
- Task IDs are numeric strings (e.g., "8765432109")
- Project IDs are also numeric strings