AI Console
EdgePlane ships an AI-first web console at /ui/. The default experience is a chat-style transcript with a command composer. Dashboard tabs (missions, agents, approvals) remain available.
Behavior
Section titled “Behavior”- Natural-language prompt entry
- Planner maps prompts to MCP tools
- Read tools execute immediately
- Write tools create pending approval actions before execution — no mutations happen without explicit approval
- Events are stored for replay and audit
Session Management
Section titled “Session Management”POST /ai/sessions # create a new AI sessionGET /ai/sessions # list your sessionsGET /ai/sessions/{session_id} # fetch turns, events, pending actionsTurn Submission
Section titled “Turn Submission”POST /ai/sessions/{session_id}/turns # submit a user turnBody:
{ "content": "list all missions in the engineering namespace"}Approval Flow
Section titled “Approval Flow”Write operations create pending actions that require explicit approval:
POST /ai/sessions/{session_id}/actions/{action_id}/approve # executePOST /ai/sessions/{session_id}/actions/{action_id}/reject # discardEvent Stream
Section titled “Event Stream”GET /ai/sessions/{session_id}/stream # SSE event stream for this sessionDynamic View Schema
Section titled “Dynamic View Schema”The planner can emit view_spec objects for structured visual output. The backend validates these against a safe declarative schema — arbitrary runtime JavaScript is not allowed.
Allowed type values:
| Type | Description |
|---|---|
cards | Card grid layout |
kv | Key-value pairs |
table | Tabular data |
timeline | Chronological event list |
log_stream | Scrolling log output |
action_bar | Inline action buttons |
Planner Configuration
Section titled “Planner Configuration”The planner is the component that maps natural-language prompts to MCP tool calls. Configure via environment variables on the edgeplane-tower server:
| Variable | Values / Description |
|---|---|
EP_AI_PROVIDER | openai | anthropic | unset (heuristic fallback) |
EP_AI_MODEL | Provider model name (e.g. claude-opus-4-5, gpt-4.1) |
EP_AI_BASE_URL | Optional API base override — works with OpenAI-compatible gateways |
OPENAI_API_KEY | Required when EP_AI_PROVIDER=openai |
ANTHROPIC_API_KEY | Required when EP_AI_PROVIDER=anthropic |
EP_CENTRAL_RUNTIME_DEFAULT | Default runtime for AI sessions (claude_code recommended) |
EP_CLAUDE_MODEL | Anthropic model for claude_code runtime |
EP_CLAUDE_MAX_TOKENS | Max output tokens for claude_code runtime |
EP_CLAUDE_TIMEOUT_SECONDS | Request timeout for claude_code runtime |
EP_AI_BASE_URL examples:
- Standard:
https://api.openai.com - OpenAI-compatible gateway:
https://my-gateway.example.com - Full endpoint:
https://my-gateway.example.com/v1/chat/completions
If no provider config is set, EdgePlane uses a local heuristic planner — the console remains usable in dev without an API key.
The web UI is dark-mode first. A light/dark toggle is available in the top-right header.
See Also
Section titled “See Also”- Reference: Real-Time Events — SSE event stream
- Concepts: Philosophy — why writes require approval