Appearance
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>
| Surface | Endpoint | Auth |
|---|---|---|
| HTTP / CLI | GET/POST {base}/capabilities… | Bearer PAT |
| MCP | POST {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).
| Environment | API base |
|---|---|
| Production | https://api.livepane.io |
| Local Herd | https://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.
- Sign in to the web app → Settings → Developer.
- Create a token (start with read unless you need to mutate).
- Copy the plain-text token once — it is not shown again.
- 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_tokenAll 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:
| Profile | URL |
|---|---|
| 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
- PAT — Settings → Developer → create a read (or control) token; copy the plain-text secret once into
LIVEPANE_PAT. - MCP — Point your IDE at
{base}/mcp/livepane.readwith that Bearer token. - CLI —
capabilities auth loginthencapabilities run …(needs PHP/Composer). - Assistant — Signed-in product Assistant can also drive the same capability actions for workspace control.