For the complete documentation index, see llms.txt.
Skip to main content
Version: 8.10 (unreleased)

Command reference

Global Flags

These flags are accepted by every command.

FlagTypeRequiredDescription
--help / -hbooleanShow help
--version / -vstringShow CLI version, or filter by process definition version on supported commands
--profilestringUse a specific profile
--dry-runbooleanPreview the API request without executing
--verbosebooleanShow verbose output
--fieldsstringComma-separated list of fields to display
--jsonbooleanForce JSON output for this invocation (does not persist; overrides session state and C8CTL_OUTPUT_MODE)
--yes / -ybooleanSkip confirmation prompts

Resource Aliases

AliasResource
authauthorization
incincident
mrmapping-rule
msgmessage
pdprocess-definition
piprocess-instance
utuser-task
varsvariable
varvariable
wswait-state

Search Flags

These flags are available on list and search commands.

FlagTypeRequiredDescription
--sortBystringSort results by field
--ascbooleanSort ascending
--descbooleanSort descending
--limitstringMaximum number of results
--betweenstringDate range filter (e.g. 2024-01-01..2024-12-31, ..2024-12-31, 2024-01-01..)
--dateFieldstringDate field for --between filter

Commands

list

List resources

Resources: pi (process-instance), pd (process-definition), ut (user-task), inc (incident), jobs, profiles (profile), plugins (plugin), users (user), roles (role), groups (group), tenants (tenant), auth (authorization), mapping-rules (mapping-rule)

Verb-level flags:

FlagTypeRequiredDescription
--allbooleanList all (disable pagination limit)

Resource-specific flags:

process-definition (pd)
FlagTypeRequiredDescription
--bpmnProcessIdstringFilter by BPMN process ID
--idstringFilter by BPMN process ID (alias)
--processDefinitionIdstringFilter by process definition ID
--namestringFilter by name
--keystringFilter by key
--iidstringCase-insensitive filter by BPMN process ID
--inamestringCase-insensitive filter by name
process-instance (pi)
FlagTypeRequiredDescription
--businessIdstringFilter by Business ID (Camunda 8.9+)
--bpmnProcessIdstringFilter by BPMN process ID
--idstringFilter by BPMN process ID (alias)
--processDefinitionIdstringFilter by process definition ID
--processDefinitionKeystringFilter by process definition key
--statestringFilter by state (ACTIVE, COMPLETED, etc)
--keystringFilter by key
--parentProcessInstanceKeystringFilter by parent process instance key
--iidstringCase-insensitive filter by BPMN process ID
user-task (ut)
FlagTypeRequiredDescription
--statestringFilter by state
--assigneestringFilter by assignee
--processInstanceKeystringFilter by process instance key
--processDefinitionKeystringFilter by process definition key
--elementIdstringFilter by element ID
--iassigneestringCase-insensitive filter by assignee
incident (inc)
FlagTypeRequiredDescription
--statestringFilter by state
--processInstanceKeystringFilter by process instance key
--processDefinitionKeystringFilter by process definition key
--bpmnProcessIdstringFilter by BPMN process ID
--idstringFilter by BPMN process ID (alias)
--processDefinitionIdstringFilter by process definition ID
--errorTypestringFilter by error type
--errorMessagestringFilter by error message
--ierrorMessagestringCase-insensitive filter by error message
--iidstringCase-insensitive filter by BPMN process ID
jobs
FlagTypeRequiredDescription
--statestringFilter by state
--typestringFilter by job type
--processInstanceKeystringFilter by process instance key
--processDefinitionKeystringFilter by process definition key
--itypestringCase-insensitive filter by job type
user
FlagTypeRequiredDescription
--usernamestringFilter by username
--namestringFilter by name
--emailstringFilter by email
role
FlagTypeRequiredDescription
--roleIdstringFilter by role ID
--namestringFilter by name
group
FlagTypeRequiredDescription
--groupIdstringFilter by group ID
--namestringFilter by name
tenant
FlagTypeRequiredDescription
--tenantIdstringFilter by tenant ID
--namestringFilter by name
authorization (auth)
FlagTypeRequiredDescription
--ownerIdstringFilter by owner ID
--ownerTypestringFilter by owner type
--resourceTypestringFilter by resource type
--resourceIdstringFilter by resource ID
mapping-rule (mr)
FlagTypeRequiredDescription
--mappingRuleIdstringFilter by mapping rule ID
--namestringFilter by name
--claimNamestringFilter by claim name
--claimValuestringFilter by claim value

