OpenWebRX+ Plugins is a community-driven collection of plugins that extend OpenWebRX+ with new features, UI enhancements, and integrations for SDR receivers.
This repository provides a set of plugins for OpenWebRX+, allowing users to customize and enhance their SDR experience. Plugins are grouped into:
Each plugin is documented in its own folder.
htdocs folder and set a helper variable:
export OWRX_FOLDER=$(dirname "$(find / -name openwebrx.js 2>/dev/null | head -n1)")
init.js sample file:
mkdir -p "$OWRX_FOLDER/plugins/receiver"
cd "$OWRX_FOLDER/plugins/receiver"
wget https://0xaf.github.io/openwebrxplus-plugins/receiver/init.js.sample -O init.js
init.js file and load the desired plugins:
${EDITOR-nano} init.js
Plugins.load lines (utils, notify). They are shared dependencies. Add or remove names in PluginsToLoad to pick which plugins you want.| Name | Description |
|---|---|
| freq_scanner | Adds a frequency scanner)(Joerg) |
| smeter | Show S-Meter (needs calibration!)(Joerg) |
| search_bookmarks | Search all OWRX bookmarks and click to tune (Yannis) |
| toggle_scannable | Toggle the scannable state of bookmarks with right mouse button |
| tune_precise | Add buttons for precise frequency tuning (LZ2DMV) |
| mouse_freq | Show frequency under cursor on the waterfall |
| doppler | Track Doppler shift/effect of satellites |
| magic_key | Set MagicKey without typing it in the browser’s address bar |
| screenshot | Take screenshot of the waterfall |
| screen_reader | Provide spoken notifications for accessibility |
| antenna_switcher | Antenna switching for Raspberry Pi devices (LZ2DMV) |
| tune_checkbox | Enable mouse-scroll to zoom by default (LZ2DMV) |
| frequency_far_jump | Jump to a frequency outside the current profile (LZ2DMV) |
| (deprecated) Add keyboard shortcuts | |
| colorful_spectrum | Colorize the spectrum analyzer |
| connect_notify | Send/receive notifications on user connect/disconnect |
| sort_profiles | Sort profiles by name |
| utils | Utility plugin, required by many plugins |
| notify | Notification utility plugin |
| example | Example plugin for developers |
| example_theme | Example theme plugin for developers |
| Name | Description |
|---|---|
| (deprecated) Add Maidenhead (QTH) grid to the map |
| Name | Description |
|---|---|
| owrxantswitcher | Switch antenna ports using a WebAPI on the server. |
Find your OpenWebRX+ htdocs folder
Use the following command to locate it:
find / -name openwebrx.js
htdocs:
/opt/openwebrx/htdocs/usr/lib/python3/dist-packages/htdocsCreate the plugins folders if they doesn’t exist
mkdir -p /path/to/htdocs/plugins/{receiver,map}
init.js file inside the coresponding plugin type folder (receiver or map)Add plugin loading lines to your init.js file if you’re not using the provided init.js - see Beginner Quickstart
Use the async pattern so dependencies load first:
(async () => {
await Plugins.load('https://0xaf.github.io/openwebrxplus-plugins/receiver/utils/utils.js');
await Plugins.load('https://0xaf.github.io/openwebrxplus-plugins/receiver/notify/notify.js');
await Plugins.load('https://0xaf.github.io/openwebrxplus-plugins/receiver/tune_precise/tune_precise.js');
})();
Raspberry Pi:
If using Raspberry Pi images, a caching service (varnish) may prevent plugins from loading immediately after editing init.js.
Restart services to clear cache:
sudo systemctl restart varnish nginx
Docker:
For Docker images (openwebrxplus), bind-mount the plugins folder and follow the above instructions. See Docker image documentation for details.
If you want to create new plugins:
$OWRX_FOLDER/plugins/{type}/your_plugin/.Plugins.load('your_plugin');Plugins.load('https://0xaf.github.io/openwebrxplus-plugins/map/layer_qth_maidenhead/layer_qth_maidenhead.js');plugins/{receiver|map}/plugin_name/ and has a matching JS entry file plugin_name.js.Plugins.<name>.init() must return true on success; return false (or nothing truthy) to abort when a prerequisite is missing._version (for dependency checks) and no_css = true if you do not want the loader to fetch plugin_name.css automatically.no_css unset.await Plugins.load('dependency') before loading plugins that need them.To host plugins on GitHub, use GitHub Pages for correct JS Content-Type.
Contributions are welcome!
Use these plugins at your own risk. No warranty is provided.
For support, contact LZ2SLL or join the OWRX+ Telegram Chat.
Q: My plugin changes are not visible after editing init.js.
A: If using Raspberry Pi images, restart varnish and nginx as described above.
Q: Where do I put my local plugins?
A: In the htdocs/plugins/receiver or htdocs/plugins/map folder of your OpenWebRX+ installation.
Q: How do I load a plugin from a URL?
A: Use Plugins.load('https://.../plugin_name/plugin_name.js'); in your init.js.
This project is licensed under the MIT License.