Skip to main content

CLI Reference

This page documents the stable v2.2.1 CLI baseline. Mutable main may contain later development or docs-only changes, so field procedures should continue to use the immutable v2.2.1 release contract.

Grammar

Host role decides which commands appear in Tab/help. There is no separate server ... / client ... top-level namespace.

Interactive keys

Tab does not execute commands. drlink history is not written to disk.

Client selector

The canonical selector is CLIENT ID: immutable short machine identity. Changing label, note, tags, or hostname never changes CLIENT ID.
  • show clients prints CLIENT ID first.
  • Tab completes CLIENT ID.
  • A unique label/hostname can be typed manually.
  • Ambiguous selectors fail closed.
  • user@host:port is not a client selector.

Show

status and version remain compatibility shortcuts for the show form.

Set

Server:
Client:
Service IDs are immutable. Client-side pending changes become live after apply.

Unset

unset removes metadata; it does not release public ports or change identity.

Create / add

create zero-touch is the recommended everyday onboarding path.

Enable / disable / apply / discard

Disabling a service keeps the public-port reservation. apply does not release server ports.

Revoke / release / restore

These are never aliases. There is intentionally no ambiguous delete client command.

Update

The bundled relay engine remains pinned to the tested project version. show upstream is informational.

Other

Stable enrollment states

show enrollments can represent enrollment records in normalized lifecycle states such as:
Secrets are never printed by show, Tab, or help output.
Stable v2.2.1 includes the qualified enrollment lifecycle controls and bootstrap-hostname / Short URL support documented here. Mutable main may contain later changes; use the immutable v2.2.1 contract for field procedures.

Compatibility aliases

Last modified on September 10, 2026