ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

asl-control

Monitor and control AllStar Link amateur radio nodes via REST API

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/kj5irq/asl-control
Or

AllStar 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-agent FastAPI service (see backend/ 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's config.yaml
  • ASL_API_BASE -- (optional) override the full base URL if you're not on port 8073. Format: http://host:port
  • ASL_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

Author@kj5irq
Stars1776
Views1
Updated2026-03-02
View Author Profile
AI Skill Finder

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 skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-kj5irq-asl-control": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.