Examples:

c8ctl list pi                                               # List process instances
c8ctl list pd # List process definitions
c8ctl list users # List users

Search resources with filters (wildcards, date ranges, case-insensitive)

Resources: pi (process-instance), pd (process-definition), ut (user-task), inc (incident), jobs, vars (variable), users (user), roles (role), groups (group), tenants (tenant), auth (authorization), mapping-rules (mapping-rule), ws (wait-state)

Resource-specific flags:

process-definition (pd)
FlagTypeRequiredDescription
--bpmnProcessIdstringFilter by BPMN process ID
--idstringFilter by BPMN process ID (alias)
--processDefinitionIdstringFilter by process definition ID
--namestringFilter by name
--keystringFilter by key
--iidstringCase-insensitive filter by BPMN process ID
--inamestringCase-insensitive filter by name
process-instance (pi)
FlagTypeRequiredDescription
--businessIdstringFilter by Business ID (Camunda 8.9+)
--bpmnProcessIdstringFilter by BPMN process ID
--idstringFilter by BPMN process ID (alias)
--processDefinitionIdstringFilter by process definition ID
--processDefinitionKeystringFilter by process definition key
--statestringFilter by state (ACTIVE, COMPLETED, etc)
--keystringFilter by key
--parentProcessInstanceKeystringFilter by parent process instance key
--iidstringCase-insensitive filter by BPMN process ID
user-task (ut)
FlagTypeRequiredDescription
--statestringFilter by state
--assigneestringFilter by assignee
--processInstanceKeystringFilter by process instance key
--processDefinitionKeystringFilter by process definition key
--elementIdstringFilter by element ID
--iassigneestringCase-insensitive filter by assignee
incident (inc)
FlagTypeRequiredDescription
--statestringFilter by state
--processInstanceKeystringFilter by process instance key
--processDefinitionKeystringFilter by process definition key
--bpmnProcessIdstringFilter by BPMN process ID
--idstringFilter by BPMN process ID (alias)
--processDefinitionIdstringFilter by process definition ID
--errorTypestringFilter by error type
--errorMessagestringFilter by error message
--ierrorMessagestringCase-insensitive filter by error message
--iidstringCase-insensitive filter by BPMN process ID
jobs
FlagTypeRequiredDescription
--statestringFilter by state
--typestringFilter by job type
--processInstanceKeystringFilter by process instance key
--processDefinitionKeystringFilter by process definition key
--itypestringCase-insensitive filter by job type
variable (var, vars)
FlagTypeRequiredDescription
--namestringFilter by variable name
--valuestringFilter by value
--processInstanceKeystringFilter by process instance key
--scopeKeystringFilter by scope key
--fullValuebooleanReturn full variable values (not truncated)
--inamestringCase-insensitive filter by name
--ivaluestringCase-insensitive filter by value
user
FlagTypeRequiredDescription
--usernamestringFilter by username
--namestringFilter by name
--emailstringFilter by email
role
FlagTypeRequiredDescription
--roleIdstringFilter by role ID
--namestringFilter by name
group
FlagTypeRequiredDescription
--groupIdstringFilter by group ID
--namestringFilter by name
tenant
FlagTypeRequiredDescription
--tenantIdstringFilter by tenant ID
--namestringFilter by name
authorization (auth)
FlagTypeRequiredDescription
--ownerIdstringFilter by owner ID
--ownerTypestringFilter by owner type
--resourceTypestringFilter by resource type
--resourceIdstringFilter by resource ID
mapping-rule (mr)
FlagTypeRequiredDescription
--mappingRuleIdstringFilter by mapping rule ID
--namestringFilter by name
--claimNamestringFilter by claim name
--claimValuestringFilter by claim value
wait-state (ws)
FlagTypeRequiredDescription
--processInstanceKey / -kstringFilter by process instance key
--rootProcessInstanceKey / -rstringFilter by root process instance key
--elementInstanceKey / -estringFilter by element instance key
--elementIdstringFilter by element ID (supports wildcards, e.g. *Task*)
--elementTypestringFilter by BPMN element type (e.g. SERVICE_TASK, USER_TASK, CALL_ACTIVITY)
--waitStateTypestringFilter by wait state type (JOB, MESSAGE, TIMER, CONDITION, USER_TASK, SIGNAL)

