Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gotodo banner

🌐 Visit Official Website

Release License Go

gotodo example

✨ Features

  • 🚀 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)

🚀 Installation

Using Go

go install github.com/yuxbao/gotodo@latest

Using Homebrew

brew install yuxbao/tap/gotodo

From Source

git clone https://github.com/yuxbao/gotodo.git
cd gotodo
go build

Using Binary

Download the latest binary from Releases

🎯 Quick Start

Add your first task:

gotodo add "My first task"

Usage

Basic Commands

# 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 --yes

Progress Bar Styles

Customize 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      # ◈░◈

Progress Bar Style Preview

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.

Advanced List Options

# 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=glow

📌 Friend Mode (Experimental)

You 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)

Using Different Storage Location

# Use a specific file to store tasks
gotodo --db /path/to/tasks.json list

Shell Completion

gotodo supports shell completion for:

  • Bash
  • Zsh
  • Fish

Shell completion is automatically configured during installation.

Development

Requirements

  • Go 1.24 or later

Build

go build

Test

go test -v ./...

Lint

golangci-lint run

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

🤝 Contributing

gotodo banner

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Author

Created by Yux Bao

About

A simple, delicate CLI to-do app built with Go, helps you manage your goals efficiently. GOTODO IT !

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages