Skip to main content

RadioShaq: Ham Radio AI Orchestration and Remote SDR Reception System

Project description

RadioShaq

Strategic Ham Radio Autonomous Query and Kontrol System

An AI-powered orchestrator for ham radio operations, emergency communications, and field-to-HQ coordination. One install gives you the API, web UI, and optional remote SDR receiver.


Install

pip install radioshaq

Optional (for SDR hardware): pip install radioshaq[sdr] (RTL-SDR) or radioshaq[hackrf] (HackRF).

Requirements: Python 3.11+

License notice: RadioShaq is distributed under GPL-2.0-only. Official CLI and web UI require explicit license acceptance before normal use.


Easiest way to get started: interactive setup

From a project directory (or the repo root), run:

radioshaq setup

This walks you through:

  • Mode — field, hq, or receiver
  • Database — use Docker Postgres or an existing URL
  • Secrets — JWT secret, LLM API key (optional)
  • Config — writes .env and config.yaml, can start Docker and run migrations

Minimal prompts: radioshaq setup --quick (mode + “use Docker?” then defaults).

Non-interactive (CI/scripts): radioshaq setup --no-input --mode field (optionally --db-url postgresql://...).

Reconfigure: radioshaq setup --reconfigure to update existing config without starting over.


Run the API and web UI

radioshaq run-api

Default host: 0.0.0.0, port: 8000. Override with --host and --port.


Get a token (auth)

Most API calls need a Bearer JWT:

radioshaq token --subject op1 --role field --station-id STATION-01

Then set RADIOSHAQ_TOKEN to the printed value, or pass it in requests. Roles: field, hq, receiver.

Check API from the CLI:

radioshaq health
radioshaq health --ready

CLI at a glance

Command What it does
setup
radioshaq setup Interactive setup: .env, config.yaml, optional Docker and migrations
radioshaq setup --quick Minimal prompts (mode, use Docker?), then defaults
radioshaq setup --no-input --mode field Non-interactive for CI; optional --db-url, --config-dir
radioshaq setup --reconfigure Update existing config (merge sections)
Server & auth
radioshaq run-api Start FastAPI server (and web UI at /). Options: --host, --port, --reload
radioshaq run-receiver Start remote SDR receiver (port 8765). Set JWT_SECRET, STATION_ID, HQ_URL
radioshaq token Get JWT. Options: --subject, --role, --station-id, --base-url
radioshaq health Liveness check; radioshaq health --ready for readiness
Callsigns (require RADIOSHAQ_TOKEN)
radioshaq callsigns list List registered callsigns
radioshaq callsigns add <callsign> Register a callsign
radioshaq callsigns remove <callsign> Remove from whitelist
radioshaq callsigns register-from-audio <file> Register from audio (ASR)
Messages
radioshaq message process <text> Send message through REACT orchestrator
radioshaq message inject <text> Inject into RX path (demo). Options: --band, --mode, --source-callsign
radioshaq message whitelist-request <text> Whitelist request (orchestrator + optional TTS)
radioshaq message relay <msg> --source-band X --target-band Y Relay message between bands
Transcripts
radioshaq transcripts list List transcripts. Options: --callsign, --band, --since, --limit
radioshaq transcripts get <id> Get one transcript
radioshaq transcripts play <id> Play transcript as TTS over radio
Radio
radioshaq radio bands List bands
radioshaq radio send-tts <message> Send TTS over radio. Options: --frequency-hz, --mode

Use radioshaq --help and radioshaq <command> --help for options. API base URL: RADIOSHAQ_API (default http://localhost:8000).


Remote receiver (SDR listen-only)

For a listen-only station (e.g. Raspberry Pi + RTL-SDR) that streams to HQ:

pip install radioshaq[sdr]   # or radioshaq[hackrf] for HackRF
export JWT_SECRET=your-secret
export STATION_ID=RECEIVER-01
export HQ_URL=http://your-hq:8000
radioshaq run-receiver

HQ accepts uploads at POST /receiver/upload (Bearer JWT). Default receiver port: 8765 (--port to change).


After install (no interactive setup)

If you prefer to configure by hand:

  1. Database: Set DATABASE_URL or POSTGRES_* (and run migrations with your Alembic config).
  2. Config: Copy config.example.yaml to config.yaml and set mode, database, auth, etc. See Configuration.
  3. Start: radioshaq run-api.

Documentation


License

GPL-2.0-only

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

radioshaq-0.1.3.dev202603080128.tar.gz (348.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

radioshaq-0.1.3.dev202603080128-py3-none-any.whl (424.4 kB view details)

Uploaded Python 3

File details

Details for the file radioshaq-0.1.3.dev202603080128.tar.gz.

File metadata

File hashes

Hashes for radioshaq-0.1.3.dev202603080128.tar.gz
Algorithm Hash digest
SHA256 e1af3872a9cd482fb5602f8eff63c8f5e5f287d66bd07e572d2f5b06cca2c12a
MD5 be8788201ecda5f562e945f5149f5ab9
BLAKE2b-256 f05c0fbfff673248658c5ffe03d9c92e30ad3b53d3cf071c6f39bf04aa5b064b

See more details on using hashes here.

Provenance

The following attestation bundles were made for radioshaq-0.1.3.dev202603080128.tar.gz:

Publisher: publish-nightly.yml on Josephrp/radioshaq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radioshaq-0.1.3.dev202603080128-py3-none-any.whl.

File metadata

File hashes

Hashes for radioshaq-0.1.3.dev202603080128-py3-none-any.whl
Algorithm Hash digest
SHA256 277f18325c22575d4bbe3e730d067c77e8d47aa0674e49587e74a7140715acec
MD5 57a81f5206c84b487235df1295b20f4b
BLAKE2b-256 a3730abce90ba572edebae2ca73df74f8745fe2bee63afa40796387f64b3e21c

See more details on using hashes here.

Provenance

The following attestation bundles were made for radioshaq-0.1.3.dev202603080128-py3-none-any.whl:

Publisher: publish-nightly.yml on Josephrp/radioshaq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page