Commander guide
Commander Command Line
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:
- Parsed unified diffs with old/new gutters and change counts.
- JSON tree and table modes with lazy, bounded expansion.
- Logs with text search and error, warning, info and debug filters.
- CSV tables through the optional
csv-viewerplugin. - Existing image, audio and video surfaces after the bytes match a known media signature.
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.