← Commander Documentation

Commander guide

Commander Command Line

Use Commander's authenticated CLI bridge to reveal, view, edit and select files in the running app, open workspaces, fill the Drop Shelf and manage plugins.

Commander includes a command-line interface for shells, scripts and other tools. Most commands hand work to the running desktop app; plugin management, help and headless synchronization can run without opening the interface.

Run the executable without arguments to open Commander normally. Use any of the following for the complete built-in help:

commander --help
commander help
commander -h

Control the running app

These commands send one local request to the last-focused Commander window:

commander reveal PATH
commander view PATH
commander edit PATH
commander pane left PATH
commander pane right PATH
commander workspace open NAME
commander notify TEXT

reveal opens the containing folder and selects the item. view opens the F3 Viewer, and edit opens the built-in editor. The pane commands navigate the chosen pane, workspace open restores a named workspace, and notify shows a toast inside Commander.

Relative local paths are resolved in the calling shell before the request is sent, so they do not depend on Commander’s own working directory. Absolute paths and remote pane URIs pass through unchanged. The desktop app must already be running for these bridge commands.

The bridge is local and data-only. Each GUI session creates a fresh owner-only authentication token and accepts requests through its private application-data directory. It does not expose shell execution or arbitrary JavaScript. If a standalone Viewer or Editor has focus, Commander targets the most recently focused main window instead.

View typed and piped output

The Viewer can open a file under an explicit safe content type, or read standard input when no file is supplied:

git diff | commander view --type diff
some-command | commander view --type log
cat report.json | commander view --type json
commander view --type markdown README.txt
commander view --type csv report.data

Available types are:

auto, diff, markdown, json, log, csv, text, image, video, audio

A bare piped commander view and --type auto use conservative content detection and otherwise fall back to text. Explicit types override file-extension routing without modifying or copying the source file. HTML is deliberately not an allowed type; Markdown uses the Viewer’s sanitizer.

Structured views include:

Piped input is bounded to 16 MiB. It is placed in an owner-only transient file and removed when its Viewer closes; Commander also sweeps leftovers from an unclean shutdown on the next launch. An explicit auto FILE reads at most 16 MiB to classify it, while an explicitly typed file is routed in place. Unknown binary input is rejected rather than displayed as text.

Select paths and fill the Drop Shelf

Path-list commands accept newline- or NUL-delimited local paths from a file or standard input:

find ./photos -maxdepth 1 -type f | commander pane select --stdin
find ./project -type f -print0 | commander shelf add --stdin
commander pane select paths.txt
commander shelf add paths.txt

pane select requires every path to share one parent directory, opens that folder and marks the matching rows. shelf add can collect existing files and directories from different folders. Relative entries resolve against the caller’s working directory; remote URIs are rejected. A list is capped at 500 entries.

The current bridge carries one message at a time. Several writers racing inside one polling interval are last-writer-wins, so scripts should send dependent commands sequentially.

Manage plugins without the GUI

Plugin discovery and the verified marketplace installer are available from the shell:

commander plugins list
commander plugins search [QUERY]
commander plugins install NAME
commander plugins remove NAME
commander plugins help

uninstall is an alias for remove. Search and install are explicit network actions and default to Commander’s public HTTPS catalog. A private catalog can be selected per command or through the environment:

commander plugins search csv --catalog https://example.com/plugins/index.json
COMMANDER_PLUGIN_CATALOG_URL=https://example.com/plugins/index.json \
  commander plugins install example-viewer

Packages receive the same SHA-256, manifest and protocol validation as a GUI installation. Install or remove asks a running Commander window to reload its plugin registry. If a plugin needs an interpreter or dependency environment, plugins list reports needs setup; finish that progress-bearing setup under Options → Plugins.

Run a synchronization profile headlessly

Saved one-way local synchronization profiles retain their existing headless interface:

commander --sync-profile NAME
commander --sync-profile NAME --apply

The first form is a dry run. Additional safety and automation options are shown by commander --help, including Trash permission, an alternate profile store and a report path.