@particular-labs/taskito v1.0.1
๐ฏ Taskito
A tiny task master - Lightweight MCP (Model Context Protocol) server for task management with dependency tracking and beautiful markdown output.
โจ Features
- ๐ Simple Task Management: Create, update, delete, and list tasks
- ๐ Smart Dependencies: Define task dependencies with automatic blocking
- ๐ Task Sizing: Estimate work with XS/S/M/L/XL sizing (< 1h to 2+ days)
- ๐จ Beautiful Markdown: Pretty-printed output for Windsurf and other UIs
- ๐ Project-Based: Each project gets its own
taskito/tasks.jsonfolder - ๐ Global Installation: Install once, use everywhere
- ๐งน Auto-Cleanup: Archive old tasks and optimize file size
๐ Installation
Quick Install (Recommended)
# Install globally from npm
npm install -g @particular-labs/taskitoAlternative Installation Methods
From GitHub:
npm install -g git+https://github.com/particular-labs/taskito.gitFrom local clone:
git clone https://github.com/particular-labs/taskito.git
cd taskito
npm install -g .Verify Installation
# Check if taskito is available
taskito --version
# Verify global installation
npm list -g @particular-labs/taskitoโ๏ธ Configuration
MCP Client Setup
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"taskito": {
"command": "taskito"
}
}
}For Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"taskito": {
"command": "taskito"
}
}
}Start Using
Navigate to any project directory and start using Taskito:
cd my-project
# Taskito will create ./taskito/tasks.json automatically๐ Usage Examples
Initialize Your Project
Initialize project "My Web App" with description "A modern web application with user authentication"Create Tasks with Sizing
Create a task "Setup Database" with description "Configure PostgreSQL database" with size "m" and priority "high"
Create a task "User Authentication" that depends on task-1 with size "l"Track Progress
List all tasks
Update task-1 status to "in-progress"
Show me available tasks I can start now
Get project overview๐ฏ Task Status Workflow
- ๐ todo โ ๐ in-progress โ ๐ in-review โ โ done
๐ Task Sizing Guide
| Size | Icon | Time Estimate | Use For |
|---|---|---|---|
| XS | ๐ข | < 1 hour | Quick fixes, small updates |
| S | ๐ต | 1-4 hours | Small features, bug fixes |
| M | ๐ก | 4-8 hours | Medium features, refactoring |
| L | ๐ | 1-2 days | Large features, integrations |
| XL | ๐ด | 2+ days | Major features, architecture changes |
๐ ๏ธ Available Commands
Project Management
initialize_project- Initialize a new project from PRD or descriptionget_project_overview- Get project statistics in beautiful markdown
Task Management
create_task- Create a new task with size, priority, and dependenciesupdate_task- Update task details (title, description, size, etc.)update_task_status- Change task status with dependency validationget_task- Get detailed task information in markdownlist_tasks- List tasks with filtering (status, priority, size, tags)delete_task- Delete a task (validates no dependents exist)
Smart Workflows
check_dependencies- Check if a task's dependencies are satisfiedget_available_tasks- Get tasks ready to start (no blocking dependencies)
File Management
archive_completed_tasks- Archive old completed tasks to reduce file sizeclean_project- Clean up invalid references and optimize file structure
๐ Project Structure
When you initialize Taskito in a project, it creates:
your-project/
โโโ taskito/
โ โโโ tasks.json # All your tasks and project data
โโโ src/ # Your project files
โโโ README.mdThe tasks.json file contains:
{
"name": "Project Name",
"description": "Project description",
"tasks": [...],
"archivedTasks": [...], // Old completed tasks
"nextTaskId": 42
}๐๏ธ Managing File Size
As your project grows, the tasks.json file can get large. Taskito provides several strategies:
1. Archive Completed Tasks
Archive completed tasks older than 30 daysThis moves old completed tasks to archivedTasks array, keeping them stored but out of daily view.
2. Clean Project
Clean projectRemoves invalid dependency references and optimizes the file structure.
3. Manual Strategies
Split by Epic/Milestone:
# Create separate Taskito projects for major features
mkdir feature-auth && cd feature-auth
# Initialize separate project: "User Authentication Epic"
mkdir feature-payments && cd feature-payments
# Initialize separate project: "Payment System Epic"Archive by Quarter/Release:
# Before major release, archive the project
cp taskito/tasks.json taskito/tasks-v1.0.0-backup.json
# Archive all completed tasks, start fresh for next version๐จ Markdown Output
All Taskito responses are formatted in beautiful markdown with:
- ๐ Status icons (todo/in-progress/in-review/done)
- ๐ Size indicators (๐ข๐ต๐ก๐ ๐ด for XS/S/M/L/XL)
- ๐ฅ Priority markers (๐ฅ high, โก๏ธ medium, โ๏ธ low)
- ๐ Tables for project overviews
- ๐ฏ Clear sections and formatting
Perfect for Windsurf, Claude Desktop, and other markdown-aware UIs!
๐ Releasing (For Maintainers)
Automated GitHub Releases
This project uses fully automated releases via GitHub Actions. No local commands needed!
Method 1: Version Bump + Push (Recommended)
# 1. Update version in package.json locally
npm run version:patch # 1.0.0 โ 1.0.1 (bug fixes)
npm run version:minor # 1.0.0 โ 1.1.0 (new features)
npm run version:major # 1.0.0 โ 2.0.0 (breaking changes)
npm run version:beta # 1.0.0 โ 1.1.0-beta.0 (pre-release)
# 2. Commit and push
git add package.json
git commit -m "Bump version to $(npm pkg get version | tr -d '\"')"
git push
# 3. GitHub Actions automatically:
# โ
Tests the code
# โ
Builds the project
# โ
Publishes to npm
# โ
Creates git tag
# โ
Creates GitHub releaseMethod 2: Manual Tag Creation
# Create and push a tag - triggers immediate release
git tag v1.0.1
git push origin v1.0.1
# GitHub Actions handles the rest automaticallyMethod 3: GitHub UI
- Go to your GitHub repo
- Click "Releases" โ "Create a new release"
- Create tag
v1.0.1and publish - Automatic release triggers
Setup Requirements
NPM Token: Add
NPM_TOKENto GitHub repository secrets- Go to npmjs.com โ Access Tokens โ Generate Token
- Add to GitHub: Settings โ Secrets โ Actions โ
NPM_TOKEN
Repository Settings: Ensure GitHub Actions are enabled
- Settings โ Actions โ General โ Allow all actions
๐ง Development
Local Development
git clone <repo>
cd taskito
npm install
npm run dev # Run in development mode
npm run build # Build for productionProject Structure
taskito/
โโโ src/
โ โโโ index.ts # Main server implementation
โโโ dist/ # Compiled JavaScript
โโโ package.json
โโโ tsconfig.json
โโโ README.md๐ก Tips & Tricks
1. Start Small
Begin with XS and S tasks to build momentum:
Create task "Update README" with size "xs"
Create task "Fix broken link" with size "xs" 2. Use Dependencies Wisely
Chain related tasks:
Create task "Database Schema" with size "m"
Create task "User Model" that depends on task-1 with size "s"
Create task "Auth Controller" that depends on task-2 with size "m"3. Tag for Organization
Create task "Frontend Login Form" with tags "frontend,auth,ui"
List all tasks with tag "frontend"4. Regular Reviews
Show project overview
List all tasks with status "in-review"
Get available tasks๐ค Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Test thoroughly:
npm run dev - Commit:
git commit -am 'Add feature' - Push:
git push origin feature-name - Submit a pull request
๐ License
MIT License - see LICENSE file for details.
๐ Troubleshooting
Common Issues
"Project not found" error:
# Initialize a project first
Initialize project "My Project" with description "Project description""Cannot start task - dependencies not satisfied":
# Check what's blocking the task
Check dependencies for task-5
# Or see what's available to start
Get available tasksLarge file size:
# Archive old completed tasks
Archive completed tasks older than 30 days
# Clean up the project
Clean projectGlobal command not found:
# Reinstall globally
npm install -g @particular-labs/taskito
# Or check if npm global bin is in PATH
npm config get prefix
# Add /bin to your PATH if neededGetting Help
- Check the markdown output for detailed error messages
- Use
Get project overviewto see current state - Try
Clean projectto fix file issues - For development issues, run
npm run devfor detailed logs
Happy task management with Taskito! ๐ฏโจ