Skip to content
Back to skills

Iblai Api Agent Sandbox

ASecurity

Connect/disconnect an ibl.ai agent's sandbox (Claw) instance, manage Claw instances, push config, run health/connectivity checks, and set the agent's model — via the platform API. Use when wiring an agent to a sandboxed workspace.

  • 15 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 20, 2026
ai-agentsbashawsapibackendsecurity

Works with

  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add iblai/vibe --skill iblai-api-agent-sandbox --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Iblai Api Agent Sandbox?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Iblai Api Agent Sandbox
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/iblai-iblai-api-agent-sandbox/badge)](https://www.skillsdirectory.com/skills/iblai-iblai-api-agent-sandbox)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: iblai-api-agent-sandbox
description: Connect/disconnect an ibl.ai agent's sandbox (Claw) instance, manage Claw instances, push config, run health/connectivity checks, and set the agent's model — via the platform API. Use when wiring an agent to a sandboxed workspace.
metadata:
  kind: api
---

# iblai-api-agent-sandbox

Wire an agent to a Claw sandbox instance, manage the available instances, push
config and run health/connectivity checks, and set the model the agent's
workspace uses. Use when connecting an agent to a sandboxed workspace.

## Auth & conventions

- **Base URL:** `https://api.iblai.app`
- **Header:** `Authorization: Api-Token $IBLAI_API_KEY` on every request.
- **Prefix:** paths shown as `…` are under `https://api.iblai.app/dm/api/ai-mentor` —
  the `/dm` gateway routes to the Data Manager service. (`…/api/ai-agent/…` is an
  accept-only alias for the same routes.)
- **Path vars:** `{org}` = `$IBLAI_ORG`, `{username}` = `$IBLAI_USERNAME`,
  `{mentor}` = the agent's unique id (a UUID, e.g. `d17dc729-60fd-4363-81a0-f67d9318b03e`).
  `{id}` on `claw/instances/` and `claw/model-providers/` is the **integer** primary key.
- Not connected yet? Run **`/iblai-api-login`** first to populate `IBLAI_ORG`,
  `IBLAI_USERNAME`, and `IBLAI_API_KEY`.

## Reads

### Instances

- **GET** `…/orgs/{org}/claw/instances/` — list registered Claw instances.
- **GET** `…/orgs/{org}/claw/instances/{id}/` — retrieve one instance (status, `claw_version`, last health/pairing).

### Model providers

- **GET** `…/orgs/{org}/claw/model-providers/` — list the org's model-provider blocks.
- **GET** `…/orgs/{org}/claw/model-providers/{id}/` — retrieve one provider block.

### Agent config

- **GET** `…/orgs/{org}/mentors/{mentor}/claw-config/` — the agent's connected instance + push status (404 = not connected).
- **GET** `…/orgs/{org}/mentors/{mentor}/agent-config/` — agent workspace config (includes current model).
- **GET** `…/orgs/{org}/users/{username}/mentor-llms/?mentor_id={mentor}` — available model options.

## Writes

### Instances

- **POST** `…/orgs/{org}/claw/instances/` — register an instance:
  ```json
  {
    "name": "string",
    "claw_type": "openclaw | ironclaw | nemoclaw",
    "server_url": "https://claw.example.com",
    "gateway_token": "string (write-only)",
    "connection_params": { "device_identity": {} },
    "auth_headers": {},
    "deployment_backend": "backend id (optional)"
  }
  ```
- **PATCH** `…/claw/instances/{id}/` — edit (send only changed writable keys: `name`, `claw_type`, `server_url`, `gateway_token`, `connection_params`, `auth_headers`, `deployment_backend`).
- **DELETE** `…/claw/instances/{id}/` — delete instance. Destructive — confirm with the user first.
- **POST** `…/claw/instances/{id}/health-check/` — queue a health check (returns `202`; poll the instance for `last_health_status`).
- **POST** `…/claw/instances/{id}/test-connectivity/` — TLS reachability + health check.
- **POST** `…/claw/instances/{id}/refresh-version/` — detect `claw_version` from the instance handshake.
- **POST** `…/claw/instances/{id}/request-pairing/` — queue a device-pairing request (pending request expires ~5 min). Outward-facing — confirm with the user first.
- **POST** `…/claw/instances/{id}/push-providers/` — push all enabled model providers to the instance. Outward-facing — confirm with the user first.
- **POST** `…/claw/instances/{id}/security-audit/` — run a security audit (OpenClaw only). Outward-facing — confirm with the user first.

### Model providers

- **POST** `…/orgs/{org}/claw/model-providers/` — register a provider block:
  ```json
  {
    "server": "instance id (required)",
    "name": "minimax",
    "base_url": "https://api.minimax.io/anthropic",
    "api_type": "anthropic-messages",
    "credential_name": "string",
    "credential_key": "key",
    "model_catalog": [{ "id": "...", "name": "..." }],
    "models_mode": "merge | replace",
    "enabled": true
  }
  ```
- **PATCH** `…/claw/model-providers/{id}/` — edit a provider (send only changed keys).
- **DELETE** `…/claw/model-providers/{id}/` — delete a provider. Destructive — confirm with the user first.

### Agent config

- **POST** `…/mentors/{mentor}/claw-config/` — connect the agent to an instance:
  ```json
  {
    "server": "instance id (required)",
    "enabled": true,
    "auto_push": false,
    "agent_config": {}
  }
  ```
- **PATCH** `…/mentors/{mentor}/claw-config/` — edit the connection (`enabled`, `auto_push`, `agent_config`).
- **DELETE** `…/mentors/{mentor}/claw-config/` — disconnect. Destructive — confirm with the user first.
- **POST** `…/mentors/{mentor}/claw-config/push-config/` — push the agent's `agent_config` to the instance. Outward-facing — confirm with the user first.
- **PATCH** `…/mentors/{mentor}/agent-config/` — update the agent's workspace config (send only changed keys):
  ```json
  {
    "model": "string",
    "allowed_models": "string[]",
    "identity": "string", "soul": "string", "user_context": "string",
    "tools": "string", "agents": "string", "bootstrap": "string",
    "heartbeat": "string", "memory": "string",
    "config": {}
  }
  ```
  `identity` / `soul` / `user_context` / `tools` / `agents` / `bootstrap` / `heartbeat` /
  `memory` are the claw **workspace files** (IDENTITY.md, SOUL.md, …) pushed to the instance;
  `config` is a JSON instance-config patch (heartbeat schedule, session isolation, skill
  toggles, model fallbacks). `config` is deny-list validated — writes to `gateway.auth`,
  `gateway.controlUi.dangerouslyDisableDeviceAuth`, `tools.exec.host`, `sandbox.mode`, and
  `hooks.allowUnsafeExternalContent` are rejected.

## Example

Connect an agent to a Claw instance and enable it (`server` is the instance's integer id):

```bash
curl -X POST \
  "https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/mentors/$MENTOR/claw-config/" \
  -H "Authorization: Api-Token $IBLAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"server": 12, "enabled": true}'
```

## Notes

- **Ids differ by resource:** `{mentor}` is a UUID, but `server` and `{id}` on
  `claw/instances/` and `claw/model-providers/` are integer primary keys.
- A `404` from `claw-config/` means the agent is not connected to a sandbox yet —
  use the connect POST to wire it up.
- **OpenClaw device identity:** include an Ed25519 keypair under
  `connection_params.device_identity` when registering an OpenClaw instance, or
  config push fails with `missing scope: operator.read`.
- `health-check` is queued (`202`) — poll the instance for `last_health_status`.
  Run `test-connectivity` before connecting an agent to confirm the sandbox is reachable.
- `request-pairing` mints a pending request that must be approved on the instance
  side (once per platform connection); `security-audit` is OpenClaw-only.
- After connecting, `push-config` (or set `auto_push` on the claw-config) so the
  agent's workspace reflects the latest `agent_config`; `push-providers` syncs the
  org's enabled provider blocks to the instance.
- `claw_type` is `openclaw`, `ironclaw`, or `nemoclaw`; `gateway_token` authenticates
  the instance to its server. `gateway_token`, `auth_headers`, and `connection_params`
  are write-only (never returned by reads).

## Reference material

Concepts, architecture, response shapes, enums, and a full walkthrough — ported from the
platform-integration guide — live alongside this skill. Read them when the endpoints above
aren't enough:

- **[`references/concepts.md`](references/concepts.md)** — how instances, model providers,
  agent bindings, pairing, and config push fit together; register/response shapes with the
  `status` / `deploy_state` enums; model-provider setup; skills in the push flow (CRUD in
  **`/iblai-api-agent-skill`**); the two-sided device-pairing flow; **prebuilt agent-config
  library by vertical (`iblai/claws`)**; the self-hosted `iblai-claw-setup` connection
  orientation (server provisioning → **`/iblai-api-infrastructure`**); a
  register→configure→push→chat walkthrough; and troubleshooting.
- **[`references/workspace-files.md`](references/workspace-files.md)** — the `agent-config`
  field → claw workspace-file map (`identity`→IDENTITY.md, `soul`→SOUL.md, …), the `config`
  instance patch, and the blocked-path deny-list with what each protects.

Files in this skill

  • SKILL.md8.3 KB
  • references/concepts.md15.2 KB
  • references/workspace-files.md3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.