Skip to content

abradburne/alltz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

55 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

alltz ๐ŸŒ

A terminal-based timezone viewer. Track multiple timezones simultaneously with timeline scrubbing, DST indicators, and multiple color themes.

Demo Rust License

alltz screenshot

โœจ Features

  • ๐ŸŒ Multi-timezone display with visual timeline scrubbing
  • ๐Ÿท๏ธ Custom timezone names - personalize zones with team member names or custom labels
  • ๐ŸŒ… Sunrise/sunset times - shows daily sun times for each timezone
  • ๐Ÿ“… Date display with timezone-aware positioning on timelines
  • ๐Ÿ• DST transition indicators (โ‡ˆ spring forward, โ‡Š fall back)
  • ๐ŸŽจ 6 color themes (Default, Ocean, Forest, Sunset, Cyberpunk, Monochrome)
  • ๐Ÿ“ Local time display shows scrubbed time in your timezone with day and UTC offset
  • ๐Ÿ’พ Persistent configuration saves your timezone list and preferences
  • ๐Ÿ“ฑ Intuitive TUI controls with vim-like navigation
  • ๐Ÿ’ป CLI commands for quick timezone queries without entering TUI
  • โšก Fast and lightweight - built in Rust for performance

๐Ÿ“ฆ Installation

Option 1: Homebrew (macOS/Linux) - Recommended

# Add the tap (once alltz is published)
brew tap abradburne/alltz
brew install alltz

Option 2: Install from Source

# Clone the repository
git clone https://github.com/abradburne/alltz.git
cd alltz

# Build and install with Cargo
cargo install --path .

# Or build release binary manually
cargo build --release
sudo cp target/release/alltz /usr/local/bin/

Option 3: Download Pre-built Binary

  1. Download the latest release from GitHub Releases
  2. Extract the binary to your PATH:
    tar -xzf alltz-v0.1.3-your-platform.tar.gz
    sudo mv alltz /usr/local/bin/

๐Ÿš€ Quick Start

# Launch interactive TUI
alltz

# Show all available timezones
alltz list

# Check current time in a specific city
alltz time Tokyo

# Get detailed timezone information
alltz zone "New York"

# Start with specific options
alltz --timezone London --twelve-hour --theme ocean

๐ŸŽฎ TUI Controls

Navigation

  • j/k or โ†‘/โ†“ - Navigate between timezones
  • h/l or โ†/โ†’ - Scrub timeline (1 hour steps)
  • Shift + h/l - Fine scrub timeline (1 minute steps)
  • [/] - Adjust time by ยฑ15 minutes
  • {/} - Adjust time by ยฑ1 hour

Time Management

  • t - Reset to current time
  • m - Toggle 12/24 hour format
  • n - Toggle timezone display mode (short/full names)

Zone Management

  • a - Add new timezone (with search)
  • r - Remove current timezone
  • e - Rename/customize current timezone with personal labels
  • E - Clear custom name and restore original timezone name
  • 1-9 - Quick select search results when adding zones

Display Options

  • d - Toggle date display on timelines
  • s - Toggle sunrise/sunset times
  • c - Cycle through color themes
  • ? - Show/hide help
  • q - Quit

๐Ÿ› ๏ธ CLI Commands

List Timezones

alltz list
# Shows all available timezones with coordinates

Check Time

alltz time Tokyo
# Shows current time in Tokyo and your local time

Timezone Information

alltz zone "Los Angeles"
# Shows detailed timezone info including DST status

CLI Options

alltz --help                           # Show all options
alltz --timezone Tokyo                 # Start with Tokyo selected
alltz --twelve-hour                    # Use 12-hour format
alltz --theme cyberpunk                # Start with cyberpunk theme
alltz --timezone London --theme ocean  # Combine options

๐ŸŽจ Themes

Switch between 6 beautiful color themes using the c key:

  1. Default - Classic terminal colors
  2. Ocean - Blues and cyans for a calming water theme
  3. Forest - Greens for a natural, earthy feel
  4. Sunset - Warm oranges and reds
  5. Cyberpunk - Neon magentas and electric blues
  6. Monochrome - Clean black and white

Themes affect all UI elements including borders, timeline colors, and status indicators.

โš™๏ธ Configuration

alltz automatically saves your configuration to ~/.config/alltz/config.toml:

zones = ["Los Angeles", "New York", "UTC", "London", "Tokyo"]
selected_zone_index = 0
display_format = "TwentyFourHour"
timezone_display_mode = "Short"
color_theme = "Default"
show_date = false

[time_config]
work_hours_start = 8
work_hours_end = 18
awake_hours_start = 6
awake_hours_end = 22

Customizing Work Hours

The timeline visualization shows different activity levels:

  • Night hours (light shade): Sleep time
  • Awake hours (medium shade): Personal time
  • Work hours (dark shade): Working time

Edit the config file to match your schedule.

๐ŸŒ Supported Timezones

alltz includes 100+ major cities worldwide:

Americas: Los Angeles, Denver, Chicago, New York, Vancouver, Toronto, Sรฃo Paulo, Buenos Aires Europe: London, Berlin, Paris, Madrid, Rome, Amsterdam, Stockholm, Warsaw Asia: Tokyo, Beijing, Seoul, Hong Kong, Singapore, Mumbai, Dubai, Istanbul Africa: Cairo, Cape Town, Lagos, Nairobi Oceania: Sydney, Melbourne, Auckland

Plus UTC and many more. Use alltz list to see all available timezones.

๐Ÿ”ง Troubleshooting

Terminal Display Issues

  • Ensure your terminal supports Unicode characters
  • Try different color themes if colors appear wrong
  • Use a monospace font for best alignment

Configuration Issues

  • Configuration is automatically created on first run at ~/.config/alltz/config.toml
  • Delete ~/.config/alltz/config.toml to reset to defaults
  • Check file permissions if saving fails

Performance

  • alltz is built for performance - if you experience lag, check if your terminal supports hardware acceleration
  • Timeline scrubbing is optimized for smooth interaction

๐Ÿงช Development

Building from Source

git clone https://github.com/abradburne/alltz.git
cd alltz

# Run in development mode
cargo run

# Run with CLI options
cargo run -- --help
cargo run -- time Tokyo

# Run tests
cargo test

# Build optimized release
cargo build --release

Project Structure

src/
โ”œโ”€โ”€ main.rs          # CLI and TUI setup
โ”œโ”€โ”€ app.rs           # Application state and logic
โ”œโ”€โ”€ time.rs          # Timezone management
โ”œโ”€โ”€ config.rs        # Configuration and themes
โ””โ”€โ”€ ui/
    โ””โ”€โ”€ timeline.rs  # Timeline visualization widget

Testing

# Run all tests
cargo test

# Test specific module
cargo test time

๐Ÿ™ Acknowledgments

This project was inspired by everytimezone.com, an excellent web-based timezone tool. Thank you to the everytimezone team for creating such a useful and well-designed timezone reference that inspired alltz's timeline visualization approach.

๐Ÿ“„ License

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

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

Areas for Contribution

  • Additional timezone support
  • New color themes
  • Performance optimizations
  • Documentation improvements

๐Ÿ™‹ Support

๐ŸŽฏ Roadmap

  • Custom timezone support
  • Export timezone schedules
  • Meeting scheduler integration
  • Mobile-friendly web interface
  • Calendar integration
  • Team timezone sharing

Made with โค๏ธ and โ˜• by developers, for developers.

*(lol, actually, it was completely written by Claude Code, I just pointed it in the right direction)

alltz - All timezones, all the time.

About

cli timezone visualization

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •