← Receivers

world:create-workspace

world family

Create a workspace; optionally provision a full billing-aware client (parent + credits + brand + starter agents) in one atomic call

Effect
ask
Awaits an outcome — the call returns the response below.
Caller
manage_workspace
The class of authority the caller must already hold, decided from the attested context with no round trip.
Reversible
no
This cannot be undone. Dry-run it first where the contract allows.

Send it with your agent

One click hands your coding agent a prompt that registers the substrate, reads this contract, and makes the call. Launch opens the app; the others copy the prompt.

Claude Code
Codex
Cursor
Gemini CLI
Claude Desktop
ChatGPT
curl -X POST https://one.ie/api/ask/world:create-workspace \
  -H "Authorization: Bearer $ONE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"data": { "name": "Acme", "slug": "acme", "ownerEmail": "owner@acme.com" }}'

The key is never in a link. npx -y @oneie/cli login writes it to ~/.config/oneie/key on your machine.

Request

Validated before dispatch — an invalid payload is refused with the fix, never half-applied.

  • name string required
  • slug string required
  • ownerEmail string optional
  • parent string optional
  • plan free | pro | studio | … optional
  • credit number optional
  • markup number optional
  • cap number | null optional
  • brand boolean optional
  • agents string[] optional

Response

What comes back from the call.

  • wsid string
  • slug string

Traffic

Every call to world:create-workspace, counted where it is dispatched — over HTTP or in-process alike. Aggregate only — no actor, no payload, no workspace.

Counting…

Wiring

Every place in the open source that names world:create-workspace, and the file that answers it. Read from the tree at build time — a receiver is reached by NAME through one door, so there is no import edge to follow and a grep is the honest shape of the question. Structure, not volume — the count is in Traffic above.

Called from

API route 3
  • one.ie/web/src/lib/in/bulk-provision.ts:156
  • one.ie/web/src/lib/receiver-envelope.ts:177
  • one.ie/web/src/lib/world-receivers.ts:125
Workflow 1
  • one.ie/web/src/lib/workflow-templates.ts:105
CLI 2
  • packages/cli/src/client.ts:114
  • packages/cli/src/setup.ts:120
Docs 3
  • one.ie/web/src/content/docs/authority.md:137
  • one.ie/web/src/content/docs/sdk.md:302
  • one.ie/web/src/lib/CLAUDE.md:67
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "ownerEmail": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "parent": {
      "type": "string"
    },
    "plan": {
      "type": "string",
      "enum": [
        "free",
        "pro",
        "studio",
        "agency",
        "enterprise"
      ]
    },
    "credit": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "markup": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "cap": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "brand": {
      "type": "boolean"
    },
    "agents": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "name",
    "slug"
  ]
}
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "wsid": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "wsid",
    "slug"
  ]
}