Skip to content

overlane exec

Run a command; keep the full output in a log and print a short status and parsed summary

Updated View as MarkdownOpen in ChatGPTOpen in Claude

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.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close

Overlane Agent

Ask about the docs. Answers are quoted from the pages, with links. This panel cannot change anything.

    Questions are answered in your browser from the docs index. Nothing you type here is stored or sent anywhere.