Task portability
Author once as a task package. Ship it as OCI or zip. Run it on your laptop or a rig with the same semantics.
Define task graphs once. Run them locally or on your own fleet of rigs with identical semantics. Logs, artifacts, retries and reruns stay rooted in one coherent history.
curl -fsSL https://cuttlefish.sh/install.sh | shNon-functional targets from the Cuttlefish product requirements, not measured production figures.
Capabilities
Cuttlefish keeps workflow intent, rig supply and run evidence in one operator-grade control room.
See a run up closeAuthor once as a task package. Ship it as OCI or zip. Run it on your laptop or a rig with the same semantics.
Every run is a timeline you can replay. Retries, backoff and wait reasons stay indexed and queryable.
Typed outputs, downloadable artifacts, logs and inputs stay rooted in one coherent run history.
Connect rigs, observe heartbeats, drain capacity and see queue depth the moment it changes.
Drag-and-drop DAG editing with a YAML escape hatch. Jump straight to the first causal failure.
A connect-go control plane, pluggable storage, OpenTelemetry traces and mockable interfaces throughout.
How it works
The console and the cuttle CLI call the same API, so every step here is also a command you can script.
Describe a DAG in YAML or drag nodes on the canvas.
cuttle workflows create workflow.yamlBuild a task package with typed inputs and outputs.
cuttle task-packages publish task-package.yamlDispatch locally or to your rigs with the same semantics.
cuttle run start --workflow ci.yaml --waitInspect logs, artifacts, events and rerun paths.
cuttle run diagnose <run-id>Rigs
Connect a Mac, a Linux box or a build server with one command. Heartbeats, capacity, queue depth and draining states stream back without glue.
A menu bar app that runs pipelines on your own hardware and streams status back to Cuttlefish. Requires macOS 13 or later.
How we compare
No external broker, no scheduler sidecar, no DSL that fights you at 2am.
| Capability | Cuttlefish | Heavy orchestrator | CI-as-orchestrator |
|---|---|---|---|
| Single binary | Yes | Broker + scheduler | Runners only |
| Typed I/O contracts | Yes | Partial | No |
| Local parity | Identical | Partial | No |
| Schema-driven UI | Generated | Custom React | No |
| Audit and event history | Yes | Yes | Log tail |
| Time to first workflow | Under 5 min | Hours | Minutes |