Projex

approved

by Lenonss

任务列表管理组件,支持集中式任务数据库,提供新增、编辑、状态切换和移除功能。 - This plugin has not been manually reviewed by Obsidian staff.

1 stars256 downloadsUpdated 22d agoMIT

Projex

All-in-one project execution hub — centralized task database · workboard · OKR tracking · AI integration

中文:Projex 是一款 Obsidian 全能项目执行中枢插件,提供基于 SQLite 的集中式任务管理、内联任务代码块、OKR 目标管理、日历工作看板、多项目支持,以及 MCP Server + Claude Code Skill 的 AI 集成能力,支持中英双语。


Features

FeatureDescription
📋 Task ManagementCentralized SQLite task database with full CRUD, status toggling, and priority filtering
📝 Task Blocks```tasklist inline code blocks referencing tasks by ID from the database
🎯 OKR Tracking```okr code blocks embedding KR progress cards with inline progress updates
📊 Workboard.workboard calendar view + dashboard + OKR progress overview
🗂️ Multi-ProjectPer-directory database isolation with automatic active project detection
🤖 AI IntegrationMCP Server (6 semantic tools) + Claude Code Skill for weekly/monthly report generation
🌐 InternationalizationChinese / English bilingual UI

Quick Start

1. Installation

Copy the plugin files to your Obsidian plugins directory:

main.js  manifest.json  styles.css  sql-wasm.wasm
  → .obsidian/plugins/tasklist/

Enable the plugin in Obsidian's Community Plugins settings.

2. Initialize a Project

Open Settings (Ctrl+,) → ProjexAI & Projects tab:

  1. Click Add Project
  2. Enter a project name (e.g., "Work")
  3. Set the root directory (where your Markdown daily notes, weeklies, and OKR files live)
  4. The database file is auto-generated (e.g., Work.db)

3. Create Your First Task

  • Sidebar: Click the ribbon icon → Add button
  • Command Palette: Ctrl+P → "Quick add task"
  • Context Menu: Select text in a Markdown file → right-click → "Create task from selection"

Detailed Guide

📋 Task Management

Sidebar View

Click the ribbon icon or run "Open task list" to open the task panel in the right sidebar:

  • Filter: By status (Not Started / In Progress / Done) and priority (High / Medium / Low)
  • Create: Click "Add" to open the task form (title, description, priority, status)
  • Edit: Click the edit icon on any task card
  • Toggle Status: Cycle through Not Started → In Progress → Done
  • Delete: Click delete with confirmation dialog

Quick Create

MethodAction
Command PaletteCtrl+P → "Quick add task"
Context MenuSelect text → right-click → "Create task from selection"
File MenuRight-click .md file → "Add to task list"

📝 Task Blocks (tasklist)

Insert a tasklist code block in any Markdown file to reference tasks by their database ID:

```tasklist
a1b2c3d4-...
e5f6g7h8-...
```

Actions:

  • Add task: Click "Add" in the code block toolbar → "Create new" or "Select from database"
  • Edit/Remove: Hover over a task row to reveal edit/remove buttons
  • Remove: Only removes the reference from the code block, not from the database

Insert block: Right-click in editor → "Insert task list"

🎯 OKR Blocks (okr)

OKR code blocks embed Key Result progress cards in your documents:

```okr
//blockId:a1b2c3d4
{
  "objectiveId": "obj-uuid",
  "title": "Q2 Objective",
  "krIds": ["kr-uuid-1", "kr-uuid-2"]
}
```

