{"slug": "show-hn-gsd-task-manager-an-mcp-server-that-gives-your-ai-agent-a-task-list", "title": "Show HN: GSD Task Manager – an MCP server that gives your AI agent a task list", "summary": "Developer vscarpenter released GSD Task Manager version 13.9.2, an offline-first Eisenhower matrix task app that ships with a separately installed MCP server exposing 19 task, analytics, and diagnostic tools to AI agents. The app stores tasks locally in the browser's IndexedDB by default, with optional PocketBase cloud sync to https://api.vinny.io, and requires Bun 1.3.14 and Node.js 22.22.2+ (or 24.15+ or 26+). The MCP server includes validated and dry-run-aware writes, positioning the task list as a tool surface AI agents can read and modify.", "body_md": "A privacy-first Eisenhower matrix for deciding what to do, schedule, delegate, or eliminate.\n\n**Live app:** [gsd.vinny.dev](https://gsd.vinny.dev)\n**Current version:** 13.9.2\n**Current product:** the v11 single-matrix shell, offline-first local storage,\noptional PocketBase sync, and the GSD MCP server.\n\n- A responsive four-quadrant matrix with drag-and-drop movement.\n- Quick Capture, full task editing, search, keyboard navigation, and optional built-in Smart Views.\n- Due dates, tags, dependency selection, and circular-dependency prevention.\n- Archive, dashboard/review analytics, sync history, settings, and onboarding.\n- Local IndexedDB persistence, JSON import/export, offline PWA support, and user-controlled update prompts.\n- Optional multi-device PocketBase sync with Google, Apple, or GitHub OAuth and realtime server-sent events.\n- A separately installed MCP server with 19 task, analytics, and diagnostic tools, including validated and dry-run-aware writes.\n- Light and dark Inkwell \"GSD Editorial\" themes with WCAG AA as the accessibility floor.\n\nRetired v7/v8 surfaces such as selection-mode batch operations, the Quick Settings panel, and smart-view pinning shortcuts are not part of the v11 shell.\n\nLocal-only mode is the default. Tasks are stored in the browser's IndexedDB and the core product does not require a backend. Clearing browser data can erase local tasks, so export backups regularly.\n\nCloud sync is explicitly optional. When enabled, task data is sent to the\nconfigured PocketBase server; the hosted configuration uses\n`https://api.vinny.io`. Self-hosting instructions and the encryption-at-rest\nhooks live under [`docker/`](https://github.com/vscarpenter/gsd-task-manager/blob/main/docker). See [` SECURITY.md`](https://github.com/vscarpenter/gsd-task-manager/blob/main/SECURITY.md) for the\nprecise trust and token-storage posture.\n\nThe Eisenhower matrix classifies work by urgency and importance:\n\n- **Do First** — urgent and important.\n- **Schedule** — important, not urgent.\n- **Delegate** — urgent, not important.\n- **Eliminate** — neither urgent nor important.\n\nUse the Quick Capture field or press `n` to start a task. Use `Shift+N` for the\nfull composer, `/` for search, `?` for help, and `Option+1` through `Option+4`\n(`Alt` on non-Mac keyboards) to focus a quadrant. The in-app help drawer is the\ncanonical shortcut ledger.\n\nRequirements: [Bun](https://bun.sh/) 1.3.14, [Node.js](https://nodejs.org/) 22.22.2+ (or 24.15+ or 26+), and a current browser. `bun run` executes package scripts on Node, so tests, lint, and builds run on your installed Node.\n\n```\nbun install\nbun dev\n```\n\nOpen `http://localhost:3000`. A fresh browser profile starts at `/about`; use\nthe **Open App** call to action to enter the matrix. PocketBase is not required\nfor local task CRUD.\n\n```\nbun run test\nbun run test -- --coverage\nbun typecheck\nbun lint\nbun run quality:shape\nbun run license:check\nbun audit --audit-level=high\nbun run build\nbun run test:e2e\n```\n\nUse `bun run test`, not `bun test`; the latter invokes Bun's built-in runner\ninstead of Vitest. Playwright covers Chromium, Firefox, and WebKit. The optional\nauthenticated PocketBase harness runs with:\n\n```\nbun run test:system:pocketbase\n```\n\n- Next.js 16 App Router static export; the application is client-side.\n- React 19, TypeScript, Tailwind CSS, and the Violet Frost Inkwell tokens.\n- Dexie/IndexedDB for local data and PocketBase for optional cloud sync.\n- Vitest for unit/integration coverage and Playwright for browser coverage.\n- Bun workspaces, including [`packages/mcp-server/`](https://github.com/vscarpenter/gsd-task-manager/blob/main/packages/mcp-server) .\n\nStart with [`ARCHITECTURE.md`](https://github.com/vscarpenter/gsd-task-manager/blob/main/ARCHITECTURE.md),\n[`docs/security-trust-boundaries.md`](https://github.com/vscarpenter/gsd-task-manager/blob/main/docs/security-trust-boundaries.md), and\nthe architecture decisions in [`docs/adr/`](https://github.com/vscarpenter/gsd-task-manager/blob/main/docs/adr).\n\n- `bun run build` creates the static export in`out/` .\n- `bun run deploy` runs the production deployment script. Production\n(gsd.vinny.dev) is the only deploy target; the development deploy was\nretired on 2026-09-11.\n- [`docker/Dockerfile`](https://github.com/vscarpenter/gsd-task-manager/blob/main/docker/Dockerfile) builds the self-hosted Caddy and\nPocketBase image.\n- [`cloudfront/response-headers-policy.json`](https://github.com/vscarpenter/gsd-task-manager/blob/main/cloudfront/response-headers-policy.json) and the related scripts manage production response headers.\n\nUploading an artifact is not proof that the CDN or a running container serves it. Verify the deployed URL separately.\n\nBefore changing the release version or announcing a feature:\n\n1. Compare the README version with `package.json` .\n2. Verify every feature claim in the current shell, not only in retained data models or archived ADRs.\n3. Run the canonical checks above and a production static build.\n4. Update the GitHub release notes, `SECURITY.md` , and the trust-boundary map\nwhen the release changes their claims.\n5. Treat source, tests, build artifacts, deployment, and live runtime as separate evidence states.\n\nRead [`CONTRIBUTING.md`](https://github.com/vscarpenter/gsd-task-manager/blob/main/CONTRIBUTING.md) before making changes. Report\nvulnerabilities through the private process in [`SECURITY.md`](https://github.com/vscarpenter/gsd-task-manager/blob/main/SECURITY.md),\nnot a public issue.", "url": "https://wpnews.pro/news/show-hn-gsd-task-manager-an-mcp-server-that-gives-your-ai-agent-a-task-list", "canonical_source": "https://github.com/vscarpenter/gsd-task-manager", "published_at": "2026-10-11 03:42:56+00:00", "updated_at": "2026-10-11 04:19:58.134728+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "developer-tools"], "entities": ["GSD Task Manager", "vscarpenter", "PocketBase", "Bun", "Node.js", "Next.js", "React", "Vitest"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-gsd-task-manager-an-mcp-server-that-gives-your-ai-agent-a-task-list", "markdown": "https://wpnews.pro/news/show-hn-gsd-task-manager-an-mcp-server-that-gives-your-ai-agent-a-task-list.md", "text": "https://wpnews.pro/news/show-hn-gsd-task-manager-an-mcp-server-that-gives-your-ai-agent-a-task-list.txt", "jsonld": "https://wpnews.pro/news/show-hn-gsd-task-manager-an-mcp-server-that-gives-your-ai-agent-a-task-list.jsonld"}}