Skip to content

Step Types

Ot supports several types of steps to define your workflow.

Run a shell command:

{ "name": "build", "cmd": "bun run build" }

name is the stable step id used by dependsOn. Add displayName when you want a friendlier label in progress output:

{ "name": "typecheck", "displayName": "TypeScript", "cmd": "bun run typecheck" }

Copy files from another worktree:

{
"name": "sync",
"worktree:cp": {
"from": "main",
"files": ["config.json", "secrets/"],
"allowMissing": true
}
}

Run scripts across workspace packages with dependency ordering (TurboRepo-style):

{
"name": "test",
"bun": {
"script": "test",
"dependsOn": ["^build"],
"timeout": 30000
}
}
  • ^task — Run task in all dependencies first
  • task — Run task in current package first
  • pkg#task — Run specific package’s task first