Examples:

c8ctl search pi --state=ACTIVE                              # Search for active process instances
c8ctl search pd --bpmnProcessId=myProcess # Search process definitions by ID
c8ctl search pd --name='*main*' # Search process definitions with wildcard
c8ctl search ut --assignee=john # Search user tasks assigned to john
c8ctl search inc --state=ACTIVE # Search for active incidents
c8ctl search jobs --type=myJobType # Search jobs by type
c8ctl search jobs --type='*service*' # Search jobs with type containing "service"
c8ctl search variables --name=myVar # Search for variables by name
c8ctl search variables --value=foo # Search for variables by value
c8ctl search variables --processInstanceKey=123 --fullValue # Search variables with full values
c8ctl search pd --iname='*order*' # Case-insensitive search by name
c8ctl search ut --iassignee=John # Case-insensitive search by assignee
c8ctl search ws --waitStateType=JOB # Search wait states of type JOB
c8ctl search ws --elementType=SERVICE_TASK # Search wait states on service tasks

get

Get a resource by key

Resources: pi (process-instance), pd (process-definition), inc (incident), topology, form, user, role, group, tenant, auth (authorization), mapping-rule

Positional arguments:

  • process-definition: <key> (required)
  • process-instance: <key> (required)
  • incident: <key> (required)
  • user: <username> (required)
  • role: <roleId> (required)
  • group: <groupId> (required)
  • tenant: <tenantId> (required)
  • authorization: <authorizationKey> (required)
  • mapping-rule: <mappingRuleId> (required)
  • form: <key> (required)

Resource-specific flags:

process-definition (pd)
FlagTypeRequiredDescription
--xmlbooleanGet BPMN XML (process definitions)
form
FlagTypeRequiredDescription
--userTaskbooleanGet form for user task
--utbooleanAlias for --userTask
--processDefinitionbooleanGet form for process definition
--pdbooleanAlias for --processDefinition
process-instance (pi)
FlagTypeRequiredDescription
--variablesbooleanInclude variables in output

Examples:

c8ctl get pi 123456                                         # Get process instance by key
c8ctl get pi 123456 --variables # Get process instance with variables
c8ctl get pd 123456 # Get process definition by key
c8ctl get pd 123456 --xml # Get process definition XML
c8ctl get form 123456 # Get form (searches both user task and process definition)
c8ctl get form 123456 --ut # Get form for user task only
c8ctl get form 123456 --pd # Get start form for process definition only
c8ctl get user john # Get user by username

create

Create a resource (process instance, identity)

Resources: pi (process-instance), user, role, group, tenant, auth (authorization), mapping-rule

Resource-specific flags:

process-instance (pi)
FlagTypeRequiredDescription
--processDefinitionIdstringProcess definition ID (BPMN process ID)
--idstringProcess definition ID (alias for --processDefinitionId)
--bpmnProcessIdstringBPMN process ID (alias for --processDefinitionId)
--businessIdstringBusiness ID for the process instance (Camunda 8.9+)
--variablesstringJSON variables
--awaitCompletionbooleanWait for process to complete
--fetchVariablesbooleanFetch result variables on completion
--requestTimeoutstringAwait timeout in milliseconds
user
FlagTypeRequiredDescription
--usernamestringUsername
--namestringDisplay name
--emailstringEmail address
--passwordstringPassword
role
FlagTypeRequiredDescription
--roleIdstringRole ID
--namestringDisplay name
group
FlagTypeRequiredDescription
--groupIdstringGroup ID
--namestringDisplay name
tenant
FlagTypeRequiredDescription
--tenantIdstringTenant ID
--namestringDisplay name
mapping-rule (mr)
FlagTypeRequiredDescription
--mappingRuleIdstringMapping rule ID
--namestringDisplay name
--claimNamestringClaim name
--claimValuestringClaim value
authorization (auth)
FlagTypeRequiredDescription
--ownerIdstringYesAuthorization owner ID
--ownerTypestringYesAuthorization owner type
--resourceTypestringYesAuthorization resource type
--resourceIdstringYesAuthorization resource ID
--permissionsstringYesComma-separated permissions

