Runs the command after – through the shell, streams nothing, saves stdout and stderr to .overlane/state/logs/TIMESTAMP-NAME.log, and prints one line “ok|FAIL exit=N 12.3s log=PATH” followed by a summary parsed from the output: vitest (files and tests per package, each failing test with the first lines of its assertion), tsc (error count and the first 10 errors), esbuild and astro build errors, wrangler deploy (version id, routes, errors), wrangler d1 (bookmark, applied migrations), git push (ref updates or the rejection). A command it does not know prints nothing more on success and its last 20 lines on failure. The exit code is the command’s. A failure always shows its cause; the full text is in the log.
Usage
overlane exec command... [--name NAME] [--dry-run]Arguments
| Argument | Required | Description |
|---|---|---|
command... |
yes | The command and its arguments, after – |
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--name |
string | no | Label used in the log file name | |
--dry-run |
boolean | no | Print the requests and file changes this command would make, then stop. Needs no credentials. |
Examples
overlane exec -- pnpm -r test
overlane exec --name typecheck -- pnpm -r typecheck
overlane exec -- 'git push -u origin wip/unit'Behavior
- Effect:
write(changes local or hosted state). - Needs credentials: no. Uses the network: no.
- Supports
--dry-run: yes. Accepts--force: no. - Machine-readable description:
overlane schema exec.
Result
With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.
{
"anyOf": [
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"exit": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"seconds": {
"type": "number"
},
"log": {
"type": "string"
},
"command": {
"type": "string"
},
"kinds": {
"type": "array",
"items": {
"type": "string"
}
},
"summary": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"ok",
"exit",
"seconds",
"log",
"command",
"kinds",
"summary"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"dryRun": {
"type": "boolean",
"const": true
},
"service": {
"type": "string"
},
"requests": {
"type": "array",
"items": {
"type": "object",
"properties": {
"method": {
"type": "string"
},
"path": {
"type": "string"
},
"body": {},
"note": {
"type": "string"
}
},
"required": [
"method",
"path"
],
"additionalProperties": false
}
},
"commands": {
"type": "array",
"items": {
"type": "string"
}
},
"writes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"write",
"append",
"delete"
]
},
"description": {
"type": "string"
}
},
"required": [
"path",
"action",
"description"
],
"additionalProperties": false
}
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"dryRun",
"requests",
"commands",
"writes",
"notes"
],
"additionalProperties": false
}
]
}See exit codes for the status the process returns.