Skip to main content
Placet’s Agent Management Dashboard is an optional UI that lets a user inspect and control a connected agent runtime (sessions, audit logs, token usage, credentials, cron, MCP bridges, workspace, skills, scripts, channels, commands, agent card, A2A peers) directly from Placet — without ever exposing the agent’s bearer token to the browser. The protocol Placet speaks upstream is a bearer-authenticated management API rooted at /api/v1/*. Any agent runtime that implements the same surface — or a compatible subset — can be connected; the routes documented below describe the wire contract Placet expects upstream. The dashboard is off by default per user. It becomes visible once a user enables it under Settings → Preferences → Management Dashboard. Placet auto-enables this preference the first time a user registers an agent that provides management credentials. Placet owns a dedicated, typed endpoint for every upstream management route — it is not a generic wildcard proxy. Controllers are explicit to give the backend room for caching, cross-agent aggregation, and request shaping. When the upstream is unreachable Placet returns 502 Bad Gateway and the frontend silently hides the view.

Registering Management Credentials

An agent registers management credentials the same way it registers a channel — by calling POST /api/v1/agents/setWebhook on the Placet backend with the additional management object, or by using the dedicated setManagement endpoint.

Option A — Combined with setWebhook

Option B — Dedicated endpoint

Pass "url": null, "apiKey": null to clear the management credentials for a channel.

Endpoints

Every endpoint listed below lives under /api/agents/:agentId/manage/ on the Placet backend and maps 1:1 to the upstream /api/v1/ route. All requests require a valid Placet user JWT (Authorization: Bearer <jwt>) and are scoped to the authenticated user’s agent.

Health

Sessions

Audit log

Token usage

Settings

Runtime settings exposed by the agent. Browser settings include the new browser tool controls shown in the Management Dashboard: enable, max_named_sessions, domain_allowlist, and domain_denylist.

Credentials

Generic secrets stored on the agent and made available to skills/tools as ${credentials.KEY}. The exposed flag mirrors config.tools.exec.exposed_credentials — when true the key is injected as an env var into the shell-exec sandbox.

LLM provider credentials

Provider API keys live under config.providers.<name>.api_key. OAuth-only providers (github_copilot, openai_codex) report isOauth: true and use a token store instead of api_key; for those, POST / PUT return 400 and the OAuth endpoints below must be used. POST /oauth/start returns:
The agent polls the provider in the background; the client polls GET /oauth/poll?session_id=… every interval seconds and receives {status: "pending" | "ok" | "error", error?, account?}. On ok the OAuth token is persisted server-side (no value ever crosses the wire). openai_codex is intentionally not supported via REST — its OAuth client mandates a fixed http://localhost:1455/auth/callback redirect, so use your agent’s local CLI to complete the OAuth login.

Cron

MCP servers

Tool policy

Persistent allow/deny rules for tool calls plus runtime toggles for the approval gate. deny wins over allow; missing rules trigger a one-time approval prompt unless the gate is disabled or skipped for cron callers. The enabled flag is the master switch for the approval gate — when off, every tool call runs without prompts and the rule list is ignored. skipCron lets cron-triggered tool calls bypass the approval prompt while keeping the gate active for interactive callers.

Workspace

Skills & scripts

Channels

Commands

Agent Card

A2A peers

Error semantics


Minimal Upstream Requirements

To support the management dashboard, your agent runtime must:
  1. Expose a bearer-authenticated management API on /api/v1/* that matches the wire contract documented above.
  2. Implement any subset of the routes above that you want users to see; unsupported ones simply return 404, which the dashboard handles gracefully.
  3. Accept a long-lived management bearer token that you can transmit to Placet via setWebhook/setManagement.
If a domain (e.g. cron, mcp) isn’t supported by your runtime, the Placet UI tab for that feature stays empty — there is nothing else you need to do to “opt out”.

Security Notes

  • Management keys are stored alongside webhook secrets and returned as *** on every agent read.
  • Only the agent owner (owner of the apiKey that registered the channel) can call /manage/* for that agent.
  • Rotate a key by calling setManagement again; to revoke, set both fields to null.