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.dev202603090021.tar.gz (349.6 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.dev202603090021-py3-none-any.whl (425.9 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for radioshaq-0.1.3.dev202603090021.tar.gz
Algorithm Hash digest
SHA256 384f9f6d5bbbc2337d293d4a791cb9519e510bacf8197f3b868039dfe16e55bd
MD5 650e1979e39ad9ed74b0c6d5518a0b22
BLAKE2b-256 9baffc98fc6ac08636b5e8930de84fcbdd4c7860f68a22766579f5a13d32abfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for radioshaq-0.1.3.dev202603090021.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.dev202603090021-py3-none-any.whl.

File metadata

File hashes

Hashes for radioshaq-0.1.3.dev202603090021-py3-none-any.whl
Algorithm Hash digest
SHA256 54550daa1ec17b812f4b78aa2e110e0cf2b46e7a04608e7fe2d41870e8e92a84
MD5 31cfb627f609faeef2d84d864f642341
BLAKE2b-256 757f33c411f60c724fab16a701a7f32958d9b881e8f7bc5a7be3c9888969fa1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for radioshaq-0.1.3.dev202603090021-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