2026.10.12 월
GSD Task Manager: 내 할 일 목록을 에이전트에게도 열어 주기
오늘의 픽: GSD Task Manager
GSD Task Manager 는 할 일을 사분면으로 정리하는 오픈소스 프로덕트다. 브라우저 앱이 할 일을 긴급한가와 중요한가 두 축으로 나누고, MCP 서버로 에이전트도 같은 목록을 읽고 쓴다.
오늘의 픽으로 선정한 이유는 에이전트와 할 일 목록을 공유하려면 무엇을 포기해야 하는지를 구조가 그대로 보여 주어서다.

- 출처
- Show HN
- 만든 방식
- TypeScript, Next.js, Dexie, PocketBase, Claude, Cursor Agent
무엇이 문제인가
할 일 앱은 사용자가 화면에서 직접 쓰도록 만들어져 있다. 에이전트에게 할 일을 맡기고 싶으면 흔히 마크다운 파일을 만들어 에이전트가 고치게 한다. Show HN개발자 커뮤니티 Hacker News 에서 자신이 만든 프로덕트를 소개하는 글. 제목이 "Show HN:"으로 시작한다. 스레드의 첫 댓글에도 같은 말이 있고, todo.txt 는 사용자에게도 로봇에게도 통한다는 답글도 있다. 파일은 간단하지만 구조가 없다. 어느 일이 긴급하고 어느 일이 중요한지는 사용자 머릿속에만 있고, 에이전트가 무엇을 바꿨는지는 바뀐 뒤에야 안다. 사용자는 앱을 사용하고 에이전트는 파일을 보니, 둘이 따로 논다.
어떻게 해결했나
GSD Task Manager 는 앱을 그대로 두고 에이전트도 같은 앱에 접근하게 한다. 브라우저 앱은 할 일을 긴급·중요 두 축의 사분면에 놓고, MCPModel Context Protocol. AI 모델을 외부 도구와 데이터에 연결하는 방식을 정의한 규격이다. 서버는 같은 목록을 도구 19개로 연다. 쓰기 도구 5개는 전부 dryRun 을 받아 적용 전에 결과를 미리 보여 준다. 에이전트가 할 일을 만들거나 옮기면 스키마로 검증되고, 사용자는 같은 사분면에서 그것을 본다. 에이전트에게 마크다운 파일 대신 검증되는 도구와 사분면 구조를 준다.
무엇이 다른가
단, 조건이 있다. 사용자와 에이전트가 서로 다른 저장소를 본다. 브라우저 앱은 모든 할 일을 IndexedDB브라우저에 들어 있는 로컬 데이터베이스. 웹 앱이 서버 없이 자료를 저장할 때 쓴다.에 저장하고 계정도 서버도 없이 작동한다. 그래서 화면 머리글에 "Saved locally" 가 표시된다. 반면 MCP 서버는 Node 프로세스라 브라우저의 IndexedDB 에 접근할 수 없고, PocketBase 동기화 서버에만 접속한다. PocketBase 는 백엔드이고 단일 바이너리로 배포된다. 동기화는 선택 사항이다. 설계 기록 ADR 0005 에 이 한계와 검토한 대안이 적혀 있다. 브라우저 확장, WASM 으로 IndexedDB 읽기, localhost 웹소켓 서버를 저울질했고, 세 가지 모두 버리고 별도 패키지로 만들어 stdio 로 통신하게 했다. 할 일 목록을 사용자는 앱으로, 에이전트는 도구로 함께 읽고 쓸 수 있다. 단, 할 일이 브라우저에만 머물지 않고, 동기화 서버도 운영해야 한다.
어떻게 만들었나
- 커밋 669개가 2025-10-04 부터 런칭 전날까지 이어진다.
- 커밋 188개의 Co-authored-by 트레일러에 Claude 가 적혀 있고, 표기는 Claude Opus 4.5 에서 4.6, 4.8, Fable 5.1 로 바뀌어 간다. Cursor Agent 17개, Copilot 12개, Devin 7개.
- 저장소 루트에 CLAUDE.md, AGENTS.md저장소에 두는, AI 코딩 에이전트용 작업 규칙 파일., .claude, .codex 디렉토리가 있고, 설계 결정은 ADR 17개로 기록돼 있다.
- README 에는 어떻게 만들었는지 적혀 있지 않다.
실행해 보니
설치한 뒤 아래 순서로 시험했다.
- 설치와 실행.
bun install에 4.7초가 걸렸고,bun dev로 바로 실행됐다. - 로컬 저장. 계정도 키도 없이 할 일 네 개를 만들었고, 새로고침 뒤에도 유지됐다. 그 사이 브라우저는 요청을 205개 보냈고, 전부 localhost 였다.
- 빠른 입력. 할 일을 표시 없이 적으면 "Eliminate" 칸에 들어가고, 끝에
*를 붙여야 "Schedule" 칸에 들어간다. 빠른 입력의 기본값이 "버릴 것"이라는 뜻이다. - MCP 서버.
tsc로 빌드한 뒤 stdio 로 연결해 도구 목록을 조회했다. 19개였고, 설계 기록의 20개와 다르다. list_devices 가 빠졌다. - 백엔드 없이 호출. create_task 를 dryRun 으로 호출하자 미리보기를 반환했고, get_sync_status 는 healthy false 를 반환했다. 즉 MCP 서버는 실행되지만, 동기화 서버와 OAuth 로그인 없이는 할 일 하나 읽지 못한다.
- README 대조. README 에 적힌 세 가지는 모두 확인됐고, 도구 수만 README 에는 19개, ADR 에는 20개로 다르게 적혀 있다.
- 정적 빌드. 38초가 걸렸고 결과물은 4.3 MB 였다.
connected in 274 ms; tools: 19
create_task dryRun -> DRY RUN - Task would be created (not saved)
get_sync_status -> "healthy": false, "authenticated": false

