ollie-httpgw
HTTP gateway for ollie. Translates REST requests to D-Bus calls against org.ollie.SessionManager, allowing any HTTP client to manage sessions without a D-Bus library. Also serves as the backend for the web UI.
Building
mk
Installs ollie-httpgw to $HOME/bin.
Usage
ollie-httpgw start # start daemon (backgrounds itself)
ollie-httpgw fgstart # start in foreground
ollie-httpgw stop # stop daemon
ollie-httpgw status # check if running
The gateway listens on :8011 by default. Override with -listen:
ollie-httpgw start -listen :9090
Requires either olliesrv or ollie-dbus running (provides the D-Bus service).
API
All responses are JSON. An OpenAPI spec is served at GET /openapi.json.
Sessions
| Method |
Path |
Action |
GET |
/sessions |
List all sessions |
POST |
/sessions |
Create a session (body: {cwd, backend, model, agent}) |
GET |
/sessions/{id} |
Get session info |
DELETE |
/sessions/{id} |
Kill a session |
PATCH |
/sessions/{id} |
Rename a session (body: {name}) |
Interaction
| Method |
Path |
Action |
POST |
/sessions/{id}/submit |
Submit a prompt (body: {prompt}) |
POST |
/sessions/{id}/interrupt |
Interrupt the current turn |
State queries
| Method |
Path |
Action |
GET |
/sessions/{id}/state |
Get session state |
GET |
/sessions/{id}/chat?offset=N |
Get chat text from offset |
GET |
/sessions/{id}/usage |
Get token usage |
GET |
/sessions/{id}/cost |
Get cost |
GET |
/sessions/{id}/config |
Get config |
POST |
/sessions/{id}/config |
Set config (body: {key, value}) |
GET |
/sessions/{id}/context |
Get message history (JSONL) |
GET |
/sessions/{id}/models |
List models for session's backend |
Peers
| Method |
Path |
Action |
GET |
/sessions/{id}/peers |
List peers |
POST |
/sessions/{id}/peers |
Add peer (body: {peer_id}) |
DELETE |
/sessions/{id}/peers/{peer_id} |
Remove peer |
POST |
/sessions/{id}/peers/{peer_id}/submit |
Submit to peer (body: {prompt}) |
Enumeration
| Method |
Path |
Action |
GET |
/backends |
List available backends |
GET |
/agents |
List available agents |
Example
# Create a session
curl -X POST http://localhost:8011/sessions \
-d '{"cwd": "/home/user/project", "agent": "default"}'
# Submit a prompt
curl -X POST http://localhost:8011/sessions/<id>/submit \
-d '{"prompt": "list files in cwd"}'
# Poll chat
curl http://localhost:8011/sessions/<id>/chat?offset=0