Thanks to visit codestin.com
Credit goes to github.com

Skip to content

A beautiful, interactive command-line todo application built with Go and Bubble Tea. Manage your daily tasks, upcoming todos, and general notes with vim-style keybindings and an intuitive calendar interface.

License

Notifications You must be signed in to change notification settings

WasathTheekshana/tedo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

31 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“‹ Tedo - Terminal Todo

A beautiful, interactive command-line todo application built with Go and Bubble Tea. Manage your daily tasks, upcoming todos, and general notes with vim-style keybindings and an intuitive calendar interface.

License Go Version Platform


image image

โœจ Features

๐ŸŽฏ Smart Todo Organization

  • Today View: Focus on today's tasks only
  • Upcoming View: See all future-dated todos
  • Calendar View: Monthly calendar with todo counts
  • General View: Non-dated todos and notes

โšก Vim-Style Navigation

  • hjkl for content navigation
  • Arrow keys for menu switching
  • Familiar vim operations (i, e, d, x)
  • Fast keyboard-driven workflow

๐Ÿ“… Interactive Calendar

  • Monthly view with todo indicators
  • Jump to any date to view/add todos
  • Navigate months with n/p
  • Quick return to today with t

๐Ÿ’พ Reliable Data Storage

  • JSON file-based persistence
  • Automatic data organization by date
  • No external database required
  • Human-readable data format

Enhanced Features โœจ

  • Smart Input Validation: Character limits and real-time feedback
  • Auto-clearing Errors: Error messages disappear after 5 seconds
  • Enhanced Keyboard Shortcuts: Ctrl+S to save, Ctrl+A select all
  • Performance Optimized: Handles 1000+ todos efficiently
  • Character Counters: Live character count in input forms
  • Version Information: tedo -version for version details
  • Help System: tedo -help for usage information
  • Clean, modern terminal UI
  • Color-coded todo states
  • Pagination for large todo lists
  • Real-time input validation

๐Ÿš€ Quick Start

Installation

๐Ÿš€ Installation

Method 1: Go Install (Recommended)

go install github.com/WasathTheekshana/tedo/cmd/tedo@latest

Method 2: Using Installation Script

curl -fsSL https://raw.githubusercontent.com/WasathTheekshana/tedo/main/install.sh | bash

Method 3: From Source

git clone https://github.com/WasathTheekshana/tedo.git
cd tedo
go build -o tedo cmd/tedo/main.go
sudo mv tedo /usr/local/bin/

Verify Installation

tedo -version

Note: Make sure $GOPATH/bin is in your $PATH. Add this to your shell profile if needed:

export PATH=$PATH:$(go env GOPATH)/bin

Command Line Options

tedo                # Start the application
tedo -version       # Show version information  
tedo -help          # Show help message

The app will create a data/ directory in the current folder to store your todos.

๐Ÿ“– Usage Guide

๐Ÿ”ค Navigation

Key Action
โ† โ†’ Switch between tabs
j k Navigate up/down in lists
h j k l Navigate calendar dates
1 2 3 4 Jump to specific views
c Quick jump to calendar
q / Ctrl+C Quit

โœ๏ธ Todo Operations

Key Action
i Add new todo
e Edit selected todo
d Delete selected todo
x Toggle completion
Enter View date (from calendar)

๐Ÿ“ Input Mode

Key Action
Tab Switch between title/description
Enter / Ctrl+S Save todo
Esc Cancel
Ctrl+A Select all text
Ctrl+C Quit application

Input Validation:

  • Title: Required, max 100 characters
  • Description: Optional, max 500 characters
  • Real-time character counting
  • Auto-clearing error messages

๐Ÿ“… Calendar Navigation

Key Action
h j k l Move between dates
n p Next/previous month
t Jump to today
Enter View todos for selected date
i Add todo for selected date

๐Ÿ“„ Pagination

  • Automatically enabled for 10+ todos
  • Ctrl+F / Ctrl+B for page navigation
  • Seamless navigation between pages

๐Ÿ—๏ธ Project Structure

tedo/
โ”œโ”€โ”€ cmd/tedo/           # Application entry point
โ”‚   โ””โ”€โ”€ main.go
โ”œโ”€โ”€ internal/           # Private application code
โ”‚   โ”œโ”€โ”€ models/         # Data structures
โ”‚   โ”œโ”€โ”€ storage/        # JSON persistence layer
โ”‚   โ”œโ”€โ”€ version/        # Version information
โ”‚   โ””โ”€โ”€ ui/             # Terminal user interface
โ”‚       โ”œโ”€โ”€ app.go      # Main application logic
โ”‚       โ”œโ”€โ”€ calendar.go # Calendar component
โ”‚       โ”œโ”€โ”€ keys.go     # Keyboard handling
โ”‚       โ”œโ”€โ”€ render.go   # UI rendering
โ”‚       โ”œโ”€โ”€ styles.go   # Visual styling
โ”‚       โ”œโ”€โ”€ input.go    # Input handling
โ”‚       โ”œโ”€โ”€ validation.go # Input validation
โ”‚       โ”œโ”€โ”€ errors.go   # Error management
โ”‚       โ”œโ”€โ”€ performance.go # Performance monitoring
โ”‚       โ””โ”€โ”€ help.go     # Help system
โ”œโ”€โ”€ install.sh          # Installation script
โ”œโ”€โ”€ uninstall.sh        # Uninstallation script
โ”œโ”€โ”€ data/               # JSON data files (auto-created)
โ”œโ”€โ”€ go.mod
โ”œโ”€โ”€ go.sum
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md

