Skip to content

Repository files navigation

cli-tools

Release License Build

CLI tools for Portainer, nginx-proxy-manager, Transmission, Proxmox VE, and Audiobookshelf APIs

Install

curl -fsSL https://raw.githubusercontent.com/schmoli/cli-tools/main/install.sh | bash

Installs to ~/.local/bin.

Configuration

Variable Tools Description
PORTAINER_URL portainer-cli Portainer server URL
PORTAINER_TOKEN portainer-cli Portainer API token
NPROXY_URL nproxy-cli nginx-proxy-manager URL
NPROXY_TOKEN nproxy-cli nginx-proxy-manager JWT
TRANSMISSION_URL trans-cli Transmission RPC URL
TRANSMISSION_USER trans-cli Transmission username (optional)
TRANSMISSION_PASS trans-cli Transmission password (optional)
PVE_URL pve-cli Proxmox VE URL
PVE_TOKEN_ID pve-cli Proxmox API token ID (user@realm!tokenname)
PVE_TOKEN_SECRET pve-cli Proxmox API token secret
ABS_URL abs-cli Audiobookshelf URL
ABS_TOKEN abs-cli Audiobookshelf API token
SONARR_URL sonarr-cli Sonarr URL
SONARR_API_KEY sonarr-cli Sonarr API key
RADARR_URL radarr-cli Radarr URL
RADARR_API_KEY radarr-cli Radarr API key

Common Flags

Flag Short Description
--url Server URL (overrides env var)
--token API token (overrides env var)
--insecure -k Skip TLS certificate verification
--help -h Show help
--version -v/-V Show version

portainer-cli

Stacks

# List all stacks
portainer-cli stacks list

# Show stack details (includes compose file)
portainer-cli stacks show 1

Endpoints

# List all endpoints
portainer-cli endpoints list

# Show endpoint details
portainer-cli endpoints show 1

nproxy-cli

Login

Get a token by authenticating with email/password:

nproxy-cli login
# Email: admin@example.com
# Password: ****
# eyJhbGciOiJS...

Save the output to NPROXY_TOKEN.

Hosts

# List all proxy hosts
nproxy-cli hosts list

# Show proxy host details
nproxy-cli hosts show 1

Certificates

# List all certificates
nproxy-cli certificates list
nproxy-cli certs list  # alias

# Show certificate details
nproxy-cli certificates show 1

trans-cli

List Torrents

# List all torrents
trans-cli list

# Filter by status
trans-cli downloading
trans-cli seeding
trans-cli stopped

Show Torrent Details

trans-cli show 1

Add Torrents

# Add magnet link
trans-cli add "magnet:?xt=urn:btih:..."

# Add .torrent file
trans-cli add /path/to/file.torrent

Control Torrents

trans-cli start 1
trans-cli stop 1

pve-cli

List VMs and LXCs

pve-cli list

Start Guest

# Start VM or LXC by ID
pve-cli start 100

Stop Guest

# Stop VM or LXC by ID
pve-cli stop 100

abs-cli

Libraries

# List all libraries
abs-cli libraries list

Books

# List audiobooks (uses first library by default)
abs-cli books list
abs-cli books list --library <id> --limit 100

# Show audiobook details
abs-cli books show <id>

Progress

# Show listening progress (continue listening)
abs-cli progress

Search

# Search audiobooks
abs-cli search "primal hunter"
abs-cli search --library <id> "author name"

Scan

# Trigger library scan
abs-cli scan                    # scan all libraries
abs-cli scan --library <id>     # scan specific library

Getting Your API Token

  1. Log into Audiobookshelf web UI as admin
  2. Go to Settings → Users
  3. Click on your account
  4. Copy the API token

sonarr-cli

Series

# List all series
sonarr-cli series list

# Show series details
sonarr-cli series show <id>

Calendar

# Show upcoming episodes (default: 7 days)
sonarr-cli calendar
sonarr-cli calendar --days 14

Queue

# Show download queue
sonarr-cli queue

Wanted

# Show missing episodes
sonarr-cli wanted
sonarr-cli wanted --limit 50

Search

# Search for new series
sonarr-cli search "breaking bad"

radarr-cli

Movies

# List all movies
radarr-cli movies list

# Show movie details
radarr-cli movies show <id>

Calendar

# Show upcoming releases (default: 30 days)
radarr-cli calendar
radarr-cli calendar --days 60

Queue

# Show download queue
radarr-cli queue

Wanted

# Show missing movies
radarr-cli wanted
radarr-cli wanted --limit 50

Search

# Search for new movies
radarr-cli search "dune"

Output Format

All output is YAML. Errors go to stderr:

error:
  code: AUTH_FAILED
  message: Invalid or expired token

Exit codes: 1=config, 2=auth, 3=not found, 4=network, 5=api error

Shell Completions

Bash

# Add to ~/.bashrc
source <(portainer-cli completion bash)
source <(nproxy-cli completion bash)
source <(trans-cli completion bash)
source <(pve-cli completion bash)
source <(abs-cli completion bash)
source <(sonarr-cli completion bash)
source <(radarr-cli completion bash)

Zsh

# Add to ~/.zshrc
source <(portainer-cli completion zsh)
source <(nproxy-cli completion zsh)
source <(trans-cli completion zsh)
source <(pve-cli completion zsh)
source <(abs-cli completion zsh)
source <(sonarr-cli completion zsh)
source <(radarr-cli completion zsh)

If you get "command not found: compdef", add before the source lines:

autoload -Uz compinit && compinit

Uninstall

rm ~/.local/bin/{portainer-cli,nproxy-cli,trans-cli,pve-cli,abs-cli,sonarr-cli,radarr-cli}

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages