Files
waggle-os/docs/reference/api.md
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

11 KiB

API Reference

The Waggle local server runs on http://localhost:3333. All endpoints accept and return JSON unless otherwise noted.

Chat

Method Path Description
POST /api/chat Send a message and receive an SSE stream of agent responses. Body: { message, workspaceId, sessionId, model? }
GET /api/history Get conversation history. Query: ?session=ID&workspace=ID

The chat endpoint streams responses via Server-Sent Events (SSE). Events include message, tool_call, tool_result, approval_request, done, and error.

Workspaces

Method Path Description
GET /api/workspaces List all workspaces
POST /api/workspaces Create a workspace. Body: { name, group, icon?, model?, personaId?, directory?, teamId? }
GET /api/workspaces/:id Get workspace by ID
PUT /api/workspaces/:id Update workspace. Body: { name?, group?, icon?, model?, personaId? }
DELETE /api/workspaces/:id Delete workspace
GET /api/workspaces/:id/context Workspace catch-up context: summary, threads, decisions, suggestions, stats
GET /api/workspaces/:id/files List ingested files for a workspace

Sessions

Method Path Description
GET /api/workspaces/:wid/sessions List sessions for a workspace, sorted by last active
POST /api/workspaces/:wid/sessions Create a new session. Body: { title? }
GET /api/workspaces/:wid/sessions/search Search across sessions. Query: ?q=query&limit=20
GET /api/workspaces/:wid/sessions/:sid/export Export session as Markdown. Returns text/markdown
PATCH /api/sessions/:id Rename a session. Body: { title }. Query: ?workspace=ID
DELETE /api/sessions/:id Delete a session. Query: ?workspace=ID

Memory

Method Path Description
GET /api/memory/search Search memory. Query: `?q=query&scope=all
GET /api/memory/frames Recent frames without search. Query: ?workspace=ID&limit=50
GET /api/memory/graph Knowledge graph entities and relations. Query: ?workspace=ID

Agent

Method Path Description
GET /api/agent/status Agent status: model, tokens used, estimated cost, turn count
GET /api/agent/cost Detailed cost breakdown with formatted summary
POST /api/agent/cost/reset Reset cost tracking (takes effect on server restart)
GET /api/agent/model Current model name
PUT /api/agent/model Switch model. Body: { model }
GET /api/agents/active Active sub-agent orchestrator state

Approval Gates

Method Path Description
GET /api/approval/pending List pending approval requests
POST /api/approval/:requestId Approve or deny. Body: { approved: boolean, reason? }

Settings

Method Path Description
GET /api/settings Read config: default model, providers (masked keys), paths
PUT /api/settings Update config. Body: { defaultModel?, providers? }
POST /api/settings/test-key Validate API key format. Body: { provider, apiKey }
POST /api/settings/probe-provider Live-probe a STORED provider key by id. Body: { provider }{ configured, valid, verified, error? }
GET /api/settings/permissions Read permission settings (YOLO mode, external gates)
PUT /api/settings/permissions Update permissions. Body: { yoloMode?, externalGates?, workspaceOverrides? }

Vault

Method Path Description
GET /api/vault List all secrets (names and types only, no values)
POST /api/vault Add or update a secret. Body: { name, value, type? }
DELETE /api/vault/:name Delete a secret
POST /api/vault/:name/reveal Decrypt and return the full value

Skills

Method Path Description
GET /api/skills List all installed skills
GET /api/skills/:name Get full skill content
POST /api/skills Create a new skill. Body: { name, content }
PUT /api/skills/:name Update skill content. Body: { content }
DELETE /api/skills/:name Remove a skill
GET /api/skills/suggestions Contextual skill recommendations. Query: ?context=text&topN=3
GET /api/skills/hash-status Check which skills have changed on disk
POST /api/skills/starter-pack Install all starter skills
GET /api/skills/starter-pack/catalog Browse starter skills with install state and family grouping
POST /api/skills/starter-pack/:id Install a single starter skill
GET /api/skills/capability-packs/catalog List all packs with skill states
POST /api/skills/capability-packs/:id Install all skills in a pack

Plugins

Method Path Description
GET /api/plugins List all installed plugins
POST /api/plugins/install Install a plugin. Body: { sourceDir }
DELETE /api/plugins/:name Uninstall a plugin

Capabilities

Method Path Description
GET /api/capabilities/status Aggregated capability dashboard: plugins, MCP, skills, tools, commands, hooks, workflows
POST /api/capabilities/plugins/:name/enable Enable a plugin
POST /api/capabilities/plugins/:name/disable Disable a plugin

Marketplace

Method Path Description
GET /api/marketplace/search Search catalog. Query: ?query=text&type=skill&category=cat&limit=20&offset=0
GET /api/marketplace/packs List all capability packs
GET /api/marketplace/packs/:slug Pack detail with packages
GET /api/marketplace/enterprise-packs Enterprise packs (requires KVARK)
POST /api/marketplace/install Install package. Body: { packageId, installPath?, settings?, force? }
POST /api/marketplace/uninstall Uninstall package. Body: { packageId }
GET /api/marketplace/installed List installed packages
POST /api/marketplace/security-check Security scan without install. Body: { packageId }
GET /api/marketplace/sources List marketplace sources
POST /api/marketplace/sync Sync from sources. Body: { sources?: string[] }

Connectors

Method Path Description
GET /api/connectors List all connectors with status
GET /api/connectors/:id/health Check connector health
POST /api/connectors/:id/connect Store credentials. Body: { token?, apiKey?, refreshToken?, expiresAt?, scopes?, email? }
POST /api/connectors/:id/disconnect Remove credentials from vault

Personas

Method Path Description
GET /api/personas List all available personas (ID, name, description, icon, affinity, commands)

Cron (Scheduling)

Method Path Description
POST /api/cron Create schedule. Body: { name, cronExpr, jobType, jobConfig?, workspaceId?, enabled? }
GET /api/cron List all schedules
GET /api/cron/:id Get one schedule
PATCH /api/cron/:id Update schedule. Body: { name?, cronExpr?, jobConfig?, workspaceId?, enabled? }
DELETE /api/cron/:id Delete schedule
POST /api/cron/:id/trigger Manually trigger a schedule

Tasks

Method Path Description
GET /api/workspaces/:id/tasks List tasks. Query: `?status=open
POST /api/workspaces/:id/tasks Create task. Body: { title, assigneeName?, assigneeId? }
PATCH /api/workspaces/:id/tasks/:taskId Update task (status, assignment)
DELETE /api/workspaces/:id/tasks/:taskId Delete task

Fleet (Mission Control)

Method Path Description
GET /api/fleet List active workspace sessions with status and duration
POST /api/fleet/:workspaceId/pause Pause a workspace session
POST /api/fleet/:workspaceId/resume Resume a paused session
POST /api/fleet/:workspaceId/kill Abort and close a session

File Ingestion

Method Path Description
POST /api/ingest Ingest files. Body: { files: [{ name, content (base64) }], workspaceId? }. Max 15MB.

Supported types: images (PNG, JPG, GIF, WebP, SVG), documents (PDF, DOCX, PPTX), spreadsheets (XLSX, CSV), text/code (50+ extensions), archives (ZIP).

Import

Method Path Description
POST /api/import/preview Preview import from ChatGPT or Claude export. Body: `{ data, source: "chatgpt"
POST /api/import/commit Import and save to personal memory. Body: { data, source }

Feedback

Method Path Description
POST /api/feedback Record feedback. Body: `{ sessionId, messageIndex, rating: "up"
GET /api/feedback/stats Improvement stats: positive rate, top issues, corrections, trend

Notifications

Method Path Description
GET /api/notifications/stream SSE stream of notifications (cron, approval, task, message, agent events)

Audit

Method Path Description
GET /api/audit/installs Recent install audit trail. Query: ?limit=20

Team

Method Path Description
POST /api/team/connect Connect to team server. Body: { serverUrl, token }
POST /api/team/disconnect Disconnect from team server
GET /api/team/status Current team connection status

Anthropic Proxy

Method Path Description
POST /v1/chat/completions OpenAI-compatible endpoint that translates to Anthropic API. Used by internal agent loop.

Commands

Method Path Description
POST /api/commands/execute Execute a slash command. Body: { command, workspaceId, sessionId }

SSE Streaming

The /api/chat endpoint uses Server-Sent Events for real-time streaming. Event types:

Event Description
message Agent text chunk
tool_call Agent is calling a tool (shows tool name and input)
tool_result Tool execution result
approval_request Agent needs approval before proceeding
approval_resolved Approval was granted or denied
memory_saved A memory frame was auto-saved
done Agent turn complete
error Error occurred