Actions:

  • Add KR: Click "Add KR" to select from database or create new
  • Update Progress: Click the progress bar or edit button for the progress panel (percentage, today's update, score, weight)
  • Configure Objective: Click the settings button to select or create an objective

📊 Workboard

The workboard provides a calendar view + dashboard + OKR progress overview.

Create a workboard:

  1. Command Palette → "New workboard"
  2. Or right-click a folder → "Create workboard here"

Features:

  • 🔄 Calendar View: Week / Month / Quarter / Year views with daily task cards
  • 📈 Dashboard: Today's completed, in-progress, total task counts; completion trend SVG chart; task distribution chart
  • 🎯 OKR Progress: Collapsible panel showing all KR progress bars and today's updates

Navigation:

  • Click ← Previous / Next → to move through time periods
  • Click "📅 Today" to return to the current date

🗂️ Multi-Project Support

Manage multiple projects within a single vault, each with its own database and Markdown directory.

Configuration: Settings → AI & Projects → Project management table

FieldDescription
NameProject display name
Root DirectoryMarkdown file directory (for auto-matching and data sync)
Database File.db filename under .tasklist/databases/

Auto-switch: Opening a file under a project's root directory automatically switches to that project.

Path validation: Conflict detection on create/edit (exact match or containment).

🤖 AI Integration

MCP Server

A standalone Node.js process providing 6 semantic tools callable by Claude Code:

ToolFunction
get_tasks_by_date_rangeQuery tasks by date range
get_task_statsTask statistics + trend analysis
get_okr_progressOKR progress by year/quarter
get_kr_historyIndividual KR history
get_daily_reportsDaily report records
get_project_infoProject overview

Setup: Settings → AI & Projects → MCP Server → "Install MCP Server"

Test: Click "Test Connection" after installation to verify.

Register: Click "Re-register to mcp.json" to auto-generate MCP config entries for each enabled project.

Claude Code Skill

The tasklist-summary Skill provides:

  • MCP tool usage reference documentation
  • Weekly / Monthly / Annual / OKR summary generation workflows
  • Template file locations and best practices

Setup: Settings → AI & Projects → Skill → "Install Skill"


Settings Reference

General

SettingDefaultDescription
LanguageChineseUI display language (reopen views after switching)
Default PriorityMediumDefault priority for new tasks
Default StatusNot StartedDefault status for new tasks

Workboard

SettingDefaultDescription
Default YearCurrent yearDefault year for new workboards and sync
Default QuarterCurrent quarterDefault quarter for new OKRs and sync
Default Time RangeWeekDefault view for new workboards (Week/Month/Quarter/Year)
Show DashboardOnShow dashboard panel by default on new workboards
Max Cards Per Day20Visible task card limit per day in calendar view

AI & Projects

SettingDefaultDescription
Database Directory.tasklist/databasesCentralized location for all project databases
Active ProjectFirst enabled projectCurrently active project
Project ManagementAdd / Edit / Delete / Enable projects

Commands

CommandHotkeyDescription
Open task listOpen/focus the right sidebar task panel
Quick add taskOpen the new task form directly
Sync OKR to databaseScan Markdown OKR files and sync to SQLite
New workboardCreate a new .workboard file

Data Storage

Database Location

All database files are stored centrally in .tasklist/databases/ (configurable).

vault/
├── .tasklist/
│   └── databases/
│       ├── Work.db              # Project 1 SQLite database
│       └── Personal.db           # Project 2 SQLite database
├── .obsidian/
│   └── plugins/
│       └── tasklist/
│           ├── main.js
│           ├── styles.css
│           ├── manifest.json
│           └── sql-wasm.wasm     # SQLite WebAssembly (645KB)
└── .claude/
    ├── mcp.json                  # MCP Server registration config
    └── skills/
        └── tasklist-summary/
            └── SKILL.md          # Claude Code Skill

Database Schema

TablePurpose
tasksTask data (id, title, content, status, priority, date, type, source_file)
objectivesOKR objectives (id, year, quarter, text, progress, score, weight)
key_resultsKey results (id, objective_id, text, target, progress, today, owner)

FAQ

IssueSolution
Code block shows "Cannot load tasks"Ensure sql-wasm.wasm is in .obsidian/plugins/tasklist/
New task not appearing in code blockUpgrade to the latest version (regex matching fix applied)
Database errorCheck project configuration and database paths in settings
MCP connection failedRun "Install MCP Server" in settings first, then "Test Connection"
Data not updating after switching projectsReopen the sidebar or reload the Markdown file
Language switch not taking effectReopen views to apply the new language

Tech Stack

  • Obsidian API — Views, commands, code block processing, file adapter
  • sql.js (SQLite WASM) — Offline database engine
  • esbuild — TypeScript bundling
  • MCP SDK — AI integration protocol
  • Pure SVG — Workboard charts (no external charting library)

File Structure

TaskList/
├── main.ts              # Plugin entry point
├── types.ts             # Type definitions & default settings
├── utils.ts             # Utilities (UUID, date helpers)
├── i18n.ts              # Internationalization engine
├── TaskDatabase.ts      # SQLite data layer
├── TaskListView.ts      # Sidebar task panel
├── TaskModal.ts         # Task edit modal
├── TaskAddPanel.ts      # Enhanced add panel (filter + multi-select)
├── TaskListBlock.ts     # ```tasklist code block processor
├── OkrBlock.ts          # ```okr code block processor
├── WorkboardView.ts     # .workboard view
├── MigrationTool.ts     # Markdown → SQLite sync
├── settings.ts          # Settings tab
├── styles.css           # All styles
├── mcp/                 # MCP Server (standalone process)
│   ├── server.ts        # Entry point
│   ├── tools/           # 6 tool implementations
│   └── build.mjs        # Build script
└── locales/             # Language packs
    ├── zh.json          # Chinese
    └── en.json          # English

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.