A Signal-to-Noise Life Planner that cuts through daily noise and helps you focus on goal-aligned actions. MILO combines AI-powered planning with activity monitoring to keep you on track.
- Download the latest
MILO-x.x.x.dmgfrom Releases - Open the DMG and drag MILO to Applications
- First launch: Right-click the app β "Open" (required for unsigned apps)
- Setup: Enter your Claude API key in Settings
Note: MILO is currently unsigned. macOS will warn about an "unidentified developer" on first launch. Right-click β Open bypasses this safely.
MILO is your personal life operating system with a retro Pip-Boy aesthetic:
- Goal Hierarchy: Beacon β Milestone β Objective β Task (dream big, execute small)
- Morning Briefing: AI-powered daily planning dialogue
- Activity Monitoring: Tracks your focus state (GREEN/AMBER/RED)
- Drift Detection: Gentle nudges when you veer off course
- Evening Review: Reflect on your day, adjust tomorrow's plan
- S/N Scoring: Gamified signal-to-noise ratio (0-100)
Your top priorities, always visible. MILO surfaces what matters right now instead of burying you in endless lists.
- Natural language task capture
- Automatic priority assignment
- Context-aware suggestions
- MCP integration for Claude Code
MILO includes a Model Context Protocol server that lets Claude Code manage your tasks directly:
"Create a task called 'Build login form' with priority 1"
"Show me my signal queue"
"Mark task [id] as complete"
"Create a category called 'Sprint 5'"
17 tools available:
- 11 task tools (CRUD, lifecycle, signal queue, work tracking)
- 6 category tools (projects, organization, reordering)
- 4 read-only resources (signal queue, backlog, categories, today)
See MCP Server README for setup instructions.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MILO Electron App β
β βββ React + TypeScript frontend β
β βββ SQLite database (better-sqlite3) β
β βββ AI integration (Claude API) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
β Shared SQLite Database
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MCP Server (packages/mcp-server) β
β βββ stdio transport for Claude Code β
β βββ Task & Category tools β
β βββ Real-time sync with Electron app β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Frontend: React 18, TypeScript, TailwindCSS
- Desktop: Electron with electron-vite
- Database: SQLite via better-sqlite3
- AI: Anthropic Claude API
- MCP: @modelcontextprotocol/sdk
- Validation: Zod
- Testing: Vitest, Playwright
- Node.js 18+
- npm or pnpm
# Clone the repository
git clone https://github.com/eddiebelaval/milo.git
cd milo
# Install dependencies
npm install
# Start development server
npm run devnpm run dev # Start Electron in dev mode
npm run build # Build for production
npm run build:mac # Build macOS app
npm run test # Run unit tests
npm run test:e2e # Run Playwright E2E tests
npm run mcp # Start MCP server for Claude Code
npm run typecheck # TypeScript type checking
npm run lint # ESLintcd packages/mcp-server
npm install
npm run build
npm run dev # Watch modemilo/
βββ electron/ # Electron main process
β βββ ai/ # AI integration (Claude API)
β βββ services/ # Database, IPC handlers
β βββ main.ts # Entry point
βββ src/ # React renderer
β βββ components/ # UI components
β βββ hooks/ # React hooks
β βββ stores/ # Zustand state
βββ packages/
β βββ mcp-server/ # MCP server for Claude Code
βββ tests/ # E2E tests
-- Tasks table
CREATE TABLE tasks (
id TEXT PRIMARY KEY,
title TEXT NOT NULL,
description TEXT,
status TEXT CHECK(status IN ('pending', 'in_progress', 'completed', 'deferred')),
priority INTEGER CHECK(priority BETWEEN 1 AND 5),
category_id TEXT REFERENCES categories(id),
scheduled_date TEXT,
start_date TEXT,
end_date TEXT,
estimated_days INTEGER DEFAULT 1,
days_worked INTEGER DEFAULT 0,
last_worked_date TEXT,
created_at TEXT,
updated_at TEXT
);
-- Categories table
CREATE TABLE categories (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
color TEXT,
sort_order INTEGER,
created_at TEXT,
updated_at TEXT
);- macOS 10.15+ (Catalina or later)
- Claude API key from Anthropic Console
- ~200MB disk space
- Notion integration (MCP)
- Apple Calendar sync (MCP)
- Apple Notes integration (MCP)
- Time blocking
- Mobile companion app
- Team collaboration
"MILO can't be opened because it is from an unidentified developer" β Right-click the app β Open β Click "Open" in the dialog
Activity monitoring not working β Grant accessibility permissions: System Preferences β Security & Privacy β Privacy β Accessibility β Add MILO
Claude API errors β Verify your API key in Settings β Check your Anthropic account has credits
MIT
Built by ID8Labs - Eddie Belaval
"The goal is not to do more. It's to do what matters."