A sleek, keyboard-centric To-Do list application built for the terminal. Manage your tasks with style using a distraction-free interface powered by Go, Bubble Tea, and Lip Gloss.
- ๐จ Beautiful TUI - Elegant, terminal-adaptive styling with Lip Gloss
- โจ๏ธ Keyboard-Centric - Fully navigable with intuitive keybindings
- ๐พ Persistent Storage - Tasks are saved automatically
- ๐ฏ Distraction-Free - Minimal interface for maximum productivity
- ๐ Robust State Management - Powered by Bubble Tea framework
- ๐ Fast & Lightweight - Written in Go for performance
- ๐ฑ Cross-Platform - Works on Linux, macOS, and Windows
GoTUI.mp4
- Go 1.21 or higher
- Terminal with 256-color support (recommended)
go install github.com/Ilya-sss/ToDo-Tui-App@latest# Clone the repository
git clone https://github.com/Ilya-sss/ToDo-Tui-App.git
cd ToDo-Tui-App
# Build the application
go build -o todo
# Run it
./todo# Clone the repository
git clone https://github.com/Ilya-sss/ToDo-Tui-App.git
cd ToDo-Tui-App
# Build using make
make build
# Run the application
make runLaunch the application:
./todo| Key | Action |
|---|---|
n |
Add a new task |
โ |
Move cursor up |
โ |
Move cursor down |
Space / Enter |
Toggle task completion |
BackSpace |
Delete selected task |
e |
Edit selected task |
q / Ctrl+C |
Quit application |
- Add a task: Press
n, type your task, and hitEnter - Complete a task: Navigate to it and press
Space - Delete a task: Navigate to it and press
BackSpace - Edit a task: Navigate to it and press
e
ToDo-Tui-App/
โ
โโโ main.go # Application entry point
โโโ todo.go # Core To-Do logic and models
โโโ data/ # Data storage directory
โ โโโ todos.json # Persistent task storage
โ
โโโ go.mod # Go module dependencies
โโโ go.sum # Dependency checksums
โโโ Makefile # Build automation
โโโ README.md # This file
- Go - Programming language
- Bubble Tea - TUI framework for robust state management
- Lip Gloss - Style definitions for elegant terminal rendering
- Bubbles - Common TUI components
# Clone the repository
git clone https://github.com/Ilya-sss/ToDo-Tui-App.git
cd ToDo-Tui-App
# Install dependencies
go mod download
# Run in development mode
go run .make build # Build the application
make run # Run the application
make clean # Clean build artifacts
make test # Run tests
make install # Install to $GOPATH/binThe application follows the Elm Architecture pattern (via Bubble Tea):
type Model struct {
todos []Todo
cursor int
selected map[int]struct{}
}
func (m Model) Init() tea.Cmd
func (m Model) Update(tea.Msg) (tea.Model, tea.Cmd)
func (m Model) View() stringTasks are stored in data/todos.json by default. You can modify the data directory in the source code if needed.
{
{
"id": 1,
"text": "Your task here",
"done": false,
}
}You can customize the appearance by modifying the Lip Gloss styles in the source code:
// Example: Change the accent color
var accentColor = lipgloss.Color("#00ADD8")
// Example: Modify box borders
var boxStyle = lipgloss.NewStyle().
Border(lipgloss.RoundedBorder()).
BorderForeground(accentColor)Contributions are welcome! Here's how you can help:
- ๐ด Fork the repository
- ๐ Create your feature branch (
git checkout -b feature/AmazingFeature) - โ๏ธ Commit your changes (
git commit -m 'Add some AmazingFeature') - ๐ค Push to the branch (
git push origin feature/AmazingFeature) - ๐ Open a Pull Request
- ๐ท๏ธ Add task categories/tags
- ๐ Implement due dates
- โญ Add priority levels
- ๐ Add search functionality
- ๐ Add task statistics
- ๐จ More color themes
- ๐ Dark/light mode toggle
Found a bug? Please open an issue with:
- Your OS and terminal
- Go version (
go version) - Steps to reproduce
- Expected vs actual behavior
- Charm - For the amazing TUI libraries
- The Go community - For excellent tooling and support
- All contributors who help improve this project
If you find this project useful, please give it a โญ๏ธ on GitHub!
Created by Ilya-sss
Have questions or suggestions? Feel free to open an issue!