A high-performance, user-friendly smart task management plugin for Obsidian

Ctrl+Shift+Enter to add subtasks[[Wiki Links]] in task descriptions render as clickable links#Tags in task descriptions render as clickable elements for quick filteringgetAllTags() results, invalidated on task changesmain.js, styles.css, and manifest.json to your Vault:<YourVault>/.obsidian/plugins/smarttask/
Settings → Community plugins in Obsidian and disable safe modegit clone https://github.com/fat-pumpkin/SmarTask.git
cd SmarTask
npm install
npm run build
Copy the built main.js and styles.css to the plugin directory.
| Action | Method |
|---|---|
| Open SmartTask View | Click sidebar icon or run command Open SmartTask View |
| Quick Create Task | Command Palette → Quick Create Task, shortcut Ctrl+Shift+T |
| Toggle Task Status | Command Palette → Toggle Task Status, shortcut Ctrl+Enter |
| Add Subtask | Command Palette → Add Subtask, shortcut Ctrl+Shift+Enter |
Tasks use standard Markdown Checkbox format with support for the following metadata:
- [ ] Task description [[Linked Note]] #tag 📅 2026-07-15 🛫 2026-07-02 🔺
| Marker | Meaning |
|---|---|
📅 |
Due date |
🛫 |
Start time (auto-added on creation) |
🔝 |
Highest priority |
🔺 |
High priority |
🔼 |
Medium priority |
🔽 |
Low priority |
⏬ |
Lowest priority |
[[Note Name]] |
Obsidian wiki link |
#tag |
Tag |
Switch between four views using the toolbar at the top of the SmartTask view:
Timeline view supports four styles: Classic, Zigzag, Card, and Gantt.
| Setting | Description | Default |
|---|---|---|
| Default Save Location | Inbox / Current File / Daily Note | Inbox |
| Inbox File Path | File path for inbox mode | SmartTask-Inbox.md |
| Auto-add Tags | Tags automatically added to new tasks | None |
| Default View | View shown on plugin open | List View |
| Default Priority | Priority for new tasks | Medium |
| Show Completed Tasks | Display completed tasks in list | Off |
| Timeline Grouping | Group by day/week/month | Day |
| Timeline Style | Classic/Gantt/Zigzag/Card | Classic |
├── src/
│ ├── main.ts # Plugin entry point
│ ├── view.ts # View registration
│ ├── smartTaskView.ts # View rendering logic
│ ├── settings.ts # Settings panel
│ ├── types.ts # Type definitions
│ ├── taskParser.ts # Task parser
│ ├── taskIndex.ts # Task indexing engine
│ ├── queryEngine.ts # Query engine
│ ├── quickCreateHelpers.ts # Shared QuickCreate option builders
│ └── i18n/ # Internationalization (en / zh / index)
├── main.js # Build output
├── styles.css # Stylesheet
├── manifest.json # Plugin manifest
├── versions.json # Plugin version → minAppVersion map
└── esbuild.config.mjs # Build configuration
This plugin follows the Obsidian community plugin review guidelines:
app instance: All API access goes through the injected App / Plugin context.console.* calls are limited to error paths only (no verbose logging in normal operation).id: lowercase, no spaces (smarttask), matches the community plugin listing.src/ with focused responsibilities (parser, index, query engine, view, settings, i18n).versions.json maps each plugin version to the minimum required Obsidian app version.See CHANGELOG.md for the full history.
getAllTags() caching, a11y attributes (role/aria-label/tabindex).setIcon() for lucide icons, --priority-* CSS variables, local filter-tab re-render, shared QuickCreate helper.This project uses GitHub Actions for automatic releases. Create a tag to trigger the release workflow:
git tag 1.0.0
git push origin 1.0.0
GitHub Actions will automatically build and create a Release with main.js, manifest.json, and styles.css, enabling Obsidian to perform online updates.