Skip to content

MCP & CLI ​

Control LivePane from a terminal, IDE, or agent using the same actions as the web UI (list workspaces, panes, machines — no second write path).

You authenticate with a personal access token (PAT) — a secret you mint under Settings → Developer. Send it as:

Authorization: Bearer <token>

SurfaceEndpointAuth
HTTP / CLIGET/POST {base}/capabilities…Bearer PAT
MCPPOST {base}/mcp/{profile}Bearer PAT

Token profiles (scope what the token may call): livepane.read (default), livepane.control, livepane.admin. Create tokens under Settings → Developer in the web app.


Base URL ​

Point CLI and MCP at the API origin (no trailing slash), not the web app host (livepane.io / app SPA).

EnvironmentAPI base
Productionhttps://api.livepane.io
Local Herdhttps://api.livepane.test

Personal access token (PAT) ​

A PAT is a long-lived API credential for your user account. It is not the same as the browser session cookie used by the web app.

  1. Sign in to the web app → Settings → Developer.
  2. Create a token (start with read unless you need to mutate).
  3. Copy the plain-text token once — it is not shown again.
  4. Store it in an env var (recommended):
bash
export LIVEPANE_BASE=https://api.livepane.io   # or https://api.livepane.test locally
export LIVEPANE_PAT=your_plain_text_token

All capability HTTP and MCP calls act as the token owner:

http
Authorization: Bearer <plain-text-PAT>
Accept: application/json
Content-Type: application/json
  • Prefer LIVEPANE_PAT — avoid putting the PAT in query strings or shell history.
  • Scoped PATs only invoke capabilities allowed by their profile; workspace membership still applies.
  • SPA session auth is separate and has full user powers; developer PATs are intentionally limited by profile.

Example with curl (production base; swap for local if needed):

bash
curl -sS -H "Authorization: Bearer $LIVEPANE_PAT" \
  "$LIVEPANE_BASE/capabilities"

curl -sS -X POST -H "Authorization: Bearer $LIVEPANE_PAT" \
  -H "Content-Type: application/json" \
  -d '{}' \
  "$LIVEPANE_BASE/capabilities/workspace.list"

CLI ​

LivePane does not ship a separate product CLI for the capability bus. Use the external capabilities-cli client against the HTTP surface.

Requires: PHP and Composer on your machine.

bash
composer global require rawphp/capabilities-cli

# Login stores base URL + token for subsequent commands
capabilities auth login --base "$LIVEPANE_BASE" --token "$LIVEPANE_PAT"

# Catalog
capabilities catalog

# Invoke by capability name
capabilities run workspace.list
capabilities run pane.list --input '{"workspace_id":1}'

The web app Developer page shows the same install and login one-liners with your API base filled in.


MCP (Cursor / Claude) ​

Mounts are profile-scoped:

ProfileURL
Read{base}/mcp/livepane.read
Control{base}/mcp/livepane.control
Admin{base}/mcp/livepane.admin

Example MCP config fragment (replace the PAT; use your real API base):

json
{
  "mcpServers": {
    "livepane": {
      "url": "https://api.livepane.io/mcp/livepane.read",
      "headers": {
        "Authorization": "Bearer YOUR_PAT_HERE"
      }
    }
  }
}

Use a control or admin PAT only when the agent must mutate panes or membership. Copy a ready-made JSON snippet from Settings → Developer.


Typical path ​

  1. PAT — Settings → Developer → create a read (or control) token; copy the plain-text secret once into LIVEPANE_PAT.
  2. MCP — Point your IDE at {base}/mcp/livepane.read with that Bearer token.
  3. CLI — capabilities auth login then capabilities run … (needs PHP/Composer).
  4. Assistant — Signed-in product Assistant can also drive the same capability actions for workspace control.