日常执行助手

一个日常执行助手,帮助用户捕捉日常计划、检测偏离、安排工作并提供支持,具有便携性和备份友好的特点。

  • by d3l33t
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 d3l33t/scribble-mcp

使用说明

Scribble

A daily execution co-pilot that captures your day, detects drift, routes work, and provides lift when you need it. Stays portable and backup-friendly.

Mission

  • Capture plans, actions, outcomes, energy/mood
  • Detect drift (overcommitment, context-switching, avoidance)
  • Route work (priorities, next actions, time blocks)
  • Lift encouragement + friction reduction when you need it
  • Portable local-first, DB exportable, minimal vendor lock-in

Non-goals

  • Not a therapist or medical advisor
  • Not a fully autonomous agent making commitments on your behalf
  • Not "remember everything forever" (you define retention tiers)

Quick start

  1. MongoDB — Run MongoDB locally (e.g. mongod) or set MONGO_URI for Atlas.
  2. Config — Copy .env.example to .env and set MONGO_URI, SCRIBBLE_DB if needed.
  3. Build — npm install && npm run build
  4. MCP server — Run npm run mcp (stdio). Configure Cursor:
    • Option A: Copy mcp-config.json into Cursor’s MCP config (macOS: ~/.cursor/config/mcp.json; merge the mcpServers entry into your existing config).
    • Option B: In Cursor: Settings → Features → MCP → Add New MCP Server. Command: node. Args: /Users/nikko/dev/scribble/dist/src/index.js (use your actual path).
    • Option C: If your project uses .cursor/mcp.json, that file is already set up for this repo.
    • Ensure MongoDB is running and npm run build has been run so dist/src/index.js exists.
    • Env: The server loads .env from the project root (so it works when Cursor spawns with a different cwd). If env still isn’t applied, add "env": { "MONGO_URI": "mongodb://localhost:YOUR_PORT", "SCRIBBLE_DB": "scribble" } to the scribble entry in your MCP config.

MCP tools

Tool Purpose
capture Inbox event → returns eventId
triage_inbox Raw captures → task candidates + one question each
plan_day Top 3 + runway + schedule suggestions (WIP limit 5)
next_action One best next action (optional context/energy)
checkin Morning/midday/evening checkin (energy, mood, stress, one win, one worry)
reflect End-of-day recap + pattern notes + tomorrow seed
weekly_review What moved, what didn’t, why
search_memory Query events/tasks with sources (auditability)
export_data Export events/tasks (jsonl or csv); events as primary
create_task Create task from capture (after triage)
get_lift_suggestions Intervention ladder (L1–L4) from checkins, overload, patterns
sync_to_calendar Sync tasks to Apple Calendar (macOS) or export as .ics

Calendar sync (Apple Calendar / .ics)

Sync Scribble tasks (today, top 3, week, or a specific date) to your local Apple Calendar or to an .ics file.

  • From Cursor: Use the sync_to_calendar tool.

    • target: apple_calendar — adds events directly to Calendar.app (macOS). Creates a calendar named "Scribble" (or your calendarName) if it doesn’t exist.
    • target: ics — generates iCalendar content (or write to a file with icsPath).
    • scope: today (today’s due + top 3), top3 (only top 3), week, or YYYY-MM-DD.
  • From CLI:

    # Export today’s tasks to .ics (open in Calendar: File → Import)
    npm run calendar -- --target ics --scope today -o ~/Desktop/scribble.ics
    
    # Add today’s tasks to Apple Calendar (macOS)
    npm run calendar -- --target apple_calendar --scope today --calendar Scribble
    
    # Export this week
    npm run calendar -- --target ics --scope week -o ~/Desktop/scribble-week.ics
    
  • Apple Calendar (macOS): Uses AppleScript to create events in Calendar.app. Each task becomes an event with start = due date and duration = effortMinutes (default 30). No extra npm packages; requires Calendar.app.

  • .ics: Works on any OS. Open the file in Calendar (File → Import) or double-click to add events.

Export (CLI)

node dist/src/cli/export.js --format jsonl --since 2025-01-01 -o backup.jsonl
node dist/src/cli/export.js --format csv --until 2025-01-31 --exclude-tags private_sensitive

Events are the primary truth; exports lead with events (JSONL).

Config

  • Tags/contexts — config/contexts.json (work, ampd, city, family, health, etc.)
  • Retention — config/retention.json (ephemeral 7–30d, durable forever)
  • Templates — config/templates/personal-ops-atc.json, config/templates/work-only.json

Data model (Mongo)

  • events — type, payload, source, ts, timezone, confidence, tags (event-sourced primary truth)
  • tasks — title, status (inbox/next/doing/waiting/done/someday), projectId, context, energyCost, effortMinutes, due, priority, why, createdFromEventId
  • projects — name, goals, constraints, successMetric, stakeholders
  • checkins — type (morning/midday/evening), date, energy, mood, stress, oneWin, oneWorry
  • patterns — triggers, interventions, effectivenessScore (learned heuristics)
  • assistant_templates — role, domains, tone, cadence, toolPermissions, retentionPolicy, escalationPolicy

Rules

  • Top 3 — Max 3 outcomes/day; max 5 active “doing” (WIP limit)
  • Checkin questions — Energy 1–5, Mood 1–5, Stress 1–5, One win, One worry
  • Auditability — search_memory and suggestions return source (event/task ids)
  • User-controlled memory — Export and delete by tag/category

License

MIT