| .github | ||
| assets | ||
| src | ||
| tests | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| esbuild.config.mjs | ||
| LICENSE | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| SECURITY.md | ||
| styles.css | ||
| tsconfig.json | ||
| versions.json | ||
Taskline
Taskline is an Obsidian task dashboard and quick-capture plugin. It reads tasks from the notes you choose, groups them into a focused Today view, and writes changes back to Markdown.
Taskline does not create task notes during setup. You keep control of every source path, heading, route, and display group.
Features
- Today, Upcoming, and All task views
- Natural-language capture for dates, priorities, recurrence, tags, and owners
- Configurable task sources, headings, areas, and capture routes
- Inline task editing, status changes, and completion
- Desktop and mobile layouts with keyboard navigation
- Local-only operation with no accounts, telemetry, or network requests
- Optional proposal rows for reviewing suggested completions or cancellations
Requirements
- Obsidian 1.5.0 or later
- Markdown task notes that use
- [ ] Tasksyntax - The Tasks plugin only if you complete recurring tasks through Taskline
Taskline can read and edit non-recurring tasks without the Tasks plugin.
Install
Taskline is not yet listed in the Obsidian Community plugins directory.
To install a release manually:
- Download
main.js,manifest.json, andstyles.cssfrom the release. - Create
<vault>/.obsidian/plugins/vault-tasks/. - Place all three files in that folder.
- Reload Obsidian.
- Enable Taskline under Settings -> Community plugins.
The folder is named vault-tasks because Obsidian requires it to match the stable plugin ID in manifest.json.
Configure
Open Settings -> Taskline. Taskline starts unconfigured and inactive. Add the source notes and level-two (##) task headings you want, then select Apply.
The settings UI accepts JSON arrays so related routes and groups can be edited together. This minimal configuration reads one note and captures new tasks under its Inbox heading:
Task sources
[
{
"id": "tasks",
"label": "Tasks",
"path": "Tasks.md",
"role": "tasks",
"editPolicy": "stay",
"proposals": false
}
]
Areas
[
{
"id": "inbox",
"label": "Inbox",
"sourceId": "tasks",
"heading": "Inbox"
}
]
Display order
["inbox"]
Fallback capture destination
{
"sourceId": "tasks",
"heading": "Inbox"
}
Source paths must be relative to the vault. Taskline rejects absolute paths and paths containing ... Configured destinations must already exist as level-two headings; Taskline never creates notes or headings implicitly.
Capture Tasks
Run Taskline: Add task from the command palette. Taskline recognizes common shorthand:
Send report by tomorrow !! #work
Plan review next week #planning
Publish notes every Friday @alex
!,!!, and!!!set medium, high, and urgent priority.priority:lowsets low priority.- Dates such as
today,tomorrow,next week,Jul 5, and2026-07-05set the due date. daily,weekly, and phrases such asevery Fridayset recurrence.#tagselects a configured route or keeps a generic tag.@ownerrecords an owner.
Taskline writes Tasks-compatible signifiers at the end of each task line.
Development
npm ci
npm test
npm run build
The production build writes main.js at the repository root.
Privacy and Security
Taskline reads and changes only the vault files configured as task sources. It does not send data off-device. See SECURITY.md to report a vulnerability.
