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.

The cfsutil workspace commands let you create and configure CodeFusion Studio workspaces entirely from the terminal. This is especially useful for scripted or CI-driven project setup: you can generate a workspace configuration file from command-line options, review or edit it, and then create the actual workspace from that file — or create a workspace directly by supplying all parameters as flags. The two workspace subcommands, configure and create, are designed to work together or independently.

Before you begin

Before configuring a workspace you will need the following information. Use the discovery commands in the table below to find the correct values for your target hardware.
Information neededDiscovery command
SoC name and available packagescfsutil socs list
Boards, packages, and cores for a specific SoCcfsutil socs info <SOC> --boards --packages --cores
Plugin IDs and template IDs for a SoCcfsutil cfsplugins list --soc <SOC>

cfsutil workspace configure

cfsutil workspace configure --soc <value> --board <value> --core <value> --template-id <value> \
  [-w <value>] [--name <value>] [-o <value>] [--package <value>] \
  [--template-version <value>] [-s <value>...] [-v]
Generates a .cfsworkspace JSON configuration file from command-line options. The generated file can be reviewed and edited before being passed to cfsutil workspace create -i to create the actual workspace.
--core and --template-id are paired flags. Each --core must be immediately followed by its corresponding --template-id. For multi-core projects, repeat the pair for each core. --template-version is optional and may follow a --template-id.

Flag reference

FlagRequiredDescription
--soc=<value>YesSoC name (for example, MAX32690, ADSP-SC835)
--board=<value>YesBoard name (for example, AD-APARD32690-SL)
--core=<value>YesCore name. Repeat for each core, each immediately followed by --template-id
--template-id=<value>YesTemplate (plugin) ID for the preceding --core
--template-version=<value>NoSpecific template version for the preceding --template-id. Uses latest if omitted
--name=<value>RecommendedName for the new workspace. Must be present here or in the generated file before running workspace create
-o, --output=<value>RecommendedSets the Location field in the generated file — where the workspace will be created
--package=<value>NoSoC package variant. Auto-detected from board if omitted
-w, --workspace-file=<value>NoName of the generated workspace config file. Default: cfsworkspace.json
-s, --search-path=<value>...NoAdditional directory to search for plugins and data models. Can be repeated
-v, --verboseNoEnable verbose output

Examples

cfsutil workspace configure \
  --soc MAX32690 \
  --board AD-APARD32690-SL \
  --core CM4 \
  --template-id com.analog.project.msdk.plugin \
  --name myWorkspace \
  -o /path/to/output

cfsutil workspace create

cfsutil workspace create [-s <value>...] [-i <value>] [-o <value>] [--name <value>] \
  [--soc <value>] [--board <value>] [--package <value>] \
  [--template-id <value>] [--template-version <value>]
Creates a CFS workspace from either an existing .cfsworkspace file (--input mode) or from command-line parameters (flag-driven mode). The two modes are mutually exclusive.
When using --input, workspace definition flags (--soc, --board, --package, --template-id, --template-version) are not supported and will cause an error. Only --name, --output, and --search-path may be combined with --input.

Create from a .cfsworkspace file

Use this mode after running cfsutil workspace configure, or with a .cfsworkspace file generated by the CFS IDE.
FlagDescription
-i, --input=<path>Required. Path to the .cfsworkspace file
--name=<value>Override or fill in the WorkspaceName field in the file
-o, --output=<path>Override or fill in the Location field in the file
-s, --search-path=<path>...Additional directories to search for plugins and data models. Can be repeated
cfsutil workspace create -i path/to/myWorkspaceConfig.json
If Location/WorkspaceName already exists on disk, use --name or --output to redirect to a different path:
cfsutil workspace create -i myWorkspaceConfig.json --name myWorkspace_v2 -o /new/output/path
Sample .cfsworkspace file:
{
  "Copyright": "(C) Analog Devices, Inc 2026. Generated by CodeFusion Studio CLI",
  "Timestamp": "2026-04-09T10:38:53.862Z",
  "Soc": "MAX32690",
  "Package": "WLP",
  "Board": "AD-APARD32690-SL",
  "WorkspaceName": "Apard_ws",
  "Location": "C:\\Users\\<username>\\cfs\\2.2.0",
  "WorkspacePluginId": "",
  "WorkspacePluginVersion": "",
  "Projects": [
    {
      "Core": "CM4",
      "Soc": "MAX32690",
      "Package": "WLP",
      "CoreId": "CM4",
      "Name": "Arm Cortex-M4F",
      "FirmwarePlatform": "MSDK",
      "IsPrimary": true,
      "IsEnabled": true,
      "PluginId": "com.analog.project.msdk.plugin",
      "PluginVersion": "1.2.0",
      "PlatformConfig": {
        "ProjectName": "CM4",
        "MsdkBoardName": "APARD"
      }
    }
  ],
  "DataModelVersion": "1.3.628",
  "DataModelSchemaVersion": "1.2.0"
}

Create from command-line flags

Supply all workspace parameters directly. The generated workspace path is <output>/<name>.
FlagRequiredDescription
-o, --output=<path>YesOutput directory for the new workspace (excluding workspace name)
--name=<value>YesName of the new workspace
--soc=<value>YesSoC name
--board=<value>YesBoard name
--template-id=<value>YesTemplate (plugin) ID
--package=<value>NoPackage name. Defaults to the value associated with the board if omitted
--template-version=<value>NoTemplate version. Uses latest available if omitted
cfsutil workspace create \
  -o "C:/Users/<username>/cfs/2.2.0" \
  --name myNewWorkspace \
  --soc MAX32690 \
  --board AD-APARD32690-SL \
  --template-id com.analog.multicore.msdk.helloworld

cfsutil project create

The project create command regenerates an existing project defined in a .cfsworkspace file. It is typically used after upgrading a plugin or updating workspace templates. It does not create new projects — it only rebuilds projects already listed in the Projects array.
cfsutil project create -w <path/.cfsworkspace> -p <project-name> [-s <plugin/search/directory>]
FlagRequiredDescription
-w=<path>YesPath to the .cfsworkspace file
-p=<name>YesName of the project to regenerate. Must match the Name field in the Projects array. Wrap in quotes if the name contains spaces
-s=<path>NoAdditional directory to search for plugins and data models. Can be repeated
cfsutil project create \
  -w /path/to/Apard_ws/.cfs/.cfsworkspace \
  -p "Arm Cortex-M4F"
Workspaces created from templates may have an empty Projects array. Because project create only regenerates existing projects, it will fail if the array is empty. To populate it, use the Manually configure the workspace option in the Workspace Creation Wizard, or run cfsutil workspace configure followed by cfsutil workspace create -i.

CI/CD integration patterns

For automated or headless environments, use the flag-driven workspace create mode to avoid interactive prompts. Pass --acceptLicense to cfsutil pkg install when installing dependencies before workspace creation.
# Step 1: Install required packages
cfsutil pkg install /path/to/workspace/.cfs/.cfsdependencies --acceptLicense

# Step 2: Create workspace from flags
cfsutil workspace create \
  -o "$CI_OUTPUT_DIR" \
  --name "ci_workspace" \
  --soc MAX32690 \
  --board AD-APARD32690-SL \
  --template-id com.analog.project.msdk.plugin

# Step 3: Build
cfsutil tasks run build -w "$CI_OUTPUT_DIR/ci_workspace" -p CM4

Build docs developers (and LLMs) love