TsArr CLI supports three configuration sources, merged in order of precedence.
.tsarr.json in project directory or parent)~/.config/tsarr/config.json)Both global and local config files use the same JSON format:
{
"services": {
"radarr": {
"baseUrl": "http://localhost:7878",
"apiKey": "your-api-key",
"timeout": 30000,
"headers": {
"User-Agent": "MyApp/1.0"
}
},
"sonarr": {
"baseUrl": "http://localhost:8989",
"apiKey": "your-api-key"
}
},
"defaults": {
"output": "table"
}
}
| Property | Type | Required | Description |
|---|---|---|---|
baseUrl |
string |
Yes | Service URL (e.g. http://localhost:7878) |
apiKey |
string |
Yes | API authentication key |
timeout |
number |
No | Request timeout in milliseconds |
headers |
object |
No | Custom HTTP headers per request |
| Service | Default Port |
|---|---|
| Radarr | 7878 |
| Sonarr | 8989 |
| Lidarr | 8686 |
| Readarr | 8787 |
| Prowlarr | 9696 |
| Bazarr | 6767 |
Each service supports four environment variables:
TSARR_RADARR_URL=http://localhost:7878
TSARR_RADARR_API_KEY=your-api-key
TSARR_RADARR_TIMEOUT=30000
TSARR_RADARR_HEADERS='{"User-Agent": "MyApp/1.0"}'
Replace RADARR with the uppercase service name: SONARR, LIDARR, READARR, PROWLARR, BAZARR.
tsarr config init
Walks through service selection, URL/key input, and connection testing. Offers to save globally or locally.
# Set in global config (default)
tsarr config set services.radarr.baseUrl http://localhost:7878
# Set in local config
tsarr config set services.radarr.apiKey my-key --local
tsarr config get services.radarr.baseUrl
tsarr config show
Displays the merged configuration from all sources as formatted JSON.
~/.config/tsarr/config.json): Your default service connections, shared across all projects..tsarr.json): Project-specific overrides. TsArr searches upward from the current directory. Useful for per-project service instances or team-shared configurations (commit it to your repo).