- 🚀 Simple and intuitive CLI interface
- 🔍 Automatic shell completion (bash, zsh, fish)
- 📝 Task management (add, list, done, delete, clear)
- 🎨 8 customizable progress bar styles with beautiful visual effects
- 🎨 Color-coded output for better readability
- 💾 Persistent storage in JSON format
- 🌍 Cross-platform support (Linux, macOS, Windows)
- 🤝 Friend mode: share and view todo lists over the network (port
8088)
go install github.com/yuxbao/gotodo@latestbrew install yuxbao/tap/gotodogit clone https://github.com/yuxbao/gotodo.git
cd gotodo
go buildDownload the latest binary from Releases
Add your first task:
gotodo add "My first task"# Add a new task
gotodo add "Task content"
# List all tasks
gotodo list
# Mark a task as done
gotodo done <task-id>
# Delete a task
gotodo delete <task-id>
# Clear all tasks
gotodo clear --yesCustomize your progress bar with 8 beautiful styles:
# Default block style
gotodo list
# Use different progress bar styles
gotodo list --progress-style=block # ▮▯ (default)
gotodo list --progress-style=dots # ●○
gotodo list --progress-style=arrow # ▶>◀
gotodo list --progress-style=rounded # ╭═╮
gotodo list --progress-style=bars # [▁▂▃▄]
gotodo list --progress-style=classic # [=>]
gotodo list --progress-style=minimal # ▶
gotodo list --progress-style=glow # ◈░◈| Style | Preview | Description |
|---|---|---|
| block | ▮▮▮▮▮▯▯▯▯ |
Modern rectangular blocks (default) |
| dots | ●●●●●○○○○ |
Friendly circular dots |
| arrow | ▶>>>>>◀ |
Dynamic arrow with direction indicators |
| rounded | ╭═══╮ |
Elegant rounded corners |
| bars | [▁▂▃▄] |
Animated height bars for visual interest |
| classic | [====>] |
Traditional progress bar with moving indicator |
| minimal | ▶ |
Ultra-minimalist single indicator |
| glow | ◈░░◈ |
Futuristic glowing effect with background colors |
📖 Detailed documentation: See Progress Bar Styles Demo for complete visual examples and usage tips.
# Filter tasks
gotodo list --done # Show only completed tasks
gotodo list --undone # Show only pending tasks
# Combine filters with styles
gotodo list --done --progress-style=arrow
gotodo list --undone --progress-style=glowYou can share your todo list with friends in the same LAN or via public IP. The port is fixed at 8088.
Start a Friend Server
gotodo friend serve 0.0.0.0- 127.0.0.1 → local only
- 192.168.1.23(your ip) → LAN only
- 0.0.0.0 → allow external connections
Connect to a Friend:
gotodo friend connect 192.168.1.23(Port 8088 is automatically appended, so you only need to provide the IP)
# Use a specific file to store tasks
gotodo --db /path/to/tasks.json listgotodo supports shell completion for:
- Bash
- Zsh
- Fish
Shell completion is automatically configured during installation.
- Go 1.24 or later
go buildgo test -v ./...golangci-lint runThis project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Created by Yux Bao

