Documentation Index
Fetch the complete documentation index at: https://mintlify.com/analogdevicesinc/codefusion-studio/llms.txt
Use this file to discover all available pages before exploring further.
cfsutil supports two distinct plugin systems: oclif plugins, which extend the CLI itself with new commands, and CFS plugins, which extend CodeFusion Studio’s code generation, workspace creation, and peripheral configuration capabilities. Understanding the difference between these two systems is important when you want to add custom SoC support, new code generation engines, or additional CLI commands to your workflow.
CFS plugins (cfsutil cfsplugins)
CFS plugins provide the workspace templates, code generation engines, memory overlays, and peripheral configuration services used by CodeFusion Studio. They are installed either with the CFS IDE or via cfsutil pkg install, and are referenced by template IDs in workspace configuration files.
cfsutil cfsplugins list
cfsutil cfsplugins list [-s <path>] [--soc <name>] [--board <name>] \
[--service <service>] [--config-options]
Lists all available CFS plugins. Results can be filtered by SoC, board, or service type, and additional search paths can be used to include locally built plugins.
Flag reference
| Flag | Description |
|---|
-s=<path> | Additional plugin search path. Can be used multiple times |
--soc=<name> | Filter by supported SoC name |
--board=<name> | Filter by supported board name |
--service=<service> | Filter by service type (see table below) |
--config-options | Include configuration options (properties.project) in output |
Available service types
| Service | Description |
|---|
workspace | Workspace-level plugins |
project | Project template plugins |
codegen | Code generation plugins |
memory | Memory layout plugins |
peripheral | Peripheral configuration plugins |
pinConfig | Pin configuration plugins |
clockConfig | Clock configuration plugins |
# List all available plugins
cfsutil cfsplugins list
# List plugins for a specific SoC
cfsutil cfsplugins list --soc max32690
# List plugins for a specific board
cfsutil cfsplugins list --board EvKit_V1
# List workspace service plugins
cfsutil cfsplugins list --service workspace
# Combine filters
cfsutil cfsplugins list --soc max32690 --board EvKit_V1 --service project
# Include configuration option properties in output
cfsutil cfsplugins list --config-options
# Load from a local plugin development directory
cfsutil cfsplugins list -s /path/to/local/cfs-plugins/dist
Plugin template IDs
The template IDs shown by cfsplugins list are used as --template-id values in cfsutil workspace configure and cfsutil workspace create. For example:
# Discover the template ID for MAX32690 project plugins
cfsutil cfsplugins list --soc MAX32690 --service project
# Use the discovered ID when configuring a workspace
cfsutil workspace configure \
--soc MAX32690 \
--board AD-APARD32690-SL \
--core CM4 \
--template-id com.analog.project.msdk.plugin \
--name myWorkspace \
-o /path/to/output
Oclif plugins (cfsutil plugins)
Oclif plugins extend the cfsutil CLI itself by adding new top-level commands. They follow the oclif plugin framework and are installed from npm or Git URLs. A user-installed plugin that defines a command with the same name as a built-in command takes priority over the built-in.
List installed plugins
cfsutil plugins [--json] [--core]
| Flag | Description |
|---|
--core | Show core (built-in) plugins |
--json | Format output as JSON |
cfsutil plugins
cfsutil plugins --core
Install a plugin
cfsutil plugins install <PLUGIN>
Installs a plugin from npm or a Git URL.
| Flag | Description |
|---|
-f, --force | Run yarn install with --force flag |
-s, --silent | Suppress yarn output |
-v, --verbose | Show verbose yarn output |
cfsutil plugins add is an alias for cfsutil plugins install.
cfsutil plugins install my-custom-plugin
cfsutil plugins install https://github.com/someuser/someplugin
Link a plugin (development)
cfsutil plugins link <PATH>
Links a locally developed plugin into the CLI for development and testing. A linked plugin takes priority over both user-installed and core plugins.
| Flag | Description |
|---|
--[no-]install | Install dependencies after linking |
-v, --verbose | Show verbose output |
cfsutil plugins link ./my-plugin-dev
Inspect a plugin
cfsutil plugins inspect <PLUGIN>
Displays installation properties and metadata for a plugin.
cfsutil plugins inspect my-custom-plugin
Uninstall a plugin
cfsutil plugins uninstall <PLUGIN>
Removes a plugin from the CLI.
Aliases: cfsutil plugins remove, cfsutil plugins unlink
cfsutil plugins uninstall my-custom-plugin
Update all plugins
cfsutil plugins update [-v]
Updates all installed user plugins to their latest versions.
Reset plugins
cfsutil plugins reset [--hard] [--reinstall]
Removes all user-installed and linked plugins.
| Flag | Description |
|---|
--hard | Also delete node_modules and related files |
--reinstall | Reinstall all plugins after removing them |
Example CLI plugins
The CodeFusion Studio repository includes two reference CLI plugin examples under packages/cli-plugins:
add-soc plugin
A reference plugin that demonstrates how to add support for a custom SoC data model. Use this as a starting point if your target device is not in the standard CFS catalog. The plugin contributes a .cfsdatamodels index discoverable via --search-path in socs, ai, and workspace commands.
add-codegen plugin
A reference plugin that shows how to integrate a custom code generation engine with the CFS workspace pipeline. Custom codegen plugins are registered as CFS services and appear in cfsplugins list output once installed.
To install a CLI plugin built from the reference examples:
# Link for local development
cfsutil plugins link /path/to/packages/cli-plugins/add-soc
# Verify it is registered
cfsutil plugins --core
cfsutil docker pull
The docker pull command downloads Docker images from the Analog Devices registry. Authentication uses your active myAnalog session if you are logged in.
cfsutil docker pull IMAGE [-n] [-q] [-u]
| Flag | Description |
|---|
-n, --nocredential | Do not use credentials when pulling |
-u, --update | Pull even if the image already exists locally |
-q, --quiet | Suppress output from the pull command |
cfsutil docker pull docker.cloudsmith.io/adi/codefusion-public/EXAMPLE -q
Either Docker or Podman must be installed and available on PATH for docker pull to work.
cfsutil catalog
The catalog commands manage the SoC catalog — the metadata database for all supported CFS devices.
# Update the catalog to the latest online version
cfsutil catalog update
# Restore the catalog to its installed baseline
cfsutil catalog restore
catalog update requires an internet connection and an active myAnalog session. catalog restore uses the backup stored at <install_dir>/Data/SoC/catalog.zip and deletes the current catalog before restoring.