Skip to content

overlane budget set

Set a budget for a task, an agent, a project or the team

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Sets the most that may be spent at that scope. A first limit or a lower one takes effect at once. Raising a limit is spend above the budget: an agent needs an independent agent’s approval (set OVERLANE_APPROVAL to the approval ID the refusal names), a person does not.

Usage

overlane budget set --scope SCOPE [--id ID] --usd AMOUNT [--dry-run]

Flags

Flag Type Required Default Description
--scope one of task, agent, project, team yes task, agent, project or team
--id string no The task, agent token or project (not for team)
--usd string yes Dollars, for example 5 or 12.50
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane budget set --scope task --id task-12 --usd 5
overlane budget set --scope team --usd 200 --dry-run

Behavior

  • Effect: write (changes local or hosted state).
  • Needs credentials: yes. Uses the network: yes.
  • Supports --dry-run: yes. Accepts --force: no.
  • Machine-readable description: overlane schema budget set.

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": {
        "tenantId": {
          "type": "string"
        },
        "limit": {
          "type": "object",
          "properties": {
            "tenantId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
              "description": "tenant identifier"
            },
            "scope": {
              "type": "string",
              "enum": [
                "task",
                "agent",
                "project",
                "team"
              ]
            },
            "scopeId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "limitCents": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 100000000
            },
            "updatedBy": {
              "type": "string",
              "minLength": 1
            },
            "updatedAt": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            }
          },
          "required": [
            "tenantId",
            "scope",
            "scopeId",
            "limitCents",
            "updatedBy",
            "updatedAt"
          ],
          "additionalProperties": false
        },
        "change": {
          "type": "string",
          "enum": [
            "first",
            "lower",
            "same",
            "raise",
            "remove"
          ]
        },
        "previousCents": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "tenantId",
        "limit",
        "change",
        "previousCents"
      ],
      "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.