hyperhive/docs/tools/swarmctl-cli.md
atlas cc2503d9c7 treefmt: a generated CLI doc is the generator's, not prettier's
docs/tools/swarmctl-cli.md is rendered by `swarmctl markdown-docs`, and
nix/checks.nix's swarmctl-docs-fresh check diffs the committed copy
against fresh binary output. Enabling prettier on markdown rewrote its
list bullets and footer indentation, which no regeneration can settle:
formatting it fails the freshness check, not formatting it fails
treefmt. .prettierignore already carried hivectl-cli.md for exactly
this reason; swarmctl's doc was added later and the entry was not.

Restore the file to its generated bytes, list it alongside hivectl's,
and state the invariant where the next CLI doc gets added.
2026-09-02 15:25:07 +02:00

3.8 KiB

Command-Line Help for swarmctl

This document contains the help content for the swarmctl command-line program.

Command Overview:

swarmctl

swarm-level operator CLI

Usage: swarmctl [OPTIONS] <COMMAND>

Subcommands:
  • user — Manage subjects in the swarm's SSO provider
  • completions — Generate a shell completion script for swarmctl and print it to stdout
Options:
  • --authelia-bin <PATH> — authelia binary used to hash passwords. The argon2 parameters must match the verifier's, so this has to be the configured package rather than whatever is on PATH

  • --users-file <PATH> — Host-side path of authelia's users database — i.e. the path inside the container, prefixed with the container's root.

    This is the only user store: it is read before every change and written in place, and swarm-authelia-bridge writes the same file.

swarmctl user

Manage subjects in the swarm's SSO provider

Usage: swarmctl user <COMMAND>

Subcommands:
  • add — Add a user, generating a password for them
  • update — Change an existing user's attributes
  • list — List every user in authelia's users database

swarmctl user add

Add a user, generating a password for them

Usage: swarmctl user add [OPTIONS] <USERNAME>

Arguments:
  • <USERNAME> — Login name. Conservative ASCII only — it is a YAML map key and reaches access-control rules and logs
Options:
  • --display-name <TEXT> — Name shown in the SSO UI. Defaults to the username
  • --email <ADDRESS>
  • --group <GROUP> — Repeatable

swarmctl user update

Change an existing user's attributes.

Every flag is optional and they compose, so one call can set several things at once. Deliberately does not touch the password: regenerating a credential is a different intent from editing an attribute, and folded together an attribute edit can invalidate a login by accident.

Usage: swarmctl user update [OPTIONS] <USERNAME>

Arguments:
  • <USERNAME> — Login name of an existing user
Options:
  • --display-name <TEXT> — Name shown in the SSO UI
  • --email <ADDRESS>
  • --add-group <GROUP> — Repeatable. Adding a group the user is already in is not an error
  • --remove-group <GROUP> — Repeatable. Fails if the user is not in the group — a revocation that reports success without revoking is the failure nobody re-checks

swarmctl user list

List every user in authelia's users database.

Read-only: it never writes the file. Shows every subject in it, including agent identities swarm-authelia-bridge created — one line per user: username, display name, email (if set), groups (if any).

Usage: swarmctl user list

swarmctl completions

Generate a shell completion script for swarmctl and print it to stdout.

Supports bash, zsh, fish, elvish and powershell. The nix package already installs bash/zsh/fish system-wide; this is for ad-hoc or other-shell use.

Dispatched before PathArgs::resolve() for the same reason as markdown-docs: emitting a completion script needs none of the SWARMCTL_AUTHELIA_* deployment env vars, and requiring them would make the package's own build-time invocation fail.

Usage: swarmctl completions <SHELL>

Arguments:
  • <SHELL> — Shell to emit completions for

    Possible values: bash, elvish, fish, powershell, zsh


This document was generated automatically by clap-markdown.