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.