⚠️ Development Version — You are viewing documentation for a development version (dev_feat.v3.x.create-pr-fcli-action). This version may be unstable or incomplete. — View stable version (v3.x)

Synopsis

fcli ai-assist extensions setup [--dry-run] [--on-digest-mismatch=<action>] [-s=<zip|dir>] [-v=<version>] [--content-types=<type>[,<type>…​]]…​ [[-h] [--env-prefix=<prefix>] [--log-file=<logFile>] [--log-level=<logLevel>] [--log-mask=<level>] [--debug]] [[-o=<type+args>] [--style*=<style>,…​]…​ ] [--to-file=<outputFile>_]] (--assistants=<name>[,<name>…​] [--assistants=<name>[,<name>…​]]…​ | --auto-detect | --dir=<path>)

Description

Set up Fortify extensions (skills, agents, plugins) for AI coding assistants. This command is idempotent: it installs extensions if not present, or updates them if already installed (adding new files, updating changed files, removing obsolete files).

Exactly one of --assistants, --auto-detect, or --dir must be specified: - --assistants: explicitly name the coding assistants to target - --auto-detect: let fcli discover installed assistants via heuristic checks - --dir: install content directly to a specific directory (requires --content-types)

TARGET DIRECTORY DEDUPLICATION: When multiple assistants share a target directory for the same content type, extensions are installed only once to that directory. This avoids duplicate entries that some AI assistants would see if extensions were present in multiple locations. For example, if extensions are set up for both VS Code (GitHub Copilot) and Claude Code, skills may be installed to ~/.claude/skills only, since VS Code also processes that directory by default. The setup output marks such shared directories as EXISTING for the second assistant.

Note
Available extension versions, download URLs, and assistant detection logic are managed through fcli tool definitions (ai-assistant-extensions* at https://github.com/fortify/tool-definitions/tree/main/v1). Run fcli tool definitions update before running this command.
Note
Auto-detection uses heuristic checks (directory and command existence) which may produce false positives from stale directories of previously uninstalled tools, or miss IDE-embedded assistants (e.g., Copilot in Eclipse). For reliable results, use --assistants to explicitly specify your active assistants. Run 'fcli ai-assist extensions list-assistants --detect' to preview detection results before using --auto-detect.

Options

--assistants=<name>[,<name>…​]

Specify which assistants to target (e.g., --assistants claude,copilot). Mutually exclusive with --auto-detect and --dir.

--auto-detect

Auto-detect installed assistants using heuristic checks. Mutually exclusive with --assistants and --dir.

--content-types=<type>[,<type>…​]

Filter by content type: skills, agents, plugins. Default: all. Required with --dir.

--dir=<path>

Install content to a specific directory, bypassing assistant selection. Requires --content-types. Mutually exclusive with --assistants and --auto-detect.

--dry-run

Show what would be done without performing any changes.

--on-digest-mismatch=<action>

Action when downloaded zip digest does not match tool definitions: warn, fail. Default: fail.

-s, --source=<zip|dir>

Extensions source: local zip file or local directory. Overrides version resolution from tool definitions.

-v, --version=<version>

Extension version to install or update to (e.g., 1.0.0, latest, stable). Default: latest.

-o, --output=<type+args>

Select output type (csv, table, expr, json, xml, yaml) and optional type arguments.

--store=<var>[:<prop>]

Store JSON results in an fcli variable for later reference.

*--style*=<style>,…​

Select output style: header, no-header, pretty, no-pretty, flat, no-flat, array, single, border, no-border, md-border, wrap, no-wrap, fast-output, no-fast-output, envelope, no-envelope.

--to-file=<outputFile>

Write output to the specified file.

--debug

Enable collection of debug logs.

--env-prefix=<prefix>

Prefix for resolving default option values. Default value: FCLI_DEFAULT.

-h, --help

Use 'fcli [command] -h' to display help for fcli (sub-)commands.

--log-file=<logFile>

Write log output to file. Default: ./fcli.log if logging is enabled.

--log-level=<logLevel>

Set logging level: TRACE, DEBUG, INFO, WARN, ERROR, NONE.

--log-mask=<level>

Log mask level: high, medium, low, none. Default: medium. Masking is done on a best-effort basis; no guarantee that all sensitive data will be masked.