Skip to main content

frpctl Guide

frpctl is the everyday operator interface. You can use it interactively or run a full command directly from the shell.

Start here if you are new

The interactive CLI provides completion and context help:

Choose the command by what you want to do

The grammar

CLIENT ID is the canonical selector

The server’s canonical identity is the immutable CLIENT ID. Label and hostname are human-friendly metadata and can change. show clients prints CLIENT ID first. Tab completion prefers CLIENT ID. A unique label or hostname may work when typed manually, but an ambiguous selector fails closed.

Common server commands

Common client commands

Client service changes are staged. apply makes them live; discard drops pending changes.

Three lifecycle verbs you must not mix up

Stable vs development commands

This documentation’s operational baseline is stable v2.1.2. The main branch identifies as 2.1.3 development and may contain additional commands or lifecycle helpers not present in the stable tag. For exact stable syntax, use the CLI Reference.

Safety behavior

  • doctor is read-only.
  • history is session-only and is not persisted by frpctl.
  • FRP stays pinned to the project-tested version; show upstream is informational.
  • Ambiguous identity selection should fail rather than guess.
Last modified on September 7, 2026