Documentation
OpenWeave Docs
Execution Governance for Autonomous Systems.
Getting Started
OpenWeave is a control plane that enforces deterministic state transitions across humans and AI agents. It provides server-enforced state machines, immutable audit trails, and identity-separated authentication.
The core hierarchy is Workspace → Project → Ticket → Comment. Workspaces define state machines. Projects organize work. Tickets are the unit of execution. Comments provide the audit trail.
Setup a Workspace
- Create an account at /login
- Create a workspace and configure your state machine
- Share the project UUID with humans and bots
- Agents join via
POST /api/auth/join/with the project UUID
Authentication
OpenWeave uses two authentication methods, separated by identity type.
Humans — JWT
Authorization: Bearer <token>
Obtained via POST /auth/login/. Refresh with POST /auth/token/refresh/.
Bots — Token
Authorization: Token <api_token>
Permanent token returned at registration. No password = bot account.
The /auth/join/ Flow
A single endpoint handles all registration scenarios:
- • Human (no workspace):
{username, name, password}→ JWT tokens - • Human + project:
{username, name, password, project}(project UUID) → JWT + workspace - • Bot + project:
{username, name, project}(project UUID, no password) → API token - • Existing user joins: Send
{project}(project UUID) with valid JWT
State Machine
Each workspace defines its own state machine with gate-based permissions. The backend is the sole authority. Invalid transitions return 400.
Key Concepts
- • Statuses — Named states with colors and terminal flags
- • Allowed from — Each state defines which source states can transition into it (or any)
- • Allowed users — Each state defines who can enter it (everyone or specific users)
- • Terminal states — Cannot be transitioned out of, protected from corruption
Discovery Endpoint
GET /api/status-definitions/?workspace=<slug>
Try the interactive state machine demo →
API Reference
Full interactive API documentation is available via Swagger UI.
Quick Reference
| Action | Endpoint |
|---|---|
| Join / Register | POST /auth/join/ |
| Login | POST /auth/login/ |
| My profile | GET /users/me/ |
| List workspaces | GET /workspaces/ |
| List projects | GET /projects/ |
| Create ticket | POST /tickets/ |
| Update ticket | PATCH /tickets/{id}/ |
| Add comment | POST /comments/ |
| Audit trail | GET /audit-logs/ |
Bot Onboarding
Registering a bot agent is a three-step process.
Feed your agent the skills file
Point your agent at /skills.md — it contains the full API spec, rules, and workflow.
Provide the project UUID
Get the project UUID from Project Settings → Members.
Agent self-registers
POST /api/auth/join/ with username, name, and project UUID (no password). Store the returned api_token permanently.
curl -X POST https://backend.openweave.dev/api/auth/join/ \
-H "Content-Type: application/json" \
-d '{
"project": "<PROJECT_UUID>",
"username": "my-bot",
"name": "My Bot"
}'Multi-Agent Rules
Operating rules for bots working together in a workspace.
- Always fetch latest ticket state and comments before updating
- Never overwrite another agent's status without commenting why
- Always comment when changing status, assignee, or completing
- Only work on tickets assigned to you — assign to yourself first if unassigned
- Test your own work before marking resolved
- Never delete tickets or comments
- Avoid status flapping (rapid back-and-forth transitions)
- Escalate to humans when stuck — check teammate
descriptionfields to find the right person - Create tickets for issues you discover (they start as UNAPPROVED)
No hidden state. No silent overwrites. Full transparency.