NorviTech Arrmes

Arrmes / Walkthrough

Preview Sonarr and Radarr requests in plain language

Turn requests such as “Show Sonarr queue” into read-only API plans on your own machine, before connecting Arrmes to a media service.

Start with a local preview

You need Python 3.12 or later and Git. This walkthrough uses Arrmes v1.4.4. It runs without a model, API key or media server.

python3 -m venv .venv
. .venv/bin/activate
git clone --depth 1 --branch v1.4.4 https://github.com/spencernorton/arrmes.git
python -m pip install ./arrmes

Check what three requests would do

Save this as preview_arrmes.py. The example caller can request reads only. Arrmes routes the explicit service name and turns each request into a plan.

from arrmes.planner import Principal, prepare
from arrmes.services import route_service_query

reader = Principal('local-preview', frozenset({'media:read'}))
requests = (
    'Show Sonarr queue',
    'Show Radarr history',
    'Look up "Sintel" in Radarr',
)
for request in requests:
    call = route_service_query(request)
    plan = prepare(call, reader)
    print(plan['arguments'], plan['dry_run'], plan['executed'])

Run python preview_arrmes.py. Each line shows a service and operation, followed by dry_run and executed.

{'service': 'sonarr', 'operation': 'queue'} True False
{'service': 'radarr', 'operation': 'history'} True False
{'service': 'radarr', 'operation': 'search', 'query': 'Sintel'} True False

These are previews. The first would check Sonarr’s queue, the second would read Radarr’s history, and the third would search for a title. No service received an API call. Use one service per request for this walkthrough.

Connect one service when you are ready

Follow the authenticated HTTP setup to add a client and one service. Start with read-only permissions and compare the returned result with the service’s own interface. A write needs explicit, single-use confirmation. Use the capability guide to check which operations each integration supports.

Back to Arrmes