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.

← Back to FDO