@ryan_nookpi/pi-extension-todo-write-overlay

Top-right overlay todo_write tool extension for pi.

Package details

extension

Install @ryan_nookpi/pi-extension-todo-write-overlay from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@ryan_nookpi/pi-extension-todo-write-overlay
Package
@ryan_nookpi/pi-extension-todo-write-overlay
Version
0.1.2
Published
Apr 25, 2026
Downloads
294/mo · 294/wk
Author
ryan_nookpi
License
MIT
Types
extension
Size
548.1 KB
Dependencies
0 dependencies · 4 peers
Pi manifest JSON
{
  "extensions": [
    "./index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@ryan_nookpi/pi-extension-todo-write-overlay

pi가 현재 세션에서 구조화된 작업 목록을 만들고 갱신할 수 있게 해주는 todo_write 익스텐션입니다. 할 일 목록은 입력창 위젯이 아니라 우측 상단 passive overlay로 표시됩니다.

todo_write overlay in chat

todo_write overlay progress

설치

pi install npm:@ryan_nookpi/pi-extension-todo-write-overlay

@ryan_nookpi/pi-extension-todo-write와 같은 todo_write 도구 이름을 사용합니다. 두 익스텐션을 동시에 설치하지 않는 것을 권장합니다.

제공 기능

  • todo_write 도구 등록
  • 세션 단위 todo 상태 저장 및 복원
  • 우측 상단 오버레이 렌더링
  • 입력 포커스를 뺏지 않는 nonCapturing overlay 사용
  • /todo-overlay show / /todo-overlay hide 명령으로 오버레이 표시 토글
  • 진행 중 작업 스피너 표시
  • 완료/진행/대기 상태별 색상과 아이콘 표시
  • notes는 상태에는 보존하지만 오버레이에는 표시하지 않음
  • compaction 이후 남은 todo reminder 주입

표시 방식

오버레이는 pi TUI의 ctx.ui.custom(..., { overlay: true })를 사용합니다.

  • 위치: top-right
  • 너비: 42 columns
  • 여백: 위 1줄, 오른쪽 2 columns
  • 표시 조건: 터미널 너비 70 columns 이상
  • 입력 처리: nonCapturing: true

기존 todo-write완료 +2 같은 완료 항목 접기 로직은 사용하지 않습니다. 완료된 항목도 모두 그대로 표시합니다.

명령어

/todo-overlay show
/todo-overlay hide
  • 기본값은 show입니다.
  • hide는 todo 상태와 reminder 주입은 유지하고, 우측 상단 오버레이 UI만 숨깁니다.
  • 인자 없이 /todo-overlay를 실행하면 현재 표시 상태를 알려줍니다.

사용 예

{
  "todos": [
    { "content": "설계 정리", "status": "completed" },
    { "content": "구현", "status": "in_progress", "activeForm": "구현 중" },
    { "content": "검증", "status": "pending" }
  ]
}

상태 필드

  • content: 작업 설명
  • status: pending | in_progress | completed
  • activeForm: 진행 중일 때 오버레이에 보여줄 현재진행형 문구
  • notes: 보조 메모

동작 메모

  • in_progress가 여러 개 들어오면 첫 번째만 유지하고 나머지는 pending으로 정규화합니다.
  • in_progress가 없고 pending이 있으면 첫 번째 pending을 자동으로 in_progress로 올립니다.
  • 모든 항목이 완료되면 잠시 표시한 뒤 자동으로 숨깁니다.