Skip to content
Productivity
Skill

/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.

BOOST
From plugin
personal-os-skills
5438 skills
Install
$ npx -y skills add ArtemXTech/personal-os-skills --skill tasknotes --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/tasknotes

Context preview

The summary Claude sees to decide when to auto-load this skill.

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.

SKILL.md

tasknotes.SKILL.md
name: tasknotes
description: 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.

TaskNotes Skill

Manage Obsidian tasks via the TaskNotes plugin HTTP API.

Requirements

1. **TaskNotes plugin** installed in Obsidian 2. **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

3. **Environment variables** in `.env` file at vault root (if using auth):

   TASKNOTES_API_PORT=8080
   TASKNOTES_API_KEY=your_token_here

If TaskNotes has no auth token set, you don't need a `.env` file.

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:**

  • `projects` - Array of project links, e.g. `["[[Project Name]]"]`
  • `contexts` - Array like `["office", "energy-high"]`
  • `due` - Due date (YYYY-MM-DD)
  • `scheduled` - Scheduled date/time (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS)
  • `timeEstimate` - Minutes (number)
  • `tags` - Array of tags
  • `details` - Task description (writes to markdown body, not frontmatter)

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

  • `status` - Filter by status
  • `project` - Filter by project name
  • `priority` - Filter by priority
  • `tag` - Filter by tag
  • `overdue` - true/false
  • `sort` - Sort field
  • `limit` - Max results
  • `offset` - Pagination offset

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
Read more
Ships withpersonal-os-skills

Claude Code skills for Obsidian workflows. 📚 Take control over your life. Point B, 14-day sprint on personal AI agents, starts Nov 3: lab.artemzhutov.com

Get the whole plugin
Stats
543
Stars
90
Forks
Active
Maintenance
Python
Language
MIT
License
10d ago
Last commit
9mo ago
Created
4h ago
Added

Repo: ArtemXTech/personal-os-skills

Other skills on personal-os-skills.