A Tampermonkey/Greasemonkey userscript that monitors Tesla's Model 3 and Model Y inventory pages and sends notifications via ntfy.sh when new vehicles become available.
- Real-time monitoring: Intercepts Tesla's inventory API responses
- Multi-language support: Automatically detects French (
/fr_*) or English URLs - Notification filters: Filter by motorization and color
- Auto-refresh: Automatic page refresh (randomized 60-180s to avoid blocking)
- ntfy.sh integration: Push notifications to your phone/desktop
- VIN tracking: Remembers seen vehicles to avoid duplicate notifications
- Model 3 (
/inventory/new/m3*) - Model Y (
/inventory/new/my*)
Install the Tampermonkey extension for your browser:
- Open Tampermonkey in your browser
- Click "Create a new script"
- Paste the contents of
tesla-notifier.user.js - Save the script
When you first visit a Tesla inventory page, the script will prompt you for:
- NTFY URL: Your ntfy.sh topic URL (e.g.,
https://ntfy.sh/my-tesla-alerts) - Bearer Token: Your ntfy.sh access token (starts with
tk_)
These credentials are stored locally in your browser and are never sent to any server except ntfy.sh for notifications.
- Go to ntfy.sh
- Create an account or use a public topic
- Go to Settings → Access Tokens
- Create a new token (starts with
tk_)
-
Navigate to a Tesla inventory page:
- Model 3:
https://www.tesla.com/*/inventory/new/m3* - Model Y:
https://www.tesla.com/*/inventory/new/my*
- Model 3:
-
The Tesla Notifier panel will appear in the bottom-right corner
-
Configure your filters:
- Motorization: Select which trim levels to monitor
- Color: Select which colors to monitor
-
Click "Auto" to enable automatic refresh (randomized 60-180s)
-
When a new vehicle matching your filters is found, you'll receive a notification
| Button | Function |
|---|---|
| Auto | Start/stop automatic refresh (60-180s randomized countdown) |
| Reset | Clear all cached VINs (single click) |
| Reset (double-click) | Clear VINs + reset ntfy configuration |
| Logs ▶ | Show/hide activity log |
| - | Minimize/expand panel |
To change your ntfy.sh credentials:
- Double-click the "Reset" button
- Confirm the reset
- Refresh the page
- You will be prompted for new credentials
Alternatively, you can clear Tampermonkey's stored values:
- Tampermonkey → Dashboard → Tesla Stock Notifier → Storage → Clear
The script automatically detects the language based on the Tesla URL:
| URL Pattern | Language |
|---|---|
/fr_*/ |
French (Français) |
| All others | English |
Currently supported languages:
- French (
fr) - English (
en)
To add a new language, edit the i18n object in the script and add a new language key:
const i18n = {
fr: { ... },en: { ... },
de: { // German// Add all translations here
title: 'Tesla Notifier',
filtersTitle: 'Benachrichtigungsfilter',
// ...
}
};Then update the language detection logic:
const lang = urlMatch && urlMatch[1].toLowerCase().startsWith('fr') ? 'fr'
: urlMatch && urlMatch[1].toLowerCase().startsWith('de') ? 'de'
: 'en';Notifications include:
- Year and trim
- Price (EUR)
- Mileage (km)
- Exterior color
- Interior color
- VIN
- Direct link to order page
Example:
2025 Premium Grande Autonomie Propulsion
Price: 45,990 EUR
Km: 0
Color: Blanc Nacré Multicouches
Interior: Noir Premium
VIN: LRW3...
Link: https://www.tesla.com/fr_fr/my/order/LRW3...
- Data Storage: Uses
GM_getValue/GM_setValuefor persistent storage - API Interception: Intercepts both
fetchandXMLHttpRequestresponses - VIN Cleanup: Automatically removes VINs older than 24 hours from cache
- All credentials are stored locally in your browser
- No data is sent to any third-party server (except ntfy.sh for notifications)
- The script only runs on Tesla inventory pages
- Check your ntfy.sh topic URL and token
- Double-click "Reset" to reconfigure credentials
- Check the browser console for errors
- Make sure Tampermonkey is installed and enabled
- Check that the script is enabled in Tampermonkey
- Verify the
@matchpattern includes your Tesla inventory URL
The script caches VINs for 24 hours. If you receive duplicates:
- Click "Reset" to clear the VIN cache
- Check that auto-refresh is working properly
tesla-inventory-notifier/
├── tesla-notifier.user.js # Main userscript
├── AGENTS.md # Development guidelines
└── README.md # This file
- Edit
tesla-notifier.user.js - Update the
@versionnumber in the header - Test on a Tesla inventory page
- Commit your changes
GNU Affero General Public License v3.0 with additional clauses.
Key points:
- Personal and non-commercial use permitted
- Forks must retain license and attributions
- Significant modifications must be proposed via Pull Request
- Commercial use prohibited without written authorization
See LICENSE.md for full details.
Copyright © 2026 JordiMa (contact@jordimarzo.fr)
Contributions are welcome! Please read CONTRIBUTING.md for details.
Key points:
- Fork and create a branch for your changes
- Submit Pull Requests for significant modifications
- Follow the code style in AGENTS.md
- Commercial use requires authorization
Contact: contact@jordimarzo.fr