Skip to content

CLI Usage

o51r15 edited this page Aug 23, 2026 · 4 revisions

The continuous scheduler lives in web.py. The CLI entry point, inspectarr.py, is for one-off scans and testing — it runs a single scan and exits.


Testing your connections

python3 inspectarr.py --test

Tests every configured service and exits without scanning anything:

Testing connections from config.yaml

  Torrent Client (qbittorrent)  OK
  Sonarr                        OK
  Radarr                        OK
  Lidarr                        skipped (not configured)
  Prowlarr                      OK
  Ollama (qwen2.5:7b-instruct)  OK

All 5 configured service(s) reachable.

These are the same checks that System → Status runs, so the command and the page can never disagree about whether something is reachable.

Exit codes

Code Meaning
0 Every configured service answered.
1 At least one configured service did not.
2 The config could not be loaded, or failed validation.

A config that will not parse is a different problem from a service that will not answer, which is why they are separate codes — useful if you are calling this from a script or a health check.

Services you have switched off report as skipped and do not affect the exit code. A config with nothing configured at all exits 1 rather than reporting success at having tested nothing.

--test is safe to run at any time, including against a running install mid-scan: it opens no database and starts nothing.


Flags

python3 inspectarr.py                    # run a single scan, then exit
python3 inspectarr.py --config /path     # use an alternate config file
python3 inspectarr.py --dry-run          # force dry run regardless of config
python3 inspectarr.py --retry-now        # flush the retry queue first, then scan
python3 inspectarr.py --daemon           # continuous scan loop (poll_interval_seconds)
Flag Effect
--config <path> Load config from a non-default location
--dry-run Override dry_run to true for this run — log matches, take no action
--retry-now Process any due entries in the retry queue before running the scan
--daemon Run a continuous scan loop instead of single-shot, with graceful SIGINT/SIGTERM handling. Also processes retries and quarantine timeouts each cycle, exactly as the web scheduler does.

Running a one-off scan in Docker

If Inspectarr is running as a container, you can run a single CLI scan against it without disturbing the daemon:

docker exec inspectarr python inspectarr.py --dry-run

When to use the CLI vs the web UI

  • Web UI / scheduler — normal operation. Set it and forget it; the daemon scans on your interval.
  • CLI — testing a config change, validating a new rule with --dry-run, or forcing a retry flush. Use --daemon for a headless continuous loop without the web UI.

Clone this wiki locally