Skip to content

overlane model add

Add a model the dispatcher can run by alias, with a cap per run

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Three kinds: an OpenAI-compatible endpoint (–base-url, https and a public address only), a major provider’s API key (–provider), or a Workers AI model (no key). The key is read from the variable named by –key-env, or from standard input, sent once and stored encrypted; it is never an argument, never printed and never shown again. Set –max-tokens, –max-dollars or both: a run stops when it reaches either. A dollar cap needs the model’s prices per million tokens.

Usage

overlane model add [alias] [--kind KIND] [--base-url URL] [--provider PROVIDER] --model NAME [--key-env NAME] [--max-tokens N] [--max-dollars USD] [--price-in USD] [--price-out USD] [--dry-run]

Arguments

Argument Required Description
alias no Lowercase letters, digits and hyphens (required)

Flags

Flag Type Required Default Description
--kind one of openai-compatible, workers-ai, provider no openai-compatible openai-compatible (default), provider or workers-ai
--base-url string no The endpoint’s https base URL, for openai-compatible
--provider one of anthropic, openai, google, mistral, xai no anthropic, openai, google, mistral or xai, for provider
--model string yes The model name the endpoint expects
--key-env string no Name of the environment variable holding the key (default: read standard input)
--max-tokens string no Token cap per run (input and output together)
--max-dollars string no Dollar cap per run, for example 0.50
--price-in string no Dollars per million input tokens
--price-out string no Dollars per million output tokens
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane model add free-llama --kind openai-compatible --base-url https://integrate.api.nvidia.com/v1 --model meta/llama-3.3-70b-instruct --key-env NVIDIA_API_KEY --max-tokens 200000
overlane model add mistral --kind provider --provider mistral --model mistral-small-latest --key-env MISTRAL_KEY --max-dollars 0.50 --price-in 0.1 --price-out 0.3
overlane model add cf-llama --kind workers-ai --model @cf/meta/llama-3.1-8b-instruct --max-tokens 50000

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 model add.

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": {
        "executor": {
          "type": "object",
          "properties": {
            "tenantId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
              "description": "tenant identifier"
            },
            "alias": {
              "type": "string",
              "minLength": 1,
              "maxLength": 60,
              "pattern": "^[a-z0-9][a-z0-9-]*$"
            },
            "ref": {
              "type": "string",
              "pattern": "^model:"
            },
            "kind": {
              "type": "string",
              "enum": [
                "openai-compatible",
                "workers-ai",
                "provider"
              ]
            },
            "provider": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "anthropic",
                    "openai",
                    "google",
                    "mistral",
                    "xai"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "baseUrl": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "null"
                }
              ]
            },
            "model": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[A-Za-z0-9@._:/-]+$"
            },
            "keyStatus": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "untested",
                    "active",
                    "failed",
                    "revoked"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "budget": {
              "type": "object",
              "properties": {
                "maxTokensPerRun": {
                  "default": null,
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": 100,
                      "maximum": 100000000
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "maxCostMicrosPerRun": {
                  "default": null,
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 10000000000
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "maxTokensPerRun",
                "maxCostMicrosPerRun"
              ],
              "additionalProperties": false
            },
            "prices": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "inputMicrosPerM": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 1000000000
                    },
                    "outputMicrosPerM": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 1000000000
                    }
                  },
                  "required": [
                    "inputMicrosPerM",
                    "outputMicrosPerM"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "createdAt": {
              "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",
            "alias",
            "ref",
            "kind",
            "provider",
            "baseUrl",
            "model",
            "keyStatus",
            "budget",
            "prices",
            "createdAt"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "executor"
      ],
      "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.