A cross-platform desktop application for tracking cryptocurrency prices and receiving custom alerts. Built with Rust and Iced.
- Real-time Price Tracking: Monitor cryptocurrency prices with configurable update intervals (default: 30 seconds)
- Watchlist Management: Add and remove coins dynamically via horizontal scrolling card interface
- Custom Alerts: Set three types of alerts:
- Price above threshold
- Price below threshold
- Percentage change (24h) above threshold
- Desktop Notifications: Native notifications with sound on Windows, macOS, and Linux
- Persistent State: All settings, watchlist, and alerts survive app restarts
- Modern UI: Dark theme with purple accents, spacious layout, and medium-rounded components
- Modular Architecture: Clean design ready for future enhancements like charts
- Rust 1.90 or higher
- Cargo
- Clone the repository:
git clone https://github.com/yourusername/crypto-watcher.git
cd crypto-watcher
- Build the project:
cargo build --release
- Run the application:
cargo run --release
- Enter a coin ID in the text input (e.g.,
bitcoin
,ethereum
,solana
) - Click "Add" or press Enter
- The coin will appear in your watchlist with current price and 24h change
- Click "+ Create Alert" in the Alerts panel
- Select a coin from your watchlist
- Choose an alert type (Price Above, Price Below, or % Change Above)
- Enter the threshold value
- Click "Create"
- Active Alerts: Display with "Active" badge and can be deleted
- Triggered Alerts: Display with "Triggered" badge and can be reset
- Desktop notifications with sound appear when an alert triggers
Click the "X" button next to any coin in your watchlist to remove it.
Configuration files are stored in platform-specific directories:
- Linux:
~/.config/CryptoWatcher/
- macOS:
~/Library/Application Support/com.cryptowatcher.CryptoWatcher/
- Windows:
%APPDATA%\cryptowatcher\CryptoWatcher\
Files:
config.json
: App settings (update interval, theme)watchlist.json
: List of tracked coin IDsalerts.json
: Alert configurations and states
Cryptocurrency data is fetched from the CoinGecko API (free tier, no API key required).
cargo build
cargo run
cargo build --release
./target/release/crypto-watcher
- Price charts with historical data
- More alert types (moving averages, volume triggers)
- Multiple portfolios/watchlists
- Dark/light theme toggle
- Export alerts and watchlist
- Rust 1.90: Systems programming language
- Iced 0.13: Cross-platform GUI framework (recently upgraded)
- Reqwest: HTTP client for API calls
- Serde: Serialization/deserialization
- Notify-rust: Desktop notifications
- Tokio: Async runtime
MIT License - see LICENSE file for details
Contributions are welcome! Please open an issue or submit a pull request.