A modern, interactive TUI (Text User Interface) weather application built with TypeScript and blessed. This project is participating in the Summer of Making 2025 program.
- User Guide - New users start here! Simple, jargon-free setup guide
- Installation Guide - Detailed setup instructions
- Usage Guide - Complete command reference
- Examples - Command examples and output formats
- Development Guide - Contributing and extending the CLI
- Architecture Documentation - Technical architecture details
- Interactive Menu System: Navigate through options with arrow keys
- Real-time Display: Weather information updates in dedicated panels
- Keyboard Navigation: ESC to go back, Enter to select, q to quit
- Beautiful ASCII Interface: Clean, bordered layout
- Location Management: Easy location entry with input validation
- Standalone Executables: No dependencies required after build
- Integrated API Key: Pre-built executables include a securely embedded API key
- Multi-platform Support: Windows, macOS, and Linux binaries
- Single File Distribution: Easy deployment and sharing - just download and run!
- TypeScript: Fully typed for better development experience and code reliability
- Modular Architecture: Component-based UI system with separation of concerns
- Event-Driven: Robust event management system for user interactions
- Error Handling: Comprehensive error messages with helpful suggestions
- Cross-Platform: Support for Windows, macOS, and Linux executables
- Environment Config: Flexible configuration through environment variables
Good news! The pre-built executables (wait-linux, wait-macos, wait-win.exe) come with a securely embedded API key built right in. This means:
- No API key setup required - Just download and run!
- Encrypted & Secure - The API key is encrypted using AES-256 encryption
- Ready to Use - Start checking weather immediately after download
- Automatic Fallback - Still accepts environment variables if you want to use your own key
Simply download the executable for your platform and run it - no additional configuration needed!
-
Visit WeatherAPI.com
- Go to https://www.weatherapi.com/
- Click "Sign Up" (it's completely free!)
-
Create Your Account
- Enter your email and create a password
- Verify your email address
-
Get Your API Key
- After logging in, go to your Dashboard
- Copy your API key (it looks like:
abcd1234efgh5678ijkl9012)
-
For Development: Set your API key as an environment variable
export WEATHER_API_KEY="your_api_key_here" # Linux/macOS # or set WEATHER_API_KEY="your_api_key_here" # Windows Command Prompt # or $env:WEATHER_API_KEY="your_api_key_here" # Windows PowerShell
-
For Secure Executables: Use the secure build process (see Building section below)
npm run build # Compile TypeScript only
npm run build:pkg # Compile and create executables# Build with embedded encrypted API key
WEATHER_API_KEY="your_key_here" npm run build:secure
# Or pass key as parameter
npm run build:secure -- --api-key "your_key_here"
# Just compile without creating executables
npm run build:secure:skip-pkg- AES-256 Encryption: API keys are encrypted using AES-256-CBC
- Key Obfuscation: Encrypted keys are split into multiple parts
- Runtime Decryption: Keys are only decrypted in memory during runtime
- Cross-platform: Works on Windows, macOS, and Linux
- Fallback Support: Environment variables take priority over embedded keys
Contributions are welcome! Please see my Contributing Guide for details on:
- Development setup
- Coding guidelines
- Pull request process
- Issue reporting
This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).
You are free to share and adapt the material for non-commercial purposes, as long as you give appropriate credit and distribute your contributions under the same license.
See the LICENSE file for details.
Note: Remember to keep your API key secure and never commit it to version control. Always use environment variables for sensitive configuration.