๐ŸŽจ Screenshots

Today View

๐Ÿ“‹ Tedo Today Upcoming Calendar General

๐Ÿ“… 2025-07-19

> โ˜ 1. Morning Exercise
    30 minutes of jogging
  โœ“ 2. Code Review
    Review PR #123
  โ˜ 3. Team Meeting
    Daily standup at 10 AM

j/k: navigate โ€ข โ†/โ†’: switch tabs โ€ข x: toggle โ€ข d: delete โ€ข e: edit โ€ข i: add โ€ข q: quit

Calendar View

๐Ÿ“‹ Tedo Today Upcoming [Calendar] General

๐Ÿ“… July 2025

  Su  Mo  Tu  We  Th  Fr  Sa
       1   2   3   4   5
   6   7   8   9  10  11  12
  13  14  15  16  17  18 >19<
  20  21  22โ€ข 23  24  25  26
  27  28  29  30  31

๐Ÿ“ 2025-07-19 (3 todos)
  โ˜ Morning Exercise
  โœ“ Code Review
  โ˜ Team Meeting

h/j/k/l: navigate dates โ€ข n/p: month โ€ข t: today โ€ข enter: view date โ€ข i: add โ€ข q: quit

๐Ÿ—‘๏ธ Uninstallation

Quick Uninstall

# Remove Tedo binary from Go installation
rm $(go env GOPATH)/bin/tedo

# Or remove from system location
sudo rm /usr/local/bin/tedo

Complete Uninstall Script

curl -fsSL https://raw.githubusercontent.com/WasathTheekshana/tedo/main/uninstall.sh | bash

Manual Cleanup

# Remove binary from all possible locations
sudo rm -f /usr/local/bin/tedo /usr/bin/tedo ~/.local/bin/tedo ~/bin/tedo $(go env GOPATH)/bin/tedo

# Optionally remove your todo data
rm -rf ./data

โš™๏ธ Configuration

Data Location

By default, todos are stored in ./data/ relative to where you run the command. Files include:

  • general.json - General todos
  • YYYY-MM-DD.json - Date-specific todos

Customization

The app uses a clean, minimal design. Colors and styles can be customized by modifying internal/ui/styles.go.

๐Ÿค Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  4. Add tests if applicable
  5. Commit your changes
    git commit -m 'Add amazing feature'
  6. Push to the branch
    git push origin feature/amazing-feature
  7. Open a Pull Request

Development Setup

# Clone and enter directory
git clone https://github.com/WasathTheekshana/Tedo.git
cd Tedo

# Install dependencies
go mod tidy

# Run tests
go test ./...

# Run the application
go run cmd/tedo/main.go

Code Style

  • Follow standard Go formatting (go fmt)
  • Add comments for exported functions
  • Keep functions focused and testable
  • Use meaningful variable names

๐Ÿ› Troubleshooting

Common Issues

Q: App doesn't start or shows garbled text

  • Ensure your terminal supports ANSI colors
  • Try running with TERM=xterm-256color tedo

Q: Data not persisting

  • Check write permissions in the current directory
  • Ensure the data/ directory is not read-only

Q: Performance issues with many todos

  • The app uses pagination (10 todos per page) automatically
  • Consider archiving completed todos periodically

Q: Keyboard shortcuts not working

  • Verify your terminal emulator supports the key combinations
  • Some terminals may intercept certain key combinations

Getting Help

๐Ÿ“š Technical Details

Dependencies

Minimum Requirements

  • Go 1.19 or later
  • Terminal with ANSI color support
  • 50MB disk space

Performance

  • Handles 1000+ todos efficiently
  • Lazy loading for large datasets
  • Memory usage typically under 10MB

๐Ÿ“„ License

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

๐Ÿ™ Acknowledgments

  • Charm for the amazing Bubble Tea framework
  • The Go community for excellent tooling and libraries
  • All contributors who help improve this project

๐Ÿ”ฎ Roadmap

  • Import/Export: CSV and JSON import/export
  • Search: Full-text search across all todos
  • Categories: Tag-based organization
  • Reminders: Due date notifications
  • Sync: Cloud synchronization options
  • Themes: Customizable color schemes
  • Stats: Productivity analytics

โญ Star this repo if you find it helpful!

Made with โค๏ธ and Go

About

A beautiful, interactive command-line todo application built with Go and Bubble Tea. Manage your daily tasks, upcoming todos, and general notes with vim-style keybindings and an intuitive calendar interface.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published