flyby
v1.0.0
Published
Terminal task manager with interactive TUI, checklists, undo support, and i18n (en/es)
Maintainers
Readme
flyby
Terminal-based task manager with interactive UI, checklists, and undo support.
__ _ _
/ _| |_ _| |__ _ _
| |_| | | | | '_ \| | | |
| _| | |_| | |_) | |_| |
|_| |_|\__, |_.__/ \__, |
|___/ |___/ Install
npm install -g flybyData is stored locally at ~/.flyby/db.sqlite.
Commands
flyby add Add a new task (interactive prompts)
flyby show Interactive task viewer
flyby list Print all tasks as an ASCII table
flyby done <id> Toggle a task done / pending
flyby edit <id> Edit a task
flyby delete <id> Delete a task
flyby --help Show helpInteractive viewer — flyby show
Navigate your tasks without leaving the terminal.
| Key | Action |
|-----|--------|
| ↑ ↓ | Move cursor |
| Space | Toggle task done / pending |
| c | Open checklist for selected task |
| d | Delete selected task (asks for confirmation) |
| e | Edit selected task |
| u | Undo last action |
| q | Quit |
Inside the checklist view:
| Key | Action |
|-----|--------|
| ↑ ↓ | Move cursor |
| Space | Toggle checklist item |
| Esc | Back to task list |
Adding a task
flyby addYou will be prompted for:
- Title (required)
- Description (optional)
- Due date — format
YYYY-MM-DD(optional) - Checklist items — enter one per line, leave blank to finish
Language
flyby reads your system LANG environment variable. If it starts with es, the interface switches to Spanish automatically.
LANG=es flyby --help
LANG=es flyby showArchitecture
Built with strict TypeScript and a combination of four design patterns:
- Repository — data access behind interfaces (
ITaskRepository,IChecklistRepository), decoupled from SQLite - Command + History — every mutation (
add,delete,toggle,edit) is a reversibleICommand;uin the TUI pops the history stack - State — the interactive TUI is a state machine (
TaskListState,ChecklistState,ConfirmDeleteState,EditState); each state handles its own keys and rendering - Observer — a typed
EventBus(wrapping Node'sEventEmitter) emitstask:added,task:updated,task:deleted,item:toggledevents that views can subscribe to
CLI args
↓
Commander → Controller → Command.execute()
↓
Repository (interface)
↓
SQLite (concrete)
↓
EventBus.emit(...)
↓
Observer → re-renderTech stack
| Concern | Library | |---------|---------| | CLI framework | commander | | ASCII art | figlet | | Database | better-sqlite3 | | Colors | chalk | | Tables | cli-table3 | | Prompts | prompts | | Interactive TUI | raw stdin (no extra dep) | | Language | TypeScript (strict) |
Development
git clone <repo>
cd flyby
npm install
npm run build
# link globally for local testing
npm linkLicense
MIT