Examples:

c8ctl create pi --id=myProcess --businessId=order-123       # Create a process instance with a Business ID
c8ctl create pi --id=myProcess --awaitCompletion # Create and await completion
c8ctl create user --username=john --name='John Doe' --email=john@example.com --password=secret # Create a user

delete

Delete a resource by key

Usage: c8ctl delete <resource> <key>

Resources: user, role, group, tenant, auth (authorization), mapping-rule

Positional arguments:

  • user: <username> (required)
  • role: <roleId> (required)
  • group: <groupId> (required)
  • tenant: <tenantId> (required)
  • authorization: <authorizationKey> (required)
  • mapping-rule: <mappingRuleId> (required)

Examples:

c8ctl delete user john                                      # Delete user

cancel

Cancel a process instance

Usage: c8ctl cancel <resource> <key>

Resources: pi (process-instance)

Positional arguments:

  • process-instance: <key> (required)

await

Create and await process instance completion (server-side waiting)

Usage: c8ctl await <resource>

Resources: pi (process-instance)

Flags:

FlagTypeRequiredDescription
--processDefinitionIdstringProcess definition ID (BPMN process ID)
--idstringProcess definition ID (alias for --processDefinitionId)
--bpmnProcessIdstringBPMN process ID (alias for --processDefinitionId)
--businessIdstringBusiness ID for the process instance (Camunda 8.9+)
--variablesstringJSON variables
--fetchVariablesbooleanFetch result variables on completion
--requestTimeoutstringAwait timeout in milliseconds

Examples:

c8ctl await pi --id=myProcess --businessId=claim-456        # Create with a Business ID and wait for completion

complete

Complete a user task or job

Usage: c8ctl complete <resource> <key>

Resources: ut (user-task), job

Positional arguments:

  • user-task: <key> (required)
  • job: <key> (required)

Flags:

FlagTypeRequiredDescription
--variablesstringJSON variables

fail

Mark a job as failed with optional error message and retry count

Resources: job

Positional arguments:

  • job: <key> (required)

Flags:

FlagTypeRequiredDescription
--retriesstringRemaining retries
--errorMessagestringError message

update

Update the retries or timeout of a job. At least one of --retries or --timeout must be provided.

Resources: job

Positional arguments:

  • job: <key> (required)

Flags:

FlagTypeRequiredDescription
--retriesstringNew number of retries for the job
--timeoutstringNew job timeout in milliseconds
--operationReferencestringOptional operation reference (long integer)

Examples:

c8ctl update job 12345 --retries 3                          # Set the retry count for a job
c8ctl update job 12345 --timeout 60000 # Set the job timeout to 60 seconds

activate

Activate jobs of a specific type for processing

Resources: jobs

Positional arguments:

  • jobs: <type> (required)

Flags:

FlagTypeRequiredDescription
--maxJobsToActivatestringMaximum number of jobs to activate
--timeoutstringJob timeout in milliseconds
--workerstringWorker name
--customHeadersbooleanInclude custom headers in output
--fetchVariablestringComma-separated variable names to fetch from the server and include in output

resolve

Resolve an incident (marks resolved, allows process to continue)

Resources: inc (incident)

Positional arguments:

  • incident: <key> (required)

publish

Publish a message for message correlation

Resources: msg (message)

Positional arguments:

  • message: <name> (required)

Flags:

FlagTypeRequiredDescription
--correlationKeystringCorrelation key
--variablesstringJSON variables
--timeToLivestringTime to live in milliseconds

correlate

Correlate a message to a specific process instance

Resources: msg (message)

Positional arguments:

  • message: <name> (required)

Flags:

FlagTypeRequiredDescription
--correlationKeystringYesCorrelation key
--variablesstringJSON variables
--timeToLivestringTime to live in milliseconds

