Skip to content

casen CLI

casen is an interactive terminal UI (TUI) for managing Camunda 8. Navigate with arrow keys, no flags to memorize.

Terminal window
pnpm add -g @bpmnkit/cli
Terminal window
casen

The main menu appears. Use ↑ ↓ to navigate, Enter to select, Escape to go back.

casen
├── generate — generate or modify BPMN files without the TUI
│ └── bpmn — templates, CompactDiagram JSON, or patch existing files
├── view — view BPMN, DMN, and form files in the browser
│ ├── open — any mix of .bpmn/.dmn/.form files or folders (auto-detect)
│ ├── bpmn — BPMN diagrams rendered as SVG
│ ├── dmn — DMN decision tables
│ └── form — Camunda form layouts
├── lint — static analysis and auto-fix for BPMN files
│ ├── lint — run all checks, report findings
│ └── improve — AI-assisted improvement suggestions
├── story — render a BPMN process as a narrative HTML page
├── ask — ask an AI assistant about your process or cluster
├── connector — generate element templates from OpenAPI specs
│ ├── generate — generate templates from a spec file or catalog entry
│ └── catalog — list built-in catalog entries
├── profile — manage connection profiles
│ ├── list — show all profiles
│ ├── add — create a new profile
│ └── switch — set the active profile
├── process
│ ├── list — list deployed process definitions
│ ├── start — start a new instance
│ ├── instances — list running instances
│ └── cancel — cancel an instance
├── job
│ ├── list — list active jobs
│ ├── complete — complete a job
│ └── fail — fail a job with a message
├── incident
│ ├── list — list open incidents
│ └── resolve — resolve an incident
├── decision
│ ├── list — list deployed DMN decision tables
│ └── evaluate — evaluate a decision with test inputs
├── variable
│ ├── list — list variables for an instance
│ └── update — set a variable value
├── message
│ └── publish — publish a message for correlation
├── worker — run job workers
│ ├── <job-type> — auto-complete worker for a job type
│ └── start — start scaffolded workers from ./workers/
├── proxy — start the local AI bridge server
└── plugin — manage CLI plugins
├── search — discover plugins on npm
├── install — install a plugin from npm or a local path
├── list — list installed plugins
├── update — update one or all plugins
├── remove — uninstall a plugin
└── info — show details for an installed plugin

casen generate bpmn creates BPMN files from the command line — no interactive menu required. Choose a built-in template, supply a full CompactDiagram JSON definition, or patch an existing file.

Terminal window
casen generate bpmn --template approval --process-id leave-request
casen generate bpmn --input order.bpmn --dump-compact # inspect as JSON for AI
casen generate bpmn --input order.bpmn --patch '{"elements":[...],"flows":[...]}'

See casen generate for full documentation.

casen view opens a local browser-based viewer. Accepts individual files, folders, or a mix.

Terminal window
casen view bpmn ./processes/ # all .bpmn files in a folder
casen view dmn routing.dmn # DMN decision table
casen view open ./project/ # any mix of .bpmn/.dmn/.form

See casen view for full documentation.

A profile stores the connection details for a Camunda cluster:

Terminal window
# Add a new profile
casen profile add
# You'll be prompted for:
# Name: my-saas-cluster
# Base URL: https://api.cloud.camunda.io
# Auth type: oauth2 | bearer | none
# Client ID, Client Secret, Audience, Token URL (for oauth2)

Profiles are saved to ~/.casen/profiles.json.

Navigate to: process → list → Enter
Result:
bpmnProcessId name ver
──────────────────────────────────────────────────────────
▶ invoice-approval Invoice Approval 2
order-fulfillment Order Fulfillment 1
customer-onboarding Customer Onboarding 3
Navigate to: process → start → Enter
Select process: invoice-approval
Variables (JSON): {"invoiceId": "inv-001", "amount": 5000}
Navigate to: incident → list → Enter

Select the incident with Enter, choose “Resolve” from the action menu.

Navigate to: message → publish → Enter
Message name: payment-confirmed
Correlation key: ord-456
Variables (JSON): {"method": "card"}

casen’s plugin system lets you extend the CLI with new command groups — your own organisation’s workflows, third-party integrations, or community-built tools.

Terminal window
# Browse all published casen plugins
casen plugin search
# Search by keyword
casen plugin search deploy
casen plugin search slack

Results are fetched live from the npm registry. Any package tagged with the casen-plugin keyword appears here.

Terminal window
# Install from npm
casen plugin install casen-deploy
# Install a local plugin during development
casen plugin install ./my-plugin

Plugins are installed into ~/.casen/plugins/ and loaded automatically the next time casen starts.

Terminal window
# List installed plugins
casen plugin list
# Show full details for one plugin
casen plugin info casen-deploy
# Update a single plugin to the latest version
casen plugin update casen-deploy
# Update all installed plugins
casen plugin update
# Remove a plugin
casen plugin remove casen-deploy

Once installed, plugin commands appear in the main TUI and in tab-completion alongside built-in commands.

To build your own plugin, see Plugin Authoring.

casen ships four Claude Code slash commands for AI-driven process development. Install them into the current project:

Terminal window
casen skills install
CommandDescription
/implement <description>Generate BPMN + scaffold workers + validate + deploy
/review <path>Validate a BPMN file and get structured findings
/test <path>Analyse structure, worker coverage, and suggest scenarios
/deploy <path>Deploy a BPMN to local reebe or Camunda 8

See AIKit Skills for full documentation.

Terminal window
# Run a simple auto-complete worker (for testing)
casen worker payment-service
# Start scaffolded workers from ./workers/
casen worker start
# Start a specific scaffolded worker
casen worker start send-invoice

casen can act as an MCP (Model Context Protocol) server, exposing all cluster operations as tools to Claude Desktop, Cursor, or any MCP client:

Terminal window
casen mcp

Configure in Claude Desktop (claude_desktop_config.json):

{
"mcpServers": {
"camunda": {
"command": "casen",
"args": ["mcp"],
"env": {
"CAMUNDA_CLIENT_ID": "...",
"CAMUNDA_CLIENT_SECRET": "..."
}
}
}
}

Now you can ask Claude: “Show me the open incidents on the invoice-approval process” or “Resolve all incidents on process instance 2251799813685249”.