Junibot is an automated monitoring tool that checks Tesla's inventory for available vehicles and sends notifications via WhatsApp and desktop alerts when new vehicles become available.
- 🔍 Real-time monitoring of Tesla's inventory
- 📱 WhatsApp notifications for new vehicle availability
- 💻 Desktop notifications with sound alerts
- 🤖 Stealth mode to avoid detection
- 🔄 Automatic periodic checks (every 15 seconds)
- 📊 Detailed vehicle information including model, name, price, and options
- 🐳 Docker support for easy deployment
- Bun runtime (v1.2.9 or later)
- Node.js (for node-notifier)
- WhatsApp account for notifications
- CallMeBot API key (for WhatsApp integration)
- Docker (optional, for containerized deployment)
- Clone the repository:
git clone https://github.com/yourusername/junibot.git
cd junibot- Install dependencies:
bun installjunibot/
├── src/
│ ├── index.ts # Main application entry point
│ ├── browser.ts # Browser setup and configuration
│ ├── notifications.ts # Notification handling
│ ├── scraper.ts # Tesla inventory scraping logic
│ ├── utils.ts # Utility functions
│ └── config.ts # Configuration management
├── Dockerfile # Docker configuration
├── .dockerignore # Docker ignore file
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # Project documentation
Before running the bot, you need to configure the following environment variables:
TESLA_URL: The Tesla inventory URL to monitorCALLMEBOT_API_KEY: Your CallMeBot API keyWHATSAPP_NUMBER: Your WhatsApp number in international format
To start the bot:
bun run start- Build the Docker image:
docker build -t junibot .- Run the container:
docker run -e TESLA_URL="your_url" \
-e CALLMEBOT_API_KEY="your_key" \
-e WHATSAPP_NUMBER="your_number" \
junibotThe bot will:
- Launch a browser in stealth mode
- Navigate to the Tesla inventory page
- Check for available vehicles
- Send notifications if vehicles are found
- Repeat the process every 15 seconds
The bot uses:
- Puppeteer with stealth plugin for web scraping
- Node-notifier for desktop notifications
- CallMeBot API for WhatsApp integration
- Axios for HTTP requests
- TypeScript for type safety
- Bun as the JavaScript runtime
- Docker for containerization
- Random user agent rotation
- Random viewport sizes
- Random delays between actions
- Stealth mode enabled
- Anti-detection measures implemented
If you encounter any issues:
- Ensure all dependencies are properly installed
- Verify your CallMeBot API key is correct
- Check your internet connection
- Make sure your WhatsApp number is in the correct format
- Check the console for error messages
- For Docker issues, ensure the container has proper network access
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.