set

Set variables on an element instance (process instance or flow element scope). Variables are propagated to the outermost scope by default; use --local to restrict to the specified scope.

Usage: c8ctl set variable <key>

Resources: variable

Positional arguments:

  • variable: <key> (required)

Flags:

FlagTypeRequiredDescription
--variablesstringYesJSON object of variables to set (required)
--localbooleanSet variables in local scope only (default: propagate to outermost scope)

Examples:

c8ctl set variable 2251799813685249 --variables='{"status":"approved"}'  # Set variables on a process instance
c8ctl set variable 2251799813685249 --variables='{"x":1}' --local # Set variables in local scope only

deploy

Deploy files to Camunda (auto-discovers deployable files in directories). When deploying a directory that is inside a process application (a parent directory contains a .process-application marker), the entire application root is deployed. Explicit file paths are not expanded.

Usage: c8ctl deploy [path...]

Flags:

FlagTypeRequiredDescription
--forcebooleanDeploy any file type, ignoring the default extension allow-list
--extensionsstringComma-separated list of additional file extensions to include when scanning directories (e.g. .md,.txt). Explicit file paths bypass the extension allow-list.
--all-extensionsbooleanInclude all server-supported file extensions during directory discovery

Examples:

c8ctl deploy ./my-process.bpmn                              # Deploy a BPMN file
c8ctl deploy # Deploy from current directory (detects process application root)

run

Deploy and start a process instance from a BPMN file

Usage: c8ctl run <path>

Flags:

FlagTypeRequiredDescription
--businessIdstringBusiness ID for the process instance (Camunda 8.9+)
--variablesstringJSON variables
--forcebooleanDeploy any file type, ignoring the default extension allow-list

Examples:

c8ctl run ./my-process.bpmn --businessId=order-123          # Deploy and start a process with a Business ID

assign

Assign a resource to a target (--to-user, --to-group, etc.)

Usage: c8ctl assign <resource> <id>

Resources: role, user, group, mapping-rule

Positional arguments:

  • role: <roleId> (required)
  • user: <username> (required)
  • group: <groupId> (required)
  • mapping-rule: <mappingRuleId> (required)

Flags:

FlagTypeRequiredDescription
--to-userstringTarget user ID
--to-groupstringTarget group ID
--to-tenantstringTarget tenant ID
--to-mapping-rulestringTarget mapping rule ID

Examples:

c8ctl assign role admin --to-user=john                      # Assign role to user

unassign

Unassign a resource from a target (--from-user, --from-group, etc.)

Usage: c8ctl unassign <resource> <id>

Resources: role, user, group, mapping-rule

Positional arguments:

  • role: <roleId> (required)
  • user: <username> (required)
  • group: <groupId> (required)
  • mapping-rule: <mappingRuleId> (required)

Flags:

FlagTypeRequiredDescription
--from-userstringSource user ID
--from-groupstringSource group ID
--from-tenantstringSource tenant ID
--from-mapping-rulestringSource mapping rule ID

Examples:

c8ctl unassign role admin --from-user=john                  # Unassign role from user

watch

Watch files for changes and auto-deploy

Usage: c8ctl watch [path...]

Aliases: w

Flags:

FlagTypeRequiredDescription
--forcebooleanContinue watching after all deployment errors
--extensionsstringComma-separated list of additional file extensions to watch (merged with defaults, e.g. .md,.txt)
--all-extensionsbooleanWatch all server-supported file extensions
--process-applicationbooleanWatch and deploy the entire process application (requires .process-application marker)
--pabooleanAlias for --process-application

Examples:

c8ctl watch ./src                                           # Watch directory for changes

open

Open Camunda web app in browser

Usage: c8ctl open <app>

Resources: operate, tasklist, modeler, optimize

Examples:

c8ctl open operate                                          # Open Camunda Operate in browser
c8ctl open tasklist # Open Camunda Tasklist in browser
c8ctl open operate --profile=prod # Open Operate using a specific profile

add

Add a profile

Resources: profile

Positional arguments:

  • profile: <name> (required)

Flags:

