{"_id":"@annguyenvanchuc/todo","_rev":"5-e461437d5e6b98eef67cdff6bf639e4e","name":"@annguyenvanchuc/todo","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@annguyenvanchuc/todo","version":"1.0.0","_id":"@annguyenvanchuc/todo@1.0.0","maintainers":[{"name":"annguyenwasd","email":"an.nguyenwasd@gmail.com"}],"bin":{"todo":"dist/cli.js"},"dist":{"shasum":"2f8159d0120da087d0618dfe18387647d08258df","tarball":"https://registry.npmjs.org/@annguyenvanchuc/todo/-/todo-1.0.0.tgz","fileCount":51,"integrity":"sha512-uaHK192M0iNTJz5q4AGEDQgkfU7yQ/Tukz/t+XIK9Z9oomOMBwJXF+vAhDLLwPNFyPMagC7UtA30fG7r/NuuPg==","signatures":[{"sig":"MEQCIDMZXzb2SvC0hg/Lwm0AHhPtsv8mrNiUjiOjuq0d2pTVAiA8u9tkdOwKfIB9XkfnKbEq8p8mXUIM8EK3fEY6VuGbrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108137},"type":"module","gitHead":"d5459529d3c3cbb6701fdd09bab3bba091ff4cfa","scripts":{"dev":"tsc && node dist/cli.js","build":"tsc","start":"node dist/cli.js","install:local":"npm run build && npm install -g .","prepublishOnly":"npm run build","publish:public":"npm publish --access public"},"_npmUser":{"name":"annguyenwasd","email":"an.nguyenwasd@gmail.com"},"_npmVersion":"11.12.1","description":"A keyboard-driven kanban board in your terminal.","directories":{},"_nodeVersion":"25.8.0","dependencies":{"ink":"^7.0.0","react":"^19.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.6.0","@types/react":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/todo_1.0.0_1776097729779_0.4622791169233442","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@annguyenvanchuc/todo","version":"1.0.1","keywords":["todo","cli","task-manager","kanban","ink","react","typescript"],"_id":"@annguyenvanchuc/todo@1.0.1","maintainers":[{"name":"annguyenwasd","email":"an.nguyenwasd@gmail.com"}],"homepage":"https://github.com/annguyenvanchuc/todo","bin":{"todo":"dist/cli.js"},"dist":{"shasum":"8ac0d7333989e2f60a0a878e37de83b5302f9fc3","tarball":"https://registry.npmjs.org/@annguyenvanchuc/todo/-/todo-1.0.1.tgz","fileCount":51,"integrity":"sha512-zn47aXpo5HhquxdT0YHSL7+HiTu8hBHA+ocuLKLRFChXM9wvW5Z5ZUIfFOD4+y+bEhG1lLjHgGnRIsAIXSps3A==","signatures":[{"sig":"MEYCIQCQyhEnz/4KY6Gu2CtrSkDgYES06HQPLuSSK1nhQrBIVwIhANDbu+aOJUnnhJWsd7n3l/KGPZO9gO/esCgKntSkph5/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108561},"type":"module","gitHead":"934319198cb22a1282c5d97b519ed32151004512","scripts":{"dev":"tsc && node dist/cli.js","build":"tsc","start":"node dist/cli.js","install:local":"npm run build && npm install -g .","prepublishOnly":"npm run build","publish:public":"npm publish --access public"},"_npmUser":{"name":"annguyenwasd","email":"an.nguyenwasd@gmail.com"},"_npmVersion":"11.12.1","description":"A keyboard-driven kanban board in your terminal.","directories":{},"_nodeVersion":"25.8.0","dependencies":{"ink":"^7.0.0","react":"^19.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.6.0","@types/react":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/todo_1.0.1_1776098238323_0.5421129288984248","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@annguyenvanchuc/todo","version":"1.0.2","keywords":["todo","cli","task-manager","kanban","ink","react","typescript"],"_id":"@annguyenvanchuc/todo@1.0.2","maintainers":[{"name":"annguyenwasd","email":"an.nguyenwasd@gmail.com"}],"homepage":"https://github.com/annguyenwasd/todo","bin":{"todo":"dist/cli.js"},"dist":{"shasum":"cc87bd5e3cbf755a2317afddad5ce6e2c83cbe02","tarball":"https://registry.npmjs.org/@annguyenvanchuc/todo/-/todo-1.0.2.tgz","fileCount":51,"integrity":"sha512-Erjq+Z2m0cpf+cYFATe6cxQdJiF8VHY9T9Pww6/AXf3IcEnEWCws/rpaI+wiRwJYfqxb56czRvNpdAzHIdq9qg==","signatures":[{"sig":"MEUCIDWkxzdDulvt6TwkAyVXfHeJNCaqQkQwcXnrcdhKwnZTAiEAofW/NgtXcVLUVWEWGHfGwJJvXxrS4q5ZSJ3qABjv1Yg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108561},"type":"module","gitHead":"5e645eb7ba44c4b468c879e555f939e69cb73e5c","scripts":{"dev":"tsc && node dist/cli.js","build":"tsc","start":"node dist/cli.js","install:local":"npm run build && npm install -g .","prepublishOnly":"npm run build","publish:public":"npm publish --access public"},"_npmUser":{"name":"annguyenwasd","email":"an.nguyenwasd@gmail.com"},"_npmVersion":"11.12.1","description":"A keyboard-driven kanban board in your terminal.","directories":{},"_nodeVersion":"25.8.0","dependencies":{"ink":"^7.0.0","react":"^19.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.6.0","@types/react":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/todo_1.0.2_1776385093132_0.1415470470139919","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@annguyenvanchuc/todo","version":"1.1.0","keywords":["todo","cli","task-manager","kanban","ink","react","typescript"],"_id":"@annguyenvanchuc/todo@1.1.0","maintainers":[{"name":"annguyenwasd","email":"an.nguyenwasd@gmail.com"}],"homepage":"https://github.com/annguyenwasd/todo","bin":{"todo":"dist/cli.js"},"dist":{"shasum":"7f7c67ccae18c61487fbc4ff48e3e708ac6eb1e6","tarball":"https://registry.npmjs.org/@annguyenvanchuc/todo/-/todo-1.1.0.tgz","fileCount":55,"integrity":"sha512-Cm5X4DwWRQWcRi83Mx5WUiZvHLd2ZlOB/VmUiTvYmEJ7Q+jTEeaJDL+va9jEtTLLxJmu4ZOuA5mAg767tD0A3g==","signatures":[{"sig":"MEUCIQCiPaQeMEPP5zXMJd1ng3kV7SvUQWadS2zLnRaydoQiDAIgK2P0fcrHofLFt+3MdNvM72yxFVC3FzSBqbjEAIpIDgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111574},"type":"module","gitHead":"a5be43ba1a8f6f394e519186754318cfa0160fc2","scripts":{"dev":"tsc && node dist/cli.js","build":"tsc","start":"node dist/cli.js","install:local":"npm run build && npm install -g .","prepublishOnly":"npm run build","publish:public":"npm publish --access public"},"_npmUser":{"name":"annguyenwasd","email":"an.nguyenwasd@gmail.com"},"_npmVersion":"11.12.1","description":"A keyboard-driven kanban board in your terminal.","directories":{},"_nodeVersion":"25.8.0","dependencies":{"ink":"^7.0.0","react":"^19.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.6.0","@types/react":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/todo_1.1.0_1776573617980_0.8165063159077861","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@annguyenvanchuc/todo","version":"1.2.0","homepage":"https://github.com/annguyenwasd/todo","keywords":["todo","cli","task-manager","kanban","ink","react","typescript"],"type":"module","bin":{"todo":"dist/cli.js"},"scripts":{"dev":"tsc && node dist/cli.js","build":"tsc","prepublishOnly":"npm run build","postpublish":"VERSION=$(node -p \"require('./package.json').version\") && gh release create \"v$VERSION\" --title \"v$VERSION\" --generate-notes 2>/dev/null || true","publish:public":"npm publish --access public","install:local":"npm run build && npm install -g .","start":"node dist/cli.js"},"dependencies":{"ink":"^7.0.0","react":"^19.0.0"},"devDependencies":{"@types/node":"^25.6.0","@types/react":"^19.0.0","typescript":"^5.0.0"},"gitHead":"2b62756b486880dd2d55a43a9b26cf4dcf427188","_id":"@annguyenvanchuc/todo@1.2.0","description":"A keyboard-driven kanban board in your terminal.","_nodeVersion":"25.8.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-CZMHQ9Ofj9UKQV1aHpbASJbw011Bxk+CWiNrwXaugA6NShils4vBEoXjZob0Bh+RZdt9o3c40eVC7NU3zkSgLQ==","shasum":"13ff90aa3f6b026f8aafc8641c77e6429d009ad1","tarball":"https://registry.npmjs.org/@annguyenvanchuc/todo/-/todo-1.2.0.tgz","fileCount":55,"unpackedSize":115056,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDrFLT1KCqQ8kSEgWd//PkFOqpafyF0Fr4LA+KyTLmQ+AIhALPl2/cnqxZqDU4Bcw8VW4Q4mxR1qM93waybEJperskG"}]},"_npmUser":{"name":"annguyenwasd","email":"an.nguyenwasd@gmail.com"},"directories":{},"maintainers":[{"name":"annguyenwasd","email":"an.nguyenwasd@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/todo_1.2.0_1776574893495_0.6858996484294508"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-13T16:28:49.697Z","modified":"2026-04-19T05:01:33.787Z","1.0.0":"2026-04-13T16:28:49.954Z","1.0.1":"2026-04-13T16:37:18.473Z","1.0.2":"2026-04-17T00:18:13.334Z","1.1.0":"2026-04-19T04:40:18.122Z","1.2.0":"2026-04-19T05:01:33.660Z"},"homepage":"https://github.com/annguyenwasd/todo","keywords":["todo","cli","task-manager","kanban","ink","react","typescript"],"description":"A keyboard-driven kanban board in your terminal.","maintainers":[{"name":"annguyenwasd","email":"an.nguyenwasd@gmail.com"}],"readme":"# ◫ KANBAN\n\nA keyboard-driven kanban board in your terminal.\n\n```\n  ◫ KANBAN — 5 cards across 5 columns\n\n ┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐ ┌──────┐ ┌─────────────────────┐\n │  In Progress  (1)   │ │      Todo  (2)      │ │    Backlog  (1)     │ │ Idea │ │       Done  (1)     │\n ├─────────────────────┤ ├─────────────────────┤ ├─────────────────────┤ │  (0) │ ├─────────────────────┤\n │ ● Fix login bug     │ │ ● Write tests       │ │ ● Dark mode         │ │      │ │ ● Setup CI      ✓  │\n │                     │ │ ● Update docs       │ │                     │ │      │ │                     │\n └─────────────────────┘ └─────────────────────┘ └─────────────────────┘ └──────┘ └─────────────────────┘\n\n col 1/5 · 1 card                                                           j/k navigate  ? help  q quit\n```\n\n## Install\n\n### Global installation (recommended)\n\nInstall it globally from npm:\n\n```sh\nnpm install -g @annguyenvanchuc/todo\n```\n\nThen run it from anywhere in your terminal:\n\n```sh\ntodo\n```\n\n### Local development\n\nIf you want to run it from source:\n\n```sh\npnpm install\npnpm dev\n```\n\nOr build and install it locally on your machine:\n\n```sh\nnpm run install:local\ntodo\n```\n\n## Key bindings\n\n### Navigation\n\n| Key | Action |\n|-----|--------|\n| `j` / `k` | Move cursor down / up |\n| `h` / `l` | Switch column left / right |\n| `←` `→` | Switch column left / right |\n| `1` – `9` | Jump to column by number |\n| `g` | Jump to top of column |\n| `G` | Jump to bottom of column |\n\n### Card actions\n\n| Key | Action |\n|-----|--------|\n| `a` | Add card to current column |\n| `t` | Add card to Todo column |\n| `b` | Add card to Backlog column |\n| `I` | Add card to Idea column |\n| `e` | Edit selected card |\n| `x` | Delete selected card |\n| `<` / `>` | Move card to adjacent left / right column |\n| `m` | Open move picker (choose any column) |\n| `i` | Quick-move card → In Progress |\n| `d` | Quick-move card → Done |\n\n### Column actions\n\n| Key | Action |\n|-----|--------|\n| `[` / `]` | Move column left / right |\n| `A` | Add new column |\n| `D` | Delete current column |\n| `-` | Minimize / restore column |\n| `+` | Maximize / restore column |\n\n### Other\n\n| Key | Action |\n|-----|--------|\n| `?` | Toggle help menu |\n| `q` | Quit |\n\n## Data\n\nCards are stored in `todos.json` in the current directory. Override the path:\n\n```sh\nTODO=/path/to/my-project todo\n# or point to a directory\nTODO=~/notes todo\n```\n","readmeFilename":"README.md"}