확인하지 못한 것
- PocketBase 연동. 확인하려면 PocketBase 를 설치해 실행하고 OAuth 로 로그인한 뒤 MCP 도구로 실제 할 일을 작성해야 한다.
- lib/sync/ 의 마지막 쓰기 우선 충돌 처리(ADR 0003). 에이전트와 사용자가 같은 할 일을 동시에 고치면 어느 쪽이 남는지 다음에 확인하자.
판정
작동한다. 브라우저 앱은 명령 두 줄로 로컬에서 실행된다. 다만 에이전트가 같은 목록을 보려면 동기화 서버와 OAuth 로그인이 먼저 필요하다. 브라우저에서 할 일을 사분면에 배치해 우선순위를 정하고 싶고 에이전트 연결은 나중 문제인 경우에 써 볼 만하다. 에이전트에게 할 일을 맡기기만 하려면 마크다운 파일이 더 간단하다. PocketBase 동기화 서버를 직접 운영한다면 이 프로덕트가 더 좋은 선택이다.
얻어갈 것
- 사용자의 데이터를 에이전트도 읽고 쓰게 하려면 데이터를 어디에 저장할지부터 정하자. GSD 는 브라우저 저장소를 지키느라 에이전트에게는 동기화 서버가 따로 필요해졌다.
- 에이전트용 쓰기 도구에는 dryRun 을 넣어 적용 전 결과를 반환하게 하면 된다. 여기서는 쓰기 도구 5개 전부가 그렇게 돼 있다.
- 문서의 숫자와 코드의 숫자가 같은지 확인해 보자. README 는 도구 19개, 설계 기록은 20개였다.
시작하기
git clone https://github.com/vscarpenter/gsd-task-manager.gitbun installbun dev
- 필요한 것
- Bun 1.3 · Node.js 22.22 이상 · MCP 서버를 쓰려면 PocketBase 동기화 서버와 Google 또는 GitHub OAuth 로그인
- 비용
- MIT 라이선스, 무료. 동기화는 PocketBase 를 직접 운영해야 하고 저장소의 docker/ 에 구성이 있다. 호스팅판 gsd.vinny.dev 의 가격 표기는 찾지 못했다.
MCP 서버는 npm install --global gsd-mcp-server@1.3.0 뒤 gsd-mcp-server --setup 으로 Claude Desktop 설정 파일을 만든다.
실행해서 확인한 절차다.
진행
- 3일확인 못 함
- 7일활발
- 15일활발
- 30일예정
- 90일예정
- 180일예정
- 365일예정
최근 확인 15일, 2026.10.26 월
- 런칭 이후 커밋
- 40
- 스타
- 40
- 최신 릴리스
- v13.9.9
- 마지막 커밋
- 2026.10.24
- 보안 권고가 나온 의존성 zod, body-parser, undici 를 취약점이 수정된 버전으로 업데이트했다.
- 브라우저 글자 크기를 키우면 화면이 옆으로 스크롤되지 않고 글자 크기에 맞게 다시 배치된다.
- 접근성 점검에서 나온 키보드, 터치, 대화상자, 명암 문제를 수정했다(v13.9.9).
- iPhone Safari 에서 드로어와 팔레트의 입력란을 누르면 화면이 확대되던 문제를 수정했다(v13.9.9).
3일 확인 못 함: 진행 확인을 2026.10.16 에 시작해서 그 전에는 확인하지 못했다.