SmartTask

approved

by SmartTask Team

高性能、易操作的智能任务管理插件。支持多视图、快速创建、智能查询。 - This plugin has not been manually reviewed by Obsidian staff.

120 downloadsUpdated 21d agoMIT

SmartTask

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

License: MIT Obsidian

Demo

SmartTask Demo

Features

Multiple Views

  • List View: Classic task list with grouping, sorting, and collapsible sections
  • Kanban View: Column-based display by priority or status with smooth drag-and-drop
  • Calendar View: Date-based task distribution for intuitive schedule visualization
  • Timeline View: Four styles available:
    • Zigzag Timeline: Alternating left-right card layout
    • Gantt Chart: Task bars displayed by day/week/month, spanning from creation to due date

Quick Task Creation

  • Compact input toolbar with due date and priority displayed as inline chips
  • Auto-record task creation time (🛫 start time) for easy tracking
  • Three save modes:
    • Inbox: Save to a specified file
    • Current File: Save to the currently edited file
    • Daily Note: Save to today's daily note
  • Auto-add configured tags

Subtask Support

  • Unlimited nesting levels for subtasks
  • Subtask progress tracking
  • Subtask support across all views
  • Shortcut Ctrl+Shift+Enter to add subtasks

Smart Query & Filter

  • Filter by status (All / Uncompleted / Completed)
  • Filter by priority (Highest / High / Medium / Low / Lowest)
  • Filter by tags
  • Filter by date range
  • Text search
  • Multi-field sorting (due date, priority, description, creation time, completion time)
  • Multi-dimensional grouping (file, priority, due date, tag)

Obsidian Native Features

  • [[Wiki Links]] in task descriptions render as clickable links
  • #Tags in task descriptions render as clickable elements for quick filtering
  • Task data stored in Markdown format, preserving original file structure

Performance Optimization

  • Incremental indexing based on file mtime + size
  • Batch processing (10ms yield) to prevent UI blocking
  • Virtual scrolling and debounced updates for large vaults

Installation

Method 1: Manual Installation (Recommended)

  1. Download the latest Release
  2. Copy main.js, styles.css, and manifest.json to your Vault:
    <YourVault>/.obsidian/plugins/smarttask/
    
  3. Open Settings → Community plugins in Obsidian and disable safe mode
  4. Find SmartTask and enable it

Method 2: Build from Source

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

Usage

Basic Operations

ActionMethod
Open SmartTask ViewClick sidebar icon or run command Open SmartTask View
Quick Create TaskCommand Palette → Quick Create Task, shortcut Ctrl+Shift+T
Toggle Task StatusCommand Palette → Toggle Task Status, shortcut Ctrl+Enter
Add SubtaskCommand Palette → Add Subtask, shortcut Ctrl+Shift+Enter

Task Syntax

Tasks use standard Markdown Checkbox format with support for the following metadata:

- [ ] Task description [[Linked Note]] #tag 📅 2026-07-15 🛫 2026-07-02 🔺
MarkerMeaning
📅Due date
🛫Start time (auto-added on creation)
🔝Highest priority
🔺High priority
🔼Medium priority
🔽Low priority
Lowest priority
[[Note Name]]Obsidian wiki link
#tagTag

View Switching

Switch between four views using the toolbar at the top of the SmartTask view:

  • 📋 List View
  • 📌 Kanban View
  • 📅 Calendar View
  • 📊 Timeline View

Timeline view supports four styles: Classic, Zigzag, Card, and Gantt.

Settings

SettingDescriptionDefault
Default Save LocationInbox / Current File / Daily NoteInbox
Inbox File PathFile path for inbox modeSmartTask-Inbox.md
Auto-add TagsTags automatically added to new tasksNone
Default ViewView shown on plugin openList View
Default PriorityPriority for new tasksMedium
Show Completed TasksDisplay completed tasks in listOff
Timeline GroupingGroup by day/week/monthDay
Timeline StyleClassic/Gantt/Zigzag/CardClassic

Tech Stack

  • TypeScript + esbuild for building
  • Obsidian Plugin API for integration
  • Native DOM manipulation for UI rendering

Project Structure

├── 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
├── main.js               # Build output
├── styles.css            # Stylesheet
├── manifest.json         # Plugin manifest
└── esbuild.config.mjs    # Build configuration

Changelog

1.0.2

  • Added: Stats and progress bar displayed in header row for quick overview
  • Added: Tag input mode in filter panel (instead of enum list) for better tag management
  • Added: Enhanced search functionality supporting description, file path, tags, and subtasks
  • Fixed: Tag display consistency across all views (list, kanban, timeline zigzag, gantt)
  • Fixed: Wiki link rendering consistency across all views
  • Fixed: Progress bar layout - progress bar on left, percentage on right
  • Removed: Unused Svelte component files for cleaner codebase

1.0.1

  • Fixed: Gantt chart style clarity - improved bar visibility with enhanced colors, borders, and labels
  • Fixed: Removed unused variables and imports for better code quality
  • Fixed: Replaced confirm() with Obsidian Modal for better UX
  • Fixed: Regex escape character issues

1.0.0

  • Initial release
  • Multiple views: List, Kanban, Calendar, Timeline
  • Quick task creation with inline chips
  • Subtask support with unlimited nesting
  • Smart query & filter system
  • Obsidian native features integration
  • Performance optimization with incremental indexing

Version Release

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.

License

MIT License

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.