asl-control
Monitor and control AllStar Link amateur radio nodes via REST API
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/kj5irq/asl-controlAllStar Link Node Control
Control and monitor your AllStar Link node through the ASL Agent REST API.
Prerequisites
This skill is a client. It talks to an ASL3 agent backend that must be running independently on a Raspberry Pi (or any host reachable over your network).
You need:
- A Raspberry Pi running the
asl-agentFastAPI service (seebackend/in this repo for the server code) - The Pi must be reachable from wherever OpenClaw runs -- Tailscale is the recommended way
- The Pi's
config.yaml(at/opt/asl-agent/config.yaml) contains your API key and node number
Environment variables (set in your secrets file, e.g. ~/.config/secrets/api-keys.env):
ASL_PI_IP-- IP address of the Pi (Tailscale IP preferred, works from anywhere)ASL_API_KEY-- Bearer token from the Pi'sconfig.yamlASL_API_BASE-- (optional) override the full base URL if you're not on port 8073. Format:http://host:portASL_STATE_DIR-- (optional) override where favorites/net state files are stored. Default:~/.openclaw/state/asl-control/
Usage
All commands go through the Python client. Always source your secrets first:
source ~/.config/secrets/api-keys.env
python3 {baseDir}/scripts/asl-tool.py <command> [flags]
Every command supports --out json (default, machine-readable) or --out text (human-readable one-liner).
Quick reference
# Status & monitoring
python3 {baseDir}/scripts/asl-tool.py status --out text
python3 {baseDir}/scripts/asl-tool.py nodes --out text
python3 {baseDir}/scripts/asl-tool.py report --out text
python3 {baseDir}/scripts/asl-tool.py audit --lines 20
# Connect / disconnect
python3 {baseDir}/scripts/asl-tool.py connect 55553 --out text
python3 {baseDir}/scripts/asl-tool.py connect 55553 --monitor-only --out text
python3 {baseDir}/scripts/asl-tool.py disconnect 55553 --out text
# Favorites
python3 {baseDir}/scripts/asl-tool.py favorites list
python3 {baseDir}/scripts/asl-tool.py favorites set mynet 55553
python3 {baseDir}/scripts/asl-tool.py favorites remove mynet
python3 {baseDir}/scripts/asl-tool.py connect-fav mynet --out text
# Net profiles (timed sessions, auto-disconnect default)
python3 {baseDir}/scripts/asl-tool.py net list
python3 {baseDir}/scripts/asl-tool.py net set ares 55553 --duration-minutes 90
python3 {baseDir}/scripts/asl-tool.py net start ares --out text
python3 {baseDir}/scripts/asl-tool.py net status --out text
python3 {baseDir}/scripts/asl-tool.py net tick --out text
python3 {baseDir}/scripts/asl-tool.py net stop --out text
python3 {baseDir}/scripts/asl-tool.py net remove ares
# Watch (JSON-line event stream)
python3 {baseDir}/scripts/asl-tool.py watch --interval 5 --emit-initial
State files
Favorites and net session state live outside the repo, so they survive updates:
~/.openclaw/state/asl-control/favorites.json~/.openclaw/state/asl-control/net-profiles.json~/.openclaw/state/asl-control/net-session.json
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-kj5irq-asl-control": {
"enabled": true,
"auto_update": true
}
}
}