Show HN:GSD Task Manager——为 AI Agent 提供任务列表的 MCP 服务器
英文标题:🔶 Show HN: GSD Task Manager – an MCP server that gives your AI agent a task list
GSD Task Manager 是一款以隐私优先为理念的艾森豪威尔矩阵任务管理工具,默认将任务保存在浏览器 IndexedDB 中,并支持离线 PWA 使用。项目提供可选的 PocketBase 多设备同步,以及一个可单独安装的 MCP server,内含 19 个任务、分析和诊断工具,并支持经过校验及可 dry-run 的写入操作。对开发者而言,该项目采用 Next.js、React、TypeScript、Dexie、PocketBase、Vitest 和 Playwright 等技术栈,并提供本地部署、测试、构建与安全边界文档。
5.8 KB
32.8 KB
56.4 KB
中文
一个隐私优先的艾森豪威尔矩阵,用于决定应立即执行、安排、委派还是取消哪些事项。
在线应用: gsd.vinny.dev 当前版本: 13.9.2 当前产品: v11 单矩阵 shell、离线优先的本地存储、可选的 PocketBase 同步,以及 GSD MCP server。
- 支持拖放移动的响应式四象限矩阵。
- Quick Capture、完整任务编辑、搜索、键盘导航,以及可选的内置 Smart Views。
- 截止日期、标签、依赖项选择和循环依赖防护。
- 归档、仪表盘/回顾分析、同步历史、设置和引导流程。
- 本地 IndexedDB 持久化、JSON 导入/导出、离线 PWA 支持,以及由用户控制的更新提示。
- 可选的多设备 PocketBase 同步,支持 Google、Apple 或 GitHub OAuth,以及实时 server-sent events。
- 可单独安装的 MCP server,提供 19 个任务、分析和诊断工具,包括经过校验且支持 dry-run 的写入操作。
- 浅色和深色 Inkwell “GSD Editorial”主题,并以 WCAG AA 作为无障碍访问的最低标准。
已弃用的 v7/v8 界面功能,例如选择模式批量操作、Quick Settings 面板和 Smart View 固定快捷方式,均不属于 v11 shell。
仅本地模式是默认设置。任务存储在浏览器的 IndexedDB 中,核心产品不需要后端。清除浏览器数据可能会删除本地任务,因此请定期导出备份。
云同步明确为可选功能。启用后,任务数据将发送至已配置的 PocketBase 服务器;托管配置使用 https://api.vinny.io。自托管说明和静态加密 hooks 位于 docker/ 下。有关准确的信任模型和令牌存储方式,请参阅 SECURITY.md。
艾森豪威尔矩阵按紧急性和重要性对工作进行分类:
- 立即执行(Do First) —— 紧急且重要。
- 安排(Schedule) —— 重要但不紧急。
- 委派(Delegate) —— 紧急但不重要。
- 取消(Eliminate) —— 既不紧急也不重要。
使用 Quick Capture 输入框,或按 n 开始创建任务。使用 Shift+N 打开完整编辑器,/ 用于搜索,? 用于帮助,Option+1 至 Option+4(非 Mac 键盘上使用 Alt)用于聚焦某个象限。应用内帮助抽屉是快捷键的权威清单。
要求:Bun 1.3.14、Node.js 22.22.2+(或 24.15+、26+),以及最新版浏览器。bun run 会在 Node 上执行 package scripts,因此测试、lint 和构建均会在已安装的 Node 环境中运行。
打开 http://localhost:3000。全新的浏览器配置文件会从 /about 开始;使用 Open App 行动按钮进入矩阵。PocketBase 并非本地任务 CRUD 所必需。
bun run test
bun run test -- --coverage
bun typecheck
bun lint
bun run quality:shape
bun run license:check
bun audit --audit-level=high
bun run build
bun run test:e2e
请使用 bun run test,而不是 bun test;后者会调用 Bun 的内置运行器,而非 Vitest。Playwright 覆盖 Chromium、Firefox 和 WebKit。可选的、需要认证的 PocketBase 测试 harness 可通过以下命令运行:
bun run test:system:pocketbase
- Next.js 16 App Router 静态导出;应用为客户端应用。
- React 19、TypeScript、Tailwind CSS 和 Violet Frost Inkwell tokens。
- 使用 Dexie/IndexedDB 存储本地数据,使用 PocketBase 提供可选云同步。
- 使用 Vitest 覆盖单元/集成测试,使用 Playwright 覆盖浏览器测试。
- Bun workspaces,包括
packages/mcp-server/。
请从 ARCHITECTURE.md、docs/security-trust-boundaries.md 和 docs/adr/ 中的架构决策开始阅读。
bun run build会在out/中创建静态导出。bun run deploy会运行生产部署脚本。生产环境(gsd.vinny.dev)是唯一的部署目标;开发环境部署已于 2026-09-11 停用。docker/Dockerfile用于构建自托管的 Caddy 和 PocketBase 镜像。cloudfront/response-headers-policy.json及相关脚本用于管理生产环境响应头。
上传构建产物并不能证明 CDN 或正在运行的容器确实在提供该产物。请单独验证已部署的 URL。
发布文档检查清单
在更改发布版本或宣布某项功能前:
- 对比 README 中的版本与
package.json。 - 验证当前 shell 中的每一项功能声明,而不仅是保留的数据模型或已归档的 ADR。
- 运行上述标准检查以及一次生产静态构建。
- 当发布版本改变 GitHub release notes、
SECURITY.md和信任边界图中的声明时,更新这些内容。 - 将源代码、测试、构建产物、部署和线上运行时视为相互独立的证据状态。
贡献与安全
进行修改前,请阅读 CONTRIBUTING.md。请通过 SECURITY.md 中的私密流程报告漏洞,而不要提交公开 issue。
English / 原文
A privacy-first Eisenhower matrix for deciding what to do, schedule, delegate, or eliminate.
Live app: gsd.vinny.dev Current version: 13.9.2 Current product: the v11 single-matrix shell, offline-first local storage, optional PocketBase sync, and the GSD MCP server.
- A responsive four-quadrant matrix with drag-and-drop movement.
- Quick Capture, full task editing, search, keyboard navigation, and optional built-in Smart Views.
- Due dates, tags, dependency selection, and circular-dependency prevention.
- Archive, dashboard/review analytics, sync history, settings, and onboarding.
- Local IndexedDB persistence, JSON import/export, offline PWA support, and user-controlled update prompts.
- Optional multi-device PocketBase sync with Google, Apple, or GitHub OAuth and realtime server-sent events.
- A separately installed MCP server with 19 task, analytics, and diagnostic tools, including validated and dry-run-aware writes.
- Light and dark Inkwell "GSD Editorial" themes with WCAG AA as the accessibility floor.
Retired 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.
Local-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.
Cloud sync is explicitly optional. When enabled, task data is sent to the configured PocketBase server; the hosted configuration uses https://api.vinny.io. Self-hosting instructions and the encryption-at-rest hooks live under docker/. See SECURITY.md for the precise trust and token-storage posture.
The Eisenhower matrix classifies work by urgency and importance:
- Do First — urgent and important.
- Schedule — important, not urgent.
- Delegate — urgent, not important.
- Eliminate — neither urgent nor important.
Use the Quick Capture field or press n to start a task. Use Shift+N for the full composer, / for search, ? for help, and Option+1 through Option+4 (Alt on non-Mac keyboards) to focus a quadrant. The in-app help drawer is the canonical shortcut ledger.
Requirements: Bun 1.3.14, Node.js 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.
Open http://localhost:3000. A fresh browser profile starts at /about; use the Open App call to action to enter the matrix. PocketBase is not required for local task CRUD.
bun run test
bun run test -- --coverage
bun typecheck
bun lint
bun run quality:shape
bun run license:check
bun audit --audit-level=high
bun run build
bun run test:e2e
Use bun run test, not bun test; the latter invokes Bun's built-in runner instead of Vitest. Playwright covers Chromium, Firefox, and WebKit. The optional authenticated PocketBase harness runs with:
bun run test:system:pocketbase
- Next.js 16 App Router static export; the application is client-side.
- React 19, TypeScript, Tailwind CSS, and the Violet Frost Inkwell tokens.
- Dexie/IndexedDB for local data and PocketBase for optional cloud sync.
- Vitest for unit/integration coverage and Playwright for browser coverage.
- Bun workspaces, including
packages/mcp-server/.
Start with ARCHITECTURE.md, docs/security-trust-boundaries.md, and the architecture decisions in docs/adr/.
bun run buildcreates the static export inout/.bun run deployruns the production deployment script. Production (gsd.vinny.dev) is the only deploy target; the development deploy was retired on 2026-09-11.docker/Dockerfilebuilds the self-hosted Caddy and PocketBase image.cloudfront/response-headers-policy.jsonand the related scripts manage production response headers.
Uploading an artifact is not proof that the CDN or a running container serves it. Verify the deployed URL separately.
Release documentation checklist
Before changing the release version or announcing a feature:
- Compare the README version with
package.json. - Verify every feature claim in the current shell, not only in retained data models or archived ADRs.
- Run the canonical checks above and a production static build.
- Update the GitHub release notes,
SECURITY.md, and the trust-boundary map when the release changes their claims. - Treat source, tests, build artifacts, deployment, and live runtime as separate evidence states.
Contributing and security
Read CONTRIBUTING.md before making changes. Report vulnerabilities through the private process in SECURITY.md, not a public issue.
