FDO / CLI GUIDE
Your workspace.
From the terminal.
Create, validate, test, and deploy plugins with the desktop app’s command-line interface.
Enable the command
Install FDO, then enable the fdo command in
Settings → General. Open a new terminal afterwards.
If installation selected a user-directory fallback, add that directory
to your shell’s PATH.
After moving the app or switching between development and packaged builds, use Repair command in the same settings panel.
fdo --help
fdo --version
fdo doctor
doctor checks installation, PATH, profile, plugin
registry, signing identity, and OS credential storage. Warnings or
errors produce a nonzero exit status. A missing root signing identity
on a fresh install can be expected: FDO creates it on the first
default-root signing or deployment operation when secure credential
storage is available.
Create your first plugin
fdo init ./my-tool --template blank
fdo validate ./my-tool
fdo test ./my-tool --json
fdo dev ./my-tool
init creates source, styles, tests, and a development
guide in a new or empty directory. Use fdo init --help to
see available templates and naming options.
validate builds in memory and inspects the manifest,
paths, metadata, SDK imports, and declared capabilities. It does not
write a bundle or perform full TypeScript type checking.
test uses the same workspace runner as the editor,
including TypeScript and CSS support. Failed tests, compilation
failures, and an empty test suite return nonzero. Set a per-file limit
with --timeout <seconds> (default 30; range
1–3600).
dev deploys initially, then watches source changes and
redeploys. Fix a compilation error and save to retry. Press Ctrl+C to
stop; an in-progress deployment finishes before exit. New plugins
still need activation and capability approval in FDO.
Preview, sign, and deploy
fdo deploy ./my-tool --dry-run --json
fdo deploy ./my-tool --label root
fdo plugins list
fdo plugins info my-tool --json
fdo plugins verify my-tool --json
fdo plugins logs my-tool --follow
The dry run validates the workspace and reports the target profile, install/update status, signing identity, and preserved grants. It does not compile to disk, sign, or register the plugin.
Deployment compiles, signs, and registers the plugin. Existing grants are preserved; new plugins start inactive without grants. GitOps-managed plugins must be updated through their collection.
plugins verify returns zero only if at least one plugin
was checked and all signatures are valid.
plugins info reports signature status without treating an
invalid signature alone as command failure.
Separate build steps are available with
fdo compile ./my-tool and
fdo sign plugin ./my-tool --label root. List available
identities with fdo sign list.
Profiles and structured output
fdo profiles list --json
fdo --profile development plugins list --json
fdo --profile development dev ./my-tool
fdo --profile development open
Place --profile <name> before the command. Named
profiles isolate settings, plugin registries, signing identities, and
browser sessions. Each profile requires its own activation and
capability approvals. Use separate plugin checkouts when you need
independently signed copies: signing replaces that workspace’s
signature.
Supported commands accept --json and write one structured
document to standard output, with diagnostics on standard error.
Interactive or streaming commands such as open,
dev, completion, and log follow mode do not
support JSON output.
Command reference
| Command | Purpose |
|---|---|
open |
Open the selected desktop profile. |
doctor |
Inspect installation and profile readiness. |
init <path> |
Create a plugin from a template. |
validate <path> |
Check a workspace without writing a bundle. |
test <path> |
Run plugin workspace tests. |
compile <path> |
Build the plugin bundle. |
sign list |
List signing identities. |
sign plugin <path> |
Sign a compiled plugin. |
deploy <path> |
Compile, sign, and register a plugin. |
dev <path> |
Watch and redeploy source changes. |
plugins list / info / verify / logs |
Inspect installed plugins, signatures, and logs. |
profiles list |
Inspect available profiles. |
completion <shell> |
Generate Bash, Zsh, Fish, or PowerShell completion scripts. |
sdk migrate --target <path> |
Preview SDK migration; use --write interactively
to apply.
|
Run fdo <command> --help for options. The
repository CLI documentation
covers shell setup, locking, rollback, and detailed command behavior.