A cryptocurrency price monitoring tool that sends you alerts when prices hit your target levels. Built this to track my portfolio without constantly checking exchanges.
Monitors crypto prices in real-time and notifies you when conditions are met. You can set alerts like "tell me when Bitcoin drops below $50k" or "notify me if Ethereum increases 10% in an hour".
- Real-time price tracking from CoinGecko API
- Threshold alerts (above/below specific prices)
- Percentage change alerts (track % movements)
- Desktop notifications, email, and webhooks
- Command-line interface and web dashboard
- Alert history to see what triggered
- JSON file storage (no database needed)
- Node.js 18 or higher
- npm (comes with Node.js)
npm install
npm run buildCreate an alert via CLI:
npm run cli create-alert -- --crypto bitcoin --condition below --threshold 50000 --channel desktopList your alerts:
npm run cli list-alertsStart monitoring:
npm run cli start-monitorOr use the web interface:
npm run dev
# Open http://localhost:3000Alert when Bitcoin drops below $50k:
npm run cli create-alert -- --crypto bitcoin --condition below --threshold 50000 --channel desktopAlert when Ethereum rises above $3k:
npm run cli create-alert -- --crypto ethereum --condition above --threshold 3000 --channel desktopAlert on 10% increase in last hour:
npm run cli create-alert -- --crypto cardano --condition increase --threshold 10 --time-window 3600 --channel desktopOptional: Create data/config.json to customize settings:
{
"monitoringIntervalSeconds": 60,
"supportedCryptocurrencies": ["bitcoin", "ethereum", "cardano", "solana"],
"smtpConfig": {
"host": "smtp.gmail.com",
"port": 587,
"username": "your-email@gmail.com",
"password": "your-app-password"
}
}src/
├── cache/ # Price caching
├── config/ # Configuration
├── evaluator/ # Alert logic
├── fetcher/ # API calls
├── manager/ # Alert CRUD
├── monitor/ # Main monitoring loop
├── notification/ # Notification handlers
├── storage/ # Data persistence
├── cli.ts # CLI interface
└── server.ts # Web server
- TypeScript
- Node.js
- Express (web server)
- CoinGecko API (price data)
- Commander.js (CLI)
npm test- Desktop notifications might not work on some Linux distros (need libnotify-bin)
- Email requires SMTP configuration
- Rate limited to CoinGecko's free tier (50 calls/minute)
- Add more exchanges
- Mobile app
- Price charts
- Portfolio tracking
- Telegram bot integration
MIT