A modern todo application built on PocketBase with three powerful ways to manage your tasks: a beautiful web interface, an interactive command-line tool, and AI assistant integration.
One todo list. Three ways to access it.
- 🌐 Web Interface - Modern React UI with Entur Design System
- 💻 CLI Tool - Beautiful terminal interface with rich interactivity
- 🤖 AI Integration - Natural language todo management via Claude Desktop
- 💾 Unified Data - All interfaces share the same PocketBase database
- 🔄 Real-time Sync - Changes appear instantly across all interfaces
- 🎯 Rich Metadata - Priorities, due dates, tags, and descriptions
- 📊 Analytics - Visual statistics and progress tracking
- 🔍 Smart Search - Filter and search across all todo properties
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ │ │ │ │ │
│ Web Browser │ │ Terminal │ │ Claude Desktop │
│ │ │ │ │ │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ PocketBase Server │
│ (Unified Data Layer) │
└─────────────────────────────────────────────────────────────┘
All three interfaces connect to the same PocketBase database, ensuring your todos stay synchronized no matter how you access them.
- Node.js: Version 16 or higher
- PocketBase: Included in the
pocketbase/directory
-
Install Dependencies:
npm install npm run build:all
-
Start the app:
npm start
✨ Auto-Setup: PocketBase automatically creates the database and todos collection on first run!
-
Choose Your Interface:
- Web UI: → http://localhost:3000
- CLI: → use
todocommand anywhere - AI Assistant: Configure Claude Desktop (see below)
- API/SDK Navigate to the pocketbase admin GUI (http://127.0.0.1:8090/_/) and click the
API Previewbutton to read the API/SDK documentation (SDK's available are JS and Dart)
-
Configure Claude Desktop:
Open your configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
Add MCP Server:
{ "mcpServers": { "todo": { "command": "node", "args": ["/absolute/path/to/your/mcp-todo/dist/index.js"], "cwd": "/absolute/path/to/your/mcp-todo", "env": { "MCP_AUTO_START_POCKETBASE": "true" } } } }Replace the paths with your actual project directory.
-
Restart Claude Desktop and test with: "Show me my todos"
A modern, responsive React application built with Entur's Design System.
- 🎨 Professional Design - Clean, accessible interface
- 📱 Responsive - Works on desktop, tablet, and mobile
- ⚡ Real-time Updates - See changes instantly
- 🔍 Advanced Filtering - Search by text, status, priority
- 📊 Visual Analytics - Progress tracking and insights
- 🏷️ Tag Management - Organize with custom tags
# Start everything
npm run dev:all
# Or start separately:
npm run pocketbase # Terminal 1
npm run web # Terminal 2Then open http://localhost:3000 in your browser.
A beautiful, interactive terminal application with rich colors and intuitive commands.
- 🎨 Beautiful Terminal UI - Colors, tables, progress bars
- ⚡ Fast Commands - Quick operations for power users
- 🔄 Interactive Mode - Menu-driven interface
- 📊 Rich Statistics - Visual progress tracking
- 🔍 Smart Filtering - Search by any property
- 📅 Due Date Tracking - Overdue highlighting
# Build and install globally
npm run cli:build
cd cli && npm link# Interactive mode (recommended for beginners)
todo
# Quick commands
todo list # List all todos
todo add "Buy groceries" # Quick add
todo complete "groceries" # Mark as done
todo stats # Show statistics
todo --help # See all commands# Filtering and search
todo list --status pending # Only pending todos
todo list --priority high # Only high priority
todo list --table # Compact table view
todo list --search "development" # Search by text
# Creating todos with full options
todo add "Complex task" \
--description "Detailed description" \
--priority high \
--tags "work,urgent" \
--due 2025-06-15
# Management commands
todo complete "task name" # Mark as completed
todo delete "old task" # Remove todo
todo clear # Clear completed todos
todo overdue # Show overdue itemsManage your todos naturally using AI through the Model Context Protocol (MCP).
- 🗣️ Natural Language - "Create a high-priority task for the meeting"
- 🔍 Smart Queries - "Show me overdue tasks tagged with 'work'"
- 📊 Analytics - "What's my completion rate this week?"
- 🎯 Context Aware - AI understands priorities, due dates, tags
- "Create a new todo to review the quarterly report with high priority"
- "Show me all high priority tasks that are overdue"
- "Mark my MCP setup todo as completed"
- "What are my todo statistics?"
- "Find all todos tagged with 'development'"
- "Delete completed todos from last week"
{
id: string;
title: string;
description?: string;
completed: boolean;
priority: 'low' | 'medium' | 'high';
tags: string[];
dueDate?: string; // ISO 8601 format
created: string; // ISO 8601 format
updated: string; // ISO 8601 format
}# Building
npm run build # Build MCP server
npm run build:all # Build everything (MCP + Web + CLI)
# Development
npm run dev # MCP server watch mode
npm run web # Start web UI
npm run cli # CLI development mode
npm run dev:all # Start PocketBase + Web UI
# Database
npm run pocketbase # Start PocketBase server
npm run setup # Build + start PocketBase
# CLI
npm run cli:build # Build CLI
npm run cli:link # Build + link globally├── src/ # MCP server source
├── web/ # React web application
├── cli/ # Command-line interface
├── pocketbase/ # Database server + config
├── pb_data/ # Database files (auto-generated)
└── pb_migrations/ # Database migrations
Web UI: http://localhost:3000
PocketBase Admin: http://localhost:8090/\_/
API Base: http://localhost:8090/api/
Your todos are accessible through:
- 🌐 Web Interface - Modern browser experience
- 💻 Command Line - Terminal power-user interface
- 🤖 AI Assistant - Natural language via Claude Desktop
- 🔧 Admin Panel - Direct database management
- 📡 REST API - Programmatic access for integrations
All interfaces share the same database - changes sync automatically!
- Daily task management with beautiful interfaces
- Cross-device synchronization
- AI-powered task creation and management
- Feature tracking with tags and priorities
- CLI integration in development environment
- AI assistant for project planning
- Shared todo lists via web interface
- Consistent data across team members
- API integration with other tools
This todo application demonstrates the power of multi-interface design:
- One Backend - PocketBase provides robust, scalable data storage
- Multiple Frontends - Each optimized for different use cases
- Unified Experience - Consistent data and functionality across all interfaces
Whether you prefer clicking in a browser, typing in a terminal, or talking to an AI, your todos are always accessible and synchronized.
Built with ❤️ using PocketBase, React, Node.js, and the Model Context Protocol.