HTTP

Dashboard API

The base address is http://127.0.0.1:8081. You can change it in the config. The dashboard also gives /ws, a WebSocket connection for live data.

The config and the models

MethodPathFunction
GET/PUT/api/configReads or writes the full config as JSON. Add ?format=yaml to get YAML.
GET/POST/api/validateChecks a config. Glider does not apply it.
GET/api/vramLists the GPUs and the models that Glider found
PUT/api/gpu-assignmentsAssigns a GPU to each model
GET/POST/api/models · /api/models/{id}/load · /unloadLists the models. Loads or unloads one model.
GET/api/metricsGives the route counts and the local and cloud percentages
GET/api/sessions · /{id}Lists the recorded delegate sessions

The context store

MethodPathFunction
GET/api/context/recentLists the most recent events
GET/api/context/turns · /turns/{id}Lists the turn families
GET/api/context/episodes · /exportGives the episode pack
POST/api/context/pruneDeletes the data that is older than the retention time
POST/api/context/index-tree · /index-symbolsReads the file tree or the symbols into the store
GET/api/context/communities · /explainAdd ?turn_id=

The router and the rule editor

MethodPathFunction
POST/api/playground/parseReads a Starlark routing rule
POST/api/router/explainShows which rule an example request obeys
GET/api/router/lintExamines the routing config for errors

MITM data

MethodPathFunction
GET/api/mitm/debug/recentLists the most recent intercepted requests
POST/api/mitm/enrollmentSets the CA enrollment condition

The vendors and the hot-swap registry

MethodPathFunction
GET/api/vendorsGives the recorded vendor registry. It contains the CLIs that Glider found, the templates and the default workspace.
POST/api/vendors/discoverReads configs/vendor_candidates.yaml again and looks for the CLIs
POST/api/vendors/workspaceSets the default workspace directory for a delegate
POST/api/vendors/{name}/enable · /disableTurns a vendor on or off
POST/api/vendors/{name}/templatesChanges the command templates of a vendor
GET/POST/api/vendors/{name}/permissionsReads or sets the tool permissions that Glider keeps for a vendor
POST/api/vendors/{name}/launch-interactiveOpens a separate console window for that vendor
POST/api/vendors/response-detailSelects the "clean" format or the "raw" format for a delegate reply
GET/PUT/api/hotswap/modules · /{name}Reads or changes the hot-swap registry

The workspace

These endpoints read the workspace directory. The default is ~/.glider/workspace. In the dashboard, open the Workspace page.

MethodPathFunction
GET/api/workspaceLists runs/. With no parameters, the endpoint uses path=runs.
GET/api/workspace?run=<id>Lists the work and out directories of that run
GET/api/workspace?path=runs/<id>/outLists one directory
GET/api/workspace?file=…&limit=Shows the start of a text file
GET/api/workspace?diff=1&a=…&b=…Compares two paths and shows the differences

MCP

These endpoints use internal/mcp.Manager. In the dashboard, open the MCP page. For more data, refer to Tools & MCP.

MethodPathFunction
GET/api/mcp/servers · /{id} · /{id}/toolsGives the condition of a server and its list of tools
POST/api/mcp/servers/{id}/connect · /disconnect · /reconnect · /refreshControls the connection to a server
GET/api/mcp/githubGives the token condition and the connection condition
POST/DELETE/api/mcp/github/tokenWrites a PAT, or deletes the token
POST/api/mcp/github/device/start · /pollStarts and continues the OAuth device procedure
GET/POST/api/mcp/github/oauth/startStarts the OAuth procedure of the browser. It is the alternative to the device procedure.
GET/oauth/callbackWhere the browser returns after that procedure. A person does not call it.

The gateway endpoints

http://127.0.0.1:8080/v1/chat/completions · /v1/responses · /v1/models · /healthz

The gateway also gives /v1/messages. This is the Anthropic endpoint that Claude Code uses. It also accepts the delegate commands.

The WebSocket

ws://127.0.0.1:8081/ws sends an event each time something occurs. The client sends nothing. Each message is one JSON object with two fields:

{"type": "request", "data": { … }}
{"type": "vram_update", "data": { … }}

request gives these fields. A field with no value is absent.

FieldValues
id · session_id · client_sessionThe identity of the request and of its session.
modegateway or mitm
actionlocal, cloud, origin_passthrough, canned or error
routelocal or cloud
model · original_modelThe model that answered, and the model that the CLI asked for before an alias.
host · pathThe target of the request.
rule · reasonThe rule that claimed the request, and the cause. An example of a cause is small_offload or must_cloud.
roleplan, exec or research
tokens · latency_msThe size and the time.

vram_update gives total, used, free and a list models. Each item has name, vram, state and backend.

Examples

# the config that operates now, as YAML
curl http://127.0.0.1:8081/api/config?format=yaml

# test a config, and apply nothing.
# Give a YAML content type, or the body must be JSON.
curl -X POST -H 'content-type: application/yaml' \
     --data-binary @configs/glider.yaml \
     http://127.0.0.1:8081/api/validate

# which rule does this message obey?
curl -X POST -H 'content-type: application/json' \
     -d '{"text":"rename this function"}' \
     http://127.0.0.1:8081/api/router/explain

# the same, with the other inputs of a decision
curl -X POST -H 'content-type: application/json' \
     -d '{"text":"refactor the auth module","tools":["Edit"],"estimatedTokens":12000}' \
     http://127.0.0.1:8081/api/router/explain

# find the CLIs on this machine again
curl -X POST http://127.0.0.1:8081/api/vendors/discover

# set the default workspace of a delegate
curl -X POST -H 'content-type: application/json' \
     -d '{"path":"C:/projects/myapp"}' \
     http://127.0.0.1:8081/api/vendors/workspace

# the route counts
curl http://127.0.0.1:8081/api/metrics

The conventions

ItemBehaviour
AuthorizationNone. Each endpoint listens on 127.0.0.1 only. Do not put this port on a network that you do not control.
The formatJSON, in and out. /api/config also gives YAML with ?format=yaml.
An incorrect method405, with the text "method not allowed".
An error400 for input that Glider cannot read, and 500 for a failure inside. The body is text, and it is not JSON.
Turning it offdashboard.enabled: false removes each of these endpoints.