Skip to main content

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

FlagDescription
-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-optionsInclude configuration options (properties.project) in output

Available service types

ServiceDescription
workspaceWorkspace-level plugins
projectProject template plugins
codegenCode generation plugins
memoryMemory layout plugins
peripheralPeripheral configuration plugins
pinConfigPin configuration plugins
clockConfigClock 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]
FlagDescription
--coreShow core (built-in) plugins
--jsonFormat output as JSON
cfsutil plugins
cfsutil plugins --core

Install a plugin

cfsutil plugins install <PLUGIN>
Installs a plugin from npm or a Git URL.
FlagDescription
-f, --forceRun yarn install with --force flag
-s, --silentSuppress yarn output
-v, --verboseShow 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
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.
FlagDescription
--[no-]installInstall dependencies after linking
-v, --verboseShow 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.
FlagDescription
--hardAlso delete node_modules and related files
--reinstallReinstall 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]
FlagDescription
-n, --nocredentialDo not use credentials when pulling
-u, --updatePull even if the image already exists locally
-q, --quietSuppress 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.

Build docs developers (and LLMs) love