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.2.dev202603071657.tar.gz (333.8 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.2.dev202603071657-py3-none-any.whl (407.4 kB view details)

Uploaded Python 3

File details

Details for the file radioshaq-0.1.2.dev202603071657.tar.gz.

File metadata

File hashes

Hashes for radioshaq-0.1.2.dev202603071657.tar.gz
Algorithm Hash digest
SHA256 8942a64933858ad4fd9de94b79881ea3b3d3097ec0937022eda8689863de3ef5
MD5 9eb00a1d278e0d5fdd490d1af8fd0aee
BLAKE2b-256 109f2c1e862ab2a3a0dd8c7ee738b36b5abd51881a68da6bc0198d80777f6620

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for radioshaq-0.1.2.dev202603071657-py3-none-any.whl
Algorithm Hash digest
SHA256 d5742f670b13dc78ac63b3be11dd6ccaa2683385677a6709c533bdaff03bbd9a
MD5 c08b55669fa05f40a935c29d9b5d1f0e
BLAKE2b-256 d4431580f6032c555f719d76eafdf7b2e99855f5af15e9d31c7bcfb926fd084e

See more details on using hashes here.

Provenance

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