CLI Workflow
Quick Answer
Default flow lifecycle:
- Edit working copy (
pull/push/validate) - Verify runtime (
run) - Use
release/promote/installationsonly when you need explicit rollout governance
Default Reporting Step
If work is blocked by missing capability or unclear failures, report it before ending the task:
breyta feedback send \
--type issue \
--title "Short summary" \
--description "What failed, expected behavior, and workaround tried" \
--flow <slug> --workflow-id <id> --run-id <id> --agent
Use --type feature_request for missing product capability.
Canonical Commands
| Stage | Command |
|---|---|
| Inspect workspace flows and metadata | breyta flows list --pretty; breyta flows show <slug> --pretty |
| Discover approved example definitions to copy from | breyta flows search <query> |
| Browse public installable flows for this workspace | breyta flows discover list; breyta flows discover search <query> |
| Reuse/create/test connections (when external systems are involved) | breyta connections list; breyta connections create ...; breyta connections test --all |
| Pull local file | breyta flows pull <slug> --out ./tmp/flows/<slug>.clj |
| Push working copy | breyta flows push --file ./tmp/flows/<slug>.clj |
| Suggest config wiring | breyta flows configure suggest <slug> |
| Configure draft target (when required) | breyta flows configure <slug> --set api.conn=conn-123 --set activation.region=EU |
| Configure live target for a specific release (advanced) | breyta flows configure <slug> --target live --version <n|latest> --set api.conn=conn-123 |
| Promote current draft bindings to live target (advanced) | breyta flows configure <slug> --target live --from-draft --version <n|latest> |
| Update installation activation inputs (advanced) | breyta flows installations configure <installation-id> --input '{"region":"EU"}' |
| Update public discover visibility | breyta flows discover update <slug> --public=true |
| Update grouping or display-icon metadata | breyta flows update <slug> --group-key billing --group-name "Billing"; breyta flows update <slug> --primary-display-connection-slot crm |
| Validate working copy | breyta flows validate <slug> |
| Run and wait | breyta flows run <slug> --input '{"n":41}' --wait |
Authoring Loop (Working Copy)
breyta flows pull <slug> --out ./tmp/flows/<slug>.clj- Edit file
breyta flows push --file ./tmp/flows/<slug>.clj- If the flow has required slots/inputs:
breyta flows configure <slug> ... breyta flows configure check <slug>
connections test is a health/config check. It does not replace a real flow run against the target system.
If you are updating live after a slot change, use version-pinned live checks/applies:
breyta flows configure check <slug> --target live --version <n|latest>breyta flows configure <slug> --target live --version <n|latest> --set ...
For a brand-new flow with required slots, use --version latest on the live target before the first release. Otherwise flows release <slug> can fail with live_config_incomplete.
Optional checks:
breyta flows validate <slug>breyta flows show <slug>breyta flows diff <slug>
Public discover notes:
- Public discover is stored metadata, not just a UI interpretation of the flow file.
- File-based authoring can set
:discover {:public true}directly in the.cljflow source. - Use
breyta flows discover list/breyta flows discover search <query>to inspect the public installable catalog that appears in the web app. - Use
breyta flows discover update <slug> --public=true|falsewhen you want to inspect or change discover visibility explicitly after push. - Public discover requires both an active released version and the
end-usertag. breyta flows search <query>is a different catalog: it returns approved example flows to inspect and copy from.
Public flow checklist:
- Tag the flow with
end-user. - Choose one visibility path:
- Source-first: add
:discover {:public true}to the flow definition before push. - Explicit after push: wait until after push, then run
breyta flows discover update <slug> --public=true.
- Source-first: add
- Push the flow with
breyta flows push --file .... - If you chose the explicit path, run
breyta flows discover update <slug> --public=trueafter push. - Release/promote it so there is an installable live version.
- Verify it in the web Discover UI. If you have another workspace, you can also confirm with
breyta flows discover listorbreyta flows discover search <query>.
If a flow is public in source but not visible in Discover, the first things to check are:
breyta flows show <slug> --prettyincludesdiscover.public- the flow metadata includes the
end-usertag - the flow has an active released version that can be installed
Grouping notes:
breyta help flows updateshows the writable grouping fields and exact clear syntax.flows listexposesgroupKey,groupName,groupDescription, andgroupOrderwhen a flow is grouped.flows showalso exposesgroupFlows, which lists sibling flows in the same group.- Set explicit order with
breyta flows update <slug> --group-order <n>when grouped flows should render in execution order. - Lower
groupOrdervalues sort first. Use spaced values like10,20,30. - Clear only the order with
breyta flows update <slug> --group-order "". - Use the existing flow metadata update surface to maintain grouping metadata, then verify with
flows show --pretty. - Grouping metadata is mutable workspace metadata and does not round-trip through
flows pull/flows pushsource files. - For a focused grouped-flow guide with examples, see Flow Grouping.
Display icon notes:
primaryDisplayConnectionSlotchooses which connection/provider icon is shown anywhere the flow icon renders today.- In the UI this is labeled
Display icon. - Set it from the flow detail UI or with
breyta flows update <slug> --primary-display-connection-slot <selector>. - Clear it with
breyta flows update <slug> --primary-display-connection-slot ''. - Selectors come from declared
:requiresslots or normalized keys from:connections. - If unset or unmatched, rendering falls back to the first explicit
:connectionsicon, then the first inferred:requiresicon. flows show --prettyJSON responses includeprimaryDisplayConnectionSlotplus_hintswhenever the flow exposes connection metadata or a saved display selector.
Example:
{
"ok": true,
"data": {
"flow": {
"flowSlug": "customer-support",
"primaryDisplayConnectionSlot": "crm"
}
},
"_hints": [
"Inspect `requires`, `connections`, and `primaryDisplayConnectionSlot` with `breyta flows show customer-support --pretty`.",
"Set the rendered flow icon with `breyta flows update customer-support --primary-display-connection-slot <selector>`.",
"Clear it with `breyta flows update customer-support --primary-display-connection-slot ''`.",
"If unset or unmatched, the icon falls back to the first explicit `connections` icon, then the first inferred `requires` icon."
]
}
Advanced Release + Install Operations
Use flows release / flows promote / flows installations ... only when you need explicit scopes, promotion control, or installation-specific webhooks.
| Task | Command |
|---|---|
| Inspect draft vs live source before release | breyta flows diff <slug> |
| Create release (default also promotes live and track-latest installations) | breyta flows release <slug> --release-note-file ./release-note.md |
| Create release without promoting end-user installations | breyta flows release <slug> --skip-promote-installations |
| Update a version release note later | breyta flows versions update <slug> --version <n> --release-note-file ./release-note.md |
| Promote live + track-latest installations explicitly | breyta flows promote <slug> |
| List installations | breyta flows installations list <flow-slug> |
| Create installation | breyta flows installations create <flow-slug> --name "My install" |
| Show installation | breyta flows installations get <installation-id> (includes installedVersion, latestAvailable, updateAvailable, policy) |
| Configure inputs | breyta flows installations configure <installation-id> --input '{"region":"EU"}' |
| Enable/disable | breyta flows installations enable <installation-id> / breyta flows installations disable <installation-id> |
| List trigger endpoints | breyta flows installations triggers <installation-id> |
| Upload files to trigger | breyta flows installations upload <installation-id> --file ./a.pdf |
New end-user installations follow the latest released version by default.
Release Defaults
breyta flows release <slug> always promotes the live target for the selected workspace and, by default, also promotes track-latest end-user installations.
Attach a markdown release note whenever you know what changed. It becomes part of the version metadata returned by flows show / flows versions list.
If the flow has required slots and no active version yet, configure the live target first with --target live --version latest before running flows release.
Runtime Verification
- Canonical:
breyta flows run <slug> --wait - Advanced explicit target:
breyta flows run <slug> --installation-id <installation-id> --wait - Inspect run:
breyta runs show <workflow-id> - Filter runs:
breyta runs list --query 'status:failed flow:<slug>'
flows run uses draft-target bindings/config by default, but the executed code version still comes from the active release unless you override it with --version.
runs list uses the same structured filter syntax as the web runs list. Use installation:<profile-id> for installation runs and version:<n> for the flow version active when the run started.
Post-Release Targeting
After breyta flows release <slug>, the live install is updated for the selected workspace by default. Track-latest end-user installations are also promoted unless you pass --skip-promote-installations. Default breyta flows run <slug> still uses draft-target bindings/config.
Use explicit flags when you want installation runtime behavior:
| Target | Command |
|---|---|
| Draft bindings/config (default) | breyta flows run <slug> --wait |
| Installed live | breyta flows run <slug> --target live --wait |
| Specific installation | breyta flows run <slug> --installation-id <installation-id> --wait |
If you skipped end-user installation promotion during release (--skip-promote-installations), promote them later with:
breyta flows promote <slug>
Run Targeting Matrix
Use this matrix for breyta flows run <slug>.
| Scenario | Required flags | Why |
|---|---|---|
| Normal run with draft-target bindings/config | none | Slug-only is the default path; executed code still resolves from the active version unless --version is set. |
| Run installed live target (advanced) | --target live | Explicitly target installation runtime. |
| Run a specific installation (advanced) | --installation-id <id> | Deterministic explicit target selection. |
| Multiple matching installations | --installation-id <id> | Resolve ambiguity. |
| Override flow release version for this run | --version <n> | Force a specific release version for this invocation. |
| Provide runtime input payload | --input '{...}' | Pass request input to the flow. |
| Wait until terminal status | --wait (optional --timeout, --poll) | Block and stream final run result. |
Docs Lookup
| Task | Command |
|---|---|
| Search docs | breyta docs find "flows run" |
| Open page | breyta docs show <slug> |
| Offline corpus grep | breyta docs sync --out ./.breyta-docs --clean && rg -n "<query>" ./.breyta-docs/pages |
Compatibility Notes
Legacy command aliases remain executable for compatibility, but canonical guidance uses only the commands in this page.