FlagTypeRequiredDescription
--baseUrlstringCluster base URL
--clientIdstringOAuth client ID
--clientSecretstringOAuth client secret
--audiencestringOAuth audience
--oAuthUrlstringOAuth token URL
--scopestringOAuth scope (space-separated)
--defaultTenantIdstringDefault tenant ID
--usernamestringBasic auth username
--passwordstringBasic auth password
--from-filestringImport from .env file
--from-envbooleanImport from environment variables

remove

Remove a profile (alias: rm)

Usage: c8ctl remove profile <name>

Aliases: rm

Resources: profile

Positional arguments:

  • profile: <name> (optional)

Flags:

FlagTypeRequiredDescription
--nonebooleanClear active profile

load

Load a c8ctl plugin (npm registry or URL)

Usage: c8ctl load plugin [name|--from url]

Resources: plugin

Positional arguments:

  • plugin: <package> (optional)

Flags:

FlagTypeRequiredDescription
--fromstringLoad plugin from URL

Examples:

c8ctl load plugin my-plugin                                 # Load plugin from npm registry
c8ctl load plugin --from https://github.com/org/plugin # Load plugin from URL

unload

Unload a c8ctl plugin (npm uninstall wrapper)

Usage: c8ctl unload plugin <name>

Aliases: rm

Resources: plugin

Positional arguments:

  • plugin: <package> (required)

Flags:

FlagTypeRequiredDescription
--forcebooleanForce unload without confirmation

upgrade

Upgrade a plugin (respects source type)

Usage: c8ctl upgrade plugin <name> [version]

Resources: plugin

Positional arguments:

  • plugin: <package> (required), <version> (optional)

Examples:

c8ctl upgrade plugin my-plugin                              # Upgrade plugin to latest version
c8ctl upgrade plugin my-plugin 1.2.3 # Upgrade plugin to a specific version (source-aware)

downgrade

Downgrade a plugin to a specific version

Usage: c8ctl downgrade plugin <name> <version>

Resources: plugin

Positional arguments:

  • plugin: <package> (required), <version> (required)

sync

Synchronize plugins from registry (rebuild/reinstall)

Resources: plugin

Examples:

c8ctl sync plugin                                           # Synchronize plugins

init

Create a new plugin from TypeScript template

Resources: plugin

Positional arguments:

  • plugin: <name> (optional)

Examples:

c8ctl init plugin my-plugin                                 # Create new plugin from template (c8ctl-plugin-my-plugin)

doctor

Surface plugin-loading collisions detected at startup (#363). Reports loaded plugins with their command names, and any first-registration-wins drops (plugin-name or command-name).

Resources: plugin

Examples:

c8ctl doctor plugin                                         # List loaded plugins and any load-time collisions
c8ctl doctor plugin --json # Machine-readable doctor output

use

Set active profile or tenant

Usage: c8ctl use profile|tenant

Resources: profile, tenant

Positional arguments:

  • profile: <name> (optional)
  • tenant: <tenantId> (required)

Flags:

FlagTypeRequiredDescription
--nonebooleanClear active profile/tenant

Examples:

c8ctl use profile prod                                      # Set active profile

output

Show or set output format

Usage: c8ctl output [json|text]

Resources: json, text

Examples:

c8ctl output json                                           # Switch to JSON output

completion

Generate shell completion script

Usage: c8ctl completion bash|zsh|fish|install

Resources: bash, zsh, fish, install

Resource-specific flags:

install
FlagTypeRequiredDescription
--shellstringShell to install completions for (bash, zsh, fish)

Examples:

c8ctl completion bash                                       # Generate bash completion script
c8ctl completion install # Auto-detect shell and install completions (auto-refreshes on upgrade)
c8ctl completion install --shell zsh # Install completions for a specific shell

mcp-proxy

Start a STDIO MCP proxy (bridges local MCP clients to remote Camunda 8)

Usage: c8ctl mcp-proxy [mcp-path]


feedback

Open the feedback page to report issues or request features


help

Show help (run 'c8ctl help <command>' for details)

Usage: c8ctl help [command]

Aliases: menu


which

Show active profile or output mode

Resources: profile, output

Examples:

c8ctl which profile                                         # Show currently active profile
c8ctl which output # Show current output mode