Skip to content
Back to skills

Tasks

ASecurity

Obsidian tasks via CLI: list open tasks, filter by file/status, toggle or complete checklist items. Use when user mentions Obsidian tasks, todos, or checklists.

  • 58 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
businessshellbash

Works with

  • cli

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add laurigates/claude-plugins --skill tasks --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tasks?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tasks
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/laurigates-tasks/badge)](https://www.skillsdirectory.com/skills/laurigates-tasks)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
created: 2026-03-04
modified: 2026-09-22
reviewed: 2026-09-22
name: tasks
description: "Obsidian tasks via CLI: list open tasks, filter by file/status, toggle or complete checklist items. Use when user mentions Obsidian tasks, todos, or checklists."
user-invocable: false
allowed-tools: Bash, Read, Grep, Glob
---

# Obsidian Task Management

## When to Use This Skill

| Use this skill when... | Use the alternative instead when... |
|---|---|
| Listing open `- [ ]` tasks across the vault, or toggling/completing them | Editing arbitrary note content rather than checklist lines — use `vault-files` |
| Filing a task on a daily note via the running Obsidian CLI | Tracking work in `taskwarrior` outside Obsidian — use a `taskwarrior-plugin` skill |
| Verifying which tasks Obsidian itself indexes as open | Searching for arbitrary text patterns including non-task content — use `search-discovery` |

List, filter, and update tasks across the Obsidian vault using the official CLI.

## Prerequisites

- Obsidian desktop 1.12.7+ installer with CLI enabled
- Obsidian must be running

## The Two Commands

The CLI exposes exactly two task commands. There is no create command —
tasks are **content**, so you add one by appending a `- [ ]` line with
`append` / `daily:append` (see `vault-files`).

| Command | Purpose |
|---------|---------|
| `tasks` | List / filter / count tasks |
| `task` | Show or update **one** task, addressed by location |

## List Tasks

```bash
# All tasks in the vault
obsidian tasks

# Incomplete only / completed only
obsidian tasks todo
obsidian tasks done

# Scope to a file
obsidian tasks file=Recipe
obsidian tasks path="Projects/Sprint.md"

# Scope to the active file or today's daily note
obsidian tasks active
obsidian tasks daily

# Counts instead of rows
obsidian tasks total
obsidian tasks daily total

# Group by file with line numbers (the agentic default —
# gives you the path:line that `task` needs to update)
obsidian tasks verbose

# Structured output (default format is plain text)
obsidian tasks format=json
obsidian tasks format=tsv
obsidian tasks format=csv

# Filter by a custom status character; quote shell-special ones
obsidian tasks 'status=?'
obsidian tasks status=-
```

Filters combine: `obsidian tasks file=Recipe todo verbose`.

## Show or Update a Task

`task` addresses a single checklist line by location — either a combined
`ref=path:line`, or `file=`/`path=`/`daily` plus `line=`.

```bash
# Show task info
obsidian task file=Recipe line=8
obsidian task ref="Recipe.md:8"

# Toggle completion
obsidian task ref="Recipe.md:8" toggle
obsidian task daily line=3 toggle

# Set an explicit state
obsidian task file=Recipe line=8 done      # → [x]
obsidian task file=Recipe line=8 todo      # → [ ]
obsidian task file=Recipe line=8 status=-  # → [-]
obsidian task daily line=3 done
```

`done`/`todo`/`status=` set a state outright; `toggle` flips whatever is
there. Use `status=` for custom markers your theme or plugin renders
(`-` cancelled, `/` in progress, `?` question, etc.).

## Workflow Patterns

### Capture a task to today's daily note

```bash
obsidian daily:append content="- [ ] Review PR #42"
```

### Find an open task, then complete it

```bash
# 1. Locate it — verbose gives path and line number
obsidian tasks todo verbose

# 2. Update by that location
obsidian task ref="Projects/Sprint.md:14" done
```

### Close out every task in today's daily note

```bash
obsidian tasks daily todo verbose
# then, per reported line:
obsidian task daily line=<n> done
```

### Count outstanding work

```bash
obsidian tasks todo total
obsidian tasks daily todo total
```

## Agentic Optimizations

| Context | Command |
|---------|---------|
| List tasks (structured) | `obsidian tasks format=json` |
| Open tasks only | `obsidian tasks todo` |
| Locate tasks (path + line) | `obsidian tasks verbose` |
| Tasks in one file | `obsidian tasks file=X` |
| Today's tasks | `obsidian tasks daily` |
| Outstanding count | `obsidian tasks todo total` |
| Complete a task | `obsidian task ref="path.md:N" done` |
| Toggle a task | `obsidian task ref="path.md:N" toggle` |
| Custom status | `obsidian task file=X line=N status=-` |
| Quick capture to daily | `obsidian daily:append content="- [ ] task"` |

## Related Skills

- **vault-files** — Append task lines to notes and daily notes (there is no `task` create command)
- **search-discovery** — Find notes containing tasks, or search task text
- **properties** — Track task metadata in frontmatter instead of checklist lines

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…