Files
nexus-sync/docs/cli.md
T
2026-06-25 02:39:25 +03:00

2.0 KiB

CLI

nexus-cli is a small non-interactive CLI for the nexus-sync server API.

Install for development

pip install -e .
nexus-cli --help

The default server URL is http://127.0.0.1:5852. Override it with --server-url or -s.

List clients

nexus-cli --list

Show client info

nexus-cli client linux-client

The output includes basic client metadata and advertised available_commands.

Queue a command for a client

nexus-cli client linux-client --run-command hostname
nexus-cli client linux-client --run-command hostname --timeout-seconds 30

Payload shape:

{
  "name": "hostname",
  "args": {},
  "timeout_seconds": 30
}

Show command execution info

nexus-cli command cmd_123

If the client has reported a result, stdout and stderr are printed.

JSON output

Use --json for machine-readable output:

nexus-cli --json --list
nexus-cli --json client linux-client
nexus-cli --json command cmd_123

Localization

CLI output is localized with gettext (catalogs managed by Babel). Only user-facing CLI strings are translatable; daemon/server log messages are deliberately left untranslated.

Select a language with the NEXUS_SYNC_LANG env var (falls back to the system locale, then to the source English strings):

NEXUS_SYNC_LANG=ru nexus-cli command cmd_123

Translation sources live in src/nexus_sync/locale/<lang>/LC_MESSAGES/nexus.po. Workflow (requires pip install -e ".[dev]"):

make i18n-extract           # rebuild the .pot template from _()-wrapped strings
make i18n-update            # merge new/changed strings into existing catalogs
make i18n-init LANG=de      # start a new language
# edit the .po file, then:
make i18n-compile           # build the .mo files shipped with the binary

make cli compiles catalogs automatically and bundles them into the binary.

Build standalone binary

make cli

This creates dist/nexus-cli through PyInstaller (with localization catalogs bundled via --add-data).