Skills tasknotes
Manage tasks in Obsidian via TaskNotes plugin API. Use when user wants to create tasks, list tasks, query by status or project, update task status, delete tasks, or check what they need to do.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/benoitjadinon/obsidian-plugin-tasknotes" ~/.claude/skills/openclaw-skills-tasknotes && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/benoitjadinon/obsidian-plugin-tasknotes" ~/.openclaw/skills/openclaw-skills-tasknotes && rm -rf "$T"
manifest:
skills/benoitjadinon/obsidian-plugin-tasknotes/SKILL.mdsource content
TaskNotes Skill
Manage Obsidian tasks via the TaskNotes plugin HTTP API.
Requirements
- TaskNotes plugin installed in Obsidian
- Enable HTTP API in TaskNotes settings:
- Open Obsidian Settings → TaskNotes
- Enable "HTTP API" toggle
- Set API port (default: 8080)
- API token: leave empty for no auth, or set a token for security
- Environment variables in
file at vault root (if using auth):.env
If TaskNotes has no auth token set, you don't need aTASKNOTES_API_PORT=8080 TASKNOTES_API_KEY=your_token_here
file..env
CLI Commands
# List all tasks uv run scripts/tasks.py list # List by status (use your configured status values) uv run scripts/tasks.py list --status "in-progress" # List by project uv run scripts/tasks.py list --project "My Project" # Create task uv run scripts/tasks.py create "Task title" --project "My Project" --priority high # Create task with scheduled time uv run scripts/tasks.py create "Meeting prep" --scheduled "2025-01-15T14:00:00" # Update task status uv run scripts/tasks.py update "Tasks/task-file.md" --status done # Add/update task description uv run scripts/tasks.py update "Tasks/task-file.md" --details "Additional context here." # Delete task uv run scripts/tasks.py delete "Tasks/task-file.md" # Get available options (statuses, priorities, projects) uv run scripts/tasks.py options --table # Human-readable output (add --table) uv run scripts/tasks.py list --table
Task Properties
Status and Priority values: Configured in your TaskNotes plugin settings. Run
options command to see available values:
uv run scripts/tasks.py options --table
Other fields:
- Array of project links, e.g.projects["[[Project Name]]"]
- Array likecontexts["office", "energy-high"]
- Due date (YYYY-MM-DD)due
- Scheduled date/time (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS)scheduled
- Minutes (number)timeEstimate
- Array of tagstags
- Task description (writes to markdown body, not frontmatter)details
API Reference
Base URL:
http://localhost:8080/api
| Method | Endpoint | Description |
|---|---|---|
| GET | /tasks | List tasks (supports filters) |
| POST | /tasks | Create task |
| GET | /tasks/{id} | Get single task |
| PUT | /tasks/{id} | Update task |
| DELETE | /tasks/{id} | Delete task |
| GET | /filter-options | Available statuses, priorities, projects |
Query Parameters for GET /tasks
- Filter by statusstatus
- Filter by project nameproject
- Filter by prioritypriority
- Filter by tagtag
- true/falseoverdue
- Sort fieldsort
- Max resultslimit
- Pagination offsetoffset
When to Use
- "create a task for X" → create task
- "show my tasks" → list all tasks
- "show in-progress tasks" → list --status in-progress
- "mark X as done" → update task status to done
- "what should I work on" → list tasks by status
Example Workflow
# Morning: Check what to work on uv run scripts/tasks.py list --status in-progress --table uv run scripts/tasks.py list --limit 5 --table # Create task linked to project uv run scripts/tasks.py create "Finish landing page" \ --project "Website Redesign" \ --priority high # Complete a task uv run scripts/tasks.py update "Tasks/finish-landing-page.md" --status done