Skip to content

nps-ctl

A Python CLI and library for managing NPS proxy server clusters.

PyPI version Python version License CI

Upstream NPS fork

nps-ctl targets the djylb/nps fork, which is the actively maintained continuation of the original NPS project. Make sure your NPS server instances are running this fork.

Features

  • Multi-edge cluster management — control multiple NPS server nodes from a single CLI, with per-edge or broadcast operations.
  • Rich CLI and Python API — full-featured command-line interface powered by Rich, plus a Python library for scripting and automation.
  • SSH deployment of NPS/NPC — install, upgrade, and manage NPS server and NPC client binaries on remote hosts over SSH.
  • Cross-edge sync and broadcast — add or remove hosts and tunnels across all edges in one command.
  • HTTP Basic Auth for hosts — configure authentication on HTTP host mappings directly from the CLI.
  • Minimal dependencies — only requires rich; no heavyweight frameworks.

Get Started

Install from PyPI:

pip install nps-ctl

Then configure your edges in ~/.config/nps-ctl/edges.toml and start managing your cluster:

nps-ctl edge list
nps-ctl client list
nps-ctl host list
  • Installation — install nps-ctl and set up your environment
  • Quick Start — configure your first edge and run basic commands
  • CLI Reference — complete reference for all command groups
  • Python Library — use nps-ctl as a library in your own scripts