| Crates.io | nextup-tui |
| lib.rs | nextup-tui |
| version | 0.1.2 |
| created_at | 2025-12-10 01:47:25.995141+00 |
| updated_at | 2025-12-16 00:17:13.837644+00 |
| description | A terminal application that randomizes a list of names. Useful for daily standup meetings. |
| homepage | |
| repository | https://github.com/slipperypenguin/nextup |
| max_upload_size | |
| id | 1977160 |
| size | 58,350 |
A Rust terminal application that randomizes a list of names. Useful for daily standup meetings.
Rust 1.70 or later
A terminal that supports Unicode (for timer icons)
cargo install nextup-tui
brew tap slipperypenguin/homebrew-tap
brew install nextup-tui
cargo build --release
target/release/nextupnextup --help
A team.txt file is included with example names (feel free to replace with your team):
Stan Marsh
Kyle Broflovski
Kenny McCormick
Eric Cartman
Heidi Turner
Butters Stotch
# Run with default settings
./target/release/nextup
# Or use cargo run during development
cargo run
# Customize the meeting
./target/release/nextup \
--title "Sprint Review" \
--duration 20 \
--names "sprint-team.txt"
# Hide the timer
./target/release/nextup --hide-timer
# See all options
./target/release/nextup --help
| Key | Action |
|---|---|
Tab or ↓ |
Move to next person |
↑ |
Move to previous person |
Ctrl+N |
Reshuffle names and reset timers |
Ctrl+R |
Reset timer and per-person timers |
Q or Ctrl+C |
Quit |
--title: Set the window title (default: "Team daily standup")
--names: Path to names file (default: "team.txt")
--duration: Meeting duration in minutes (default: 15)
--hide-timer: Hide the timer widget
# Run in development mode with auto-reload
cargo watch -x run
# Run with specific arguments
cargo run -- --duration 10 --hide-timer
# Format code
cargo fmt
# Check for issues
cargo clippy
src/
├── main.rs # Entry point and CLI parsing
├── app.rs # Main application logic and state
├── config.rs # Configuration structure
├── error.rs # Error types and handling
└── ui.rs # Ratatui UI components
Terminal Size: Make your terminal text large (Ctrl+Plus in most terminals) for better visibility
Unicode Support: Ensure your terminal supports Unicode for timer icons
Performance: The app updates every 500ms for smooth timer display
Team File: Keep your team.txt file in the same directory as the executable
"No names found": Check that your names file exists and contains names
Unicode issues: Use a modern terminal that supports Unicode
Timer not updating: Check that your terminal supports the gauge widget
Error Handling: Uses Rust's Result type with error propagation
Configuration: Uses clap for CLI parsing
Async Runtime: Uses tokio for async operations
Composable TUI: Uses ratatui for terminal user interface (TUI)
Memory Safety: Rust's ownership system prevents memory leaks