An elegant, keyboard-driven terminal checklist and task manager built with Ink, React, and TypeScript.
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ ๐ CHECKLIST CLI Done: 2/4 (50%) โ
โ โ
โ โฏ [ ] Deploy new release to production โ
โ [โ] Review pull request #12 โ
โ [ ] Write integration test cases โ
โ [โ] Update project documentation โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ [โ/โ] Move [Space] Toggle [a] Add [d] Delete [c] Clear [q] โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
- โก Lightweight & Fast: Launches instantly in your terminal.
- โจ๏ธ Vim & Arrow Key Navigation: Navigate seamlessly using arrows or standard
j/kkeys. - ๐พ Automatic Local Persistence: All changes save automatically to
~/.checklist-tasks.json, so your list stays intact across sessions and directories. - ๐ Live Progress Tracking: Real-time completion counter and percentage indicator.
- ๐ Inline Task Creation: Create tasks on the fly with a built-in interactive input prompt.
- ๐ Educational Source Code: Every file is thoroughly documented with star-block comments (
/** ... */) explaining how Ink, Yoga Flexbox layout, terminal hooks, and CLI inputs function.
When you initialize the project with create-ink-app, a local symlink is created automatically. You can launch the CLI from any terminal session:
checklist-cliNote: If the command is not recognized, link it to your global Node environment by running
npm linkinside the project folder.
You can also build and run the compiled output directly:
# Compile TypeScript
pnpm run build
# Launch the CLI
node dist/cli.js| Shortcut | Description |
|---|---|
โ or k |
Move selection cursor up |
โ or j |
Move selection cursor down |
Space or Enter |
Toggle completed / pending status |
a |
Enter Add Mode to create a new task |
Enter (in Add Mode) |
Save new task |
Esc (in Add Mode) |
Cancel and return to list |
d or x |
Delete currently selected task |
c |
Clear all completed tasks |
q or Esc |
Gracefully quit the application |
Your checklist items are saved automatically to your user home directory:
~/.checklist-tasks.json
Because it saves to your home folder, you can run checklist-cli from any directory on your computer and always see your personal task list. If the file does not exist yet, default onboarding tasks will guide you on your first launch.
# Install dependencies
pnpm install
# Watch mode for rapid development
pnpm run dev# Run tests, format checker, and linter (Prettier + XO + AVA)
pnpm test
# Build production bundle
pnpm run buildIf you plan to publish this package to the public npm registry for others to install:
- Update the
"name"field inpackage.jsonwith a unique or scoped name (e.g.,@yourusername/checklist-cli). - Log into npm:
npm login
- Publish:
npm publish --access public
This project is licensed under the MIT License.