A simple, fast command-line task manager built with Go, using Bubble Tea for the TUI and LipGloss for styling. Data is stored locally in SQLite.
Note: This is a hobby project for personal use. Feel free to use, fork, or learn from it, but don't be surprised if things break over time. See branches for iterations.
go install github.com/mkaz/tasks/cmd/tasks@latestOr build from source:
git clone https://github.com/mkaz/tasks.git
cd tasks
go build -o tasks ./cmd/tasks# Open interactive task manager
tasks
# Add a task from command line
tasks add "Buy groceries"
# Add a task with a URL
tasks add "Review PR https://github.com/example/repo/pull/123"
# Mark a task as done
tasks do 5
# View tasks completed this week
tasks week
# Show help
tasks helpLaunch with tasks to enter the interactive TUI.
| Key | Action |
|---|---|
↑ / k |
Move up |
↓ / j |
Move down |
alt+↑ |
Move task up in list |
alt+↓ |
Move task down in list |
r |
Refresh |
q |
Quit |
| Key | Action |
|---|---|
a |
Add new task |
e/enter |
Edit selected task |
space |
Cycle task state |
d |
Mark as done |
delete |
Delete task permanently |
| Key | Action |
|---|---|
/ |
Start filtering |
Enter |
Apply filter |
Esc |
Clear filter / Cancel |
Filter is live/type-ahead: results appear after typing 3+ characters. Matches against task title.
Examples:
/groceries— Find tasks containing "groceries"/review— Find tasks containing "review"
| Key | Action |
|---|---|
↑/↓ |
Navigate fields |
space |
Toggle state (when on State field) |
enter |
Edit field / cycle state / expand subtasks |
Esc |
Save and exit |
| Command | Description |
|---|---|
tasks |
Open interactive TUI |
tasks add "text" |
Add a task (supports URLs in text) |
tasks do <id> |
Mark a task as done |
tasks week |
Show tasks completed in last 7 days |
tasks --init <db> |
Create a new empty database at path |
tasks help |
Show help information |
Tasks have a simple status indicator:
| Symbol | State |
|---|---|
[ ] |
Not started |
[-] |
In progress |
[✓] |
Done |
[✗] |
Canceled |
Press space in the task list to cycle through states, or edit the task to change state.
Tasks can have subtasks. Edit a task and navigate to the Subtasks field:
- Press Enter to expand and navigate subtasks
- Use ↑/↓ or Tab to move between subtasks
- Press Space to toggle a subtask's done state
- Press Enter on a subtask to edit its text
- Press Enter on the empty slot at the bottom to add a new subtask
- Press Delete to remove a subtask
- Press Esc to return to the main edit form
The task list shows subtask progress as (done/total).
Data is stored in a SQLite database. The program looks in this order:
tasks.dbin current directoryTASKS_DBenvironment variable~/Documents/tasks.db
MIT License - An mkaz contrivance.