Workspace
The workspace commands allow you to configure and create a CFS workspace from the command line.
Before you begin
Before configuring a workspace, you will need the following information:
- The SoC name
- Either the board identifier or the SoC package (when you provide only the board, the package is inferred from it)
- The core name(s)
- The template ID for each core
Use the following commands to discover these values:
| Command | Purpose |
|---|---|
cfsutil socs list |
List all available SoCs and their packages |
cfsutil socs info <SOC> --boards --packages --cores |
Display boards, packages, and cores for a specific SoC |
cfsutil cfsplugins list --soc <SOC> |
List available plugins and their template IDs for a specific SoC |
Configure workspace
cfsutil workspace configure --soc <value> --core <value>... --template-id <value>... [-w <value>] [--name <value>] [-o <value>] [--board <value>] [--package <value>] [--template-version <value>...] [-s <value>...] [-v]
Generates a workspace configuration file from command-line options. The file can be reviewed and edited before being passed to cfsutil workspace create -i to create the workspace.
Note
--core and --template-id are paired flags. Each --core must be immediately followed by --template-id. For multi-core projects, repeat the pair for each core.
Note
Provide --board, --package, or both; at least one is required. If you specify only --board, the package is inferred from the board. If you specify only --package, the generated file contains an empty Board value.
Note
--name and -o are optional flags but must be provided either here or edited into the generated file before passing it to workspace create. Without them, workspace create will fail.
| Flag | Description |
|---|---|
-o, --output=<value> |
Sets the Location field in the generated configuration file, which determines where the workspace will be created. Recommended. |
-s, --search-path=<value>... |
Additional search path for plugins and data models. Can be used multiple times. |
-v, --verbose |
Verbose output. |
-w, --workspace-file=<value> |
Name of the generated workspace configuration file. Default: cfsworkspace.json. |
--board=<value> |
Board name. Required unless --package is specified. |
--core=<value> |
Required. Core name. Repeat for each core, each followed by --template-id. |
--name=<value> |
Name for the new workspace. Recommended. |
--package=<value> |
Package name. Required unless --board is specified. When only --board is given, the package is inferred from the board. |
--soc=<value> |
Required. SoC name. |
--template-id=<value> |
Required. Template ID for the preceding --core. Must be specified for each --core. |
--template-version=<value> |
Optional template version for the preceding --template-id. Can be specified more than once. |
Single-core project
cfsutil workspace configure \
--soc MAX32690 \
--board AD-APARD32690-SL \
--core CM4 \
--template-id com.analog.project.msdk.plugin \
--name myWorkspace \
-o /path/to/output
Multi-core project
cfsutil workspace configure \
--soc ADSP-SC835 \
--board ADSPSC835-EV-SOM \
--core FX --template-id com.analog.project.sharcfx.plugin \
--core CM33 --template-id com.analog.project.sharcfx.plugin \
--name myNewWorkspace \
-o /path/to/output \
-w myWorkspaceConfig.json
Optional: configure a workspace using local plugins and data models
Specify additional directories to search for plugins and data models using --search-path. This option can be used with either workspace creation method.
Tip
Plugin directories must contain valid CFS plugins; data model directories must include a generated data model index file. For information on developing CFS plugins, see the CFS Plugins repository. For information on generating a data model index file, see the CodeFusion Studio GitHub repository.
| Flag | Description |
|---|---|
-s, --search-path=<path>... |
Additional directories to search for plugins and data models. Can be used multiple times |
Example
cfsutil workspace configure \
--soc MAX32690 \
--board AD-APARD32690-SL \
--core CM4 \
--template-id com.analog.project.msdk.plugin \
--name myWorkspace \
-o /path/to/output \
-s /path/to/local/plugins \
-s /path/to/local/data-models
Create workspace
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 an existing .cfsworkspace file or with command-line parameters.
Usage modes
The command supports two mutually exclusive modes:
--inputmode (workspace defined by a.cfsworkspacefile, with optional--nameand--outputoverrides)- Flag-driven mode (workspace defined using command-line parameters)
The --search-path option can be used with either mode.
You can create a workspace in one of two ways:
- From an existing
.cfsworkspacefile - By specifying workspace parameters directly as flags
Create a workspace from an existing .cfsworkspace file
cfsutil workspace create -i <path/to/.cfsworkspace> [--name <value>] [-o <path>] [-s <path>...]
Generates a workspace from an existing .cfsworkspace file.
Using .cfsworkspace files
Compatibility requirements:
.cfsworkspacefiles can be generated from the CFS UI or usingcfsutil workspace configure.- Older
.cfsworkspacefiles that reference outdated versions may fail.
Parameter restrictions:
- When using
--input, workspace definition parameters come from the.cfsworkspacefile. - The
--nameoption may be used alongside--inputto override theWorkspaceNamefield in the.cfsworkspacefile, or to fill it in if empty. - The
--outputoption may be used alongside--inputto override theLocationfield in the.cfsworkspacefile, or to fill it in if empty. - The
--search-pathoption may be used alongside--inputto specify additional plugin or data model directories. See Configure a workspace using local plugins and data models. - Workspace definition flags such as
--soc,--board, and--template-idare not supported with--inputand will cause errors.
Avoiding conflicts:
- The generated workspace path is:
<Location>/<WorkspaceName>. - If
<Location>/<WorkspaceName>already exists, you can either:- Use
--nameto specify a different workspace name, or - Use
--outputto specify a different location, or - Edit the
WorkspaceNameorLocationfields in the.cfsworkspacefile
- Use
- This prevents the error:
A folder with this name already exists.
| Flag | Description |
|---|---|
-i, --input=<path> |
Path to an existing .cfsworkspace file |
--name=<value> |
Optional. Override the WorkspaceName field in the .cfsworkspace file, or fill it in if empty |
-o, --output=<path> |
Optional. Override the Location field in the .cfsworkspace file, or fill it in if empty |
-s, --search-path=<path>... |
Optional. Additional directories to search for plugins and data models. Can be used multiple times |
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.3.0",
"WorkspacePluginId": "",
"WorkspacePluginVersion": "",
"Projects": [
{
"Core": "CM4",
"Project": "",
"Path": "",
"Soc": "MAX32690",
"Package": "WLP",
"CoreId": "CM4",
"Id": "corepart_01jrdgezrce69rsqvja125h3v2",
"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",
"Cflags": "-fdump-rtl-expand\n-fdump-rtl-dfinish\n-fdump-ipa-cgraph\n-fstack-usage\n-gdwarf-4\n"
}
}
],
"DataModelVersion": "1.3.893",
"DataModelSchemaVersion": "1.5.0"
}
Create a workspace using command-line flags
Generates a workspace from command-line parameters. The generated workspace path is determined by combining --output and --name.
| Flag | Description |
|---|---|
-o, --output=<path> |
Required. Output directory for the new workspace (excluding workspace name). |
--board=<value> |
Required. Board name. |
--name=<value> |
Required. Name of the new workspace. |
--package=<value> |
Optional. Package name. If not specified, defaults to the board name. |
--soc=<value> |
Required. SoC name. |
--template-id=<value> |
Required. Template ID. |
--template-version=<value> |
Optional. Template version. If not specified, uses the latest available version. |
Example
cfsutil workspace create -o "C:/Users/<username>/cfs/2.3.0" --name myNewWorkspace --soc MAX32690 --board AD-APARD32690-SL --template-id com.analog.multicore.msdk.helloworld