REST API Endpoints
All REST endpoints follow FeathersJS conventions with full CRUD support.
Sessions
GET /sessions
List all sessions with optional filtering.
Query Parameters:
$limit- Number of results (default: 50)$skip- Pagination offsetstatus- Filter by status:idle,running,completed,failedagentic_tool- Filter by agent:claude,codex,gemini
Example:
curl http://localhost:3030/sessions?status=running&$limit=10POST /sessions
Create a new session.
Request Body:
{
"agentic_tool": "claude",
"worktree_id": "01234567-89ab-cdef-0123-456789abcdef",
"title": "My Session"
}GET /sessions/:id
Get session details by ID.
PATCH /sessions/:id
Update a session.
DELETE /sessions/:id
Delete a session.
POST /sessions/:id/prompt
Execute a prompt in a session.
Request Body:
{
"prompt": "Help me implement a feature",
"stream": true,
"permissionMode": "on-request"
}Response:
{
"success": true,
"taskId": "01234567-89ab-cdef-0123-456789abcdef",
"status": "running",
"streaming": true
}Tasks
GET /tasks
List tasks with filtering.
Query Parameters:
session_id- Filter by sessionstatus- Filter by status$limit- Results limit
POST /tasks
Create a new task.
GET /tasks/:id
Get task details.
PATCH /tasks/:id
Update a task.
Messages
GET /messages
List messages in a session.
Query Parameters:
session_id- Required - Session to fetch messages fromtask_id- Optional task filter$limit- Results limit
POST /messages
Create a message.
Request Body:
{
"session_id": "...",
"task_id": "...",
"type": "user",
"role": "user",
"content": "Hello"
}Repositories
GET /repos
List registered repositories.
POST /repos/clone
Clone and register a repository.
Request Body:
{
"url": "https://github.com/user/repo.git",
"name": "my-repo"
}GET /repos/:id
Get repository details.
POST /repos/:id/worktrees
Create a git worktree.
Request Body:
{
"name": "feature-branch",
"ref": "main",
"createBranch": true
}Boards
GET /boards
List all boards.
POST /boards
Create a new board.
Request Body:
{
"name": "My Board",
"description": "Development board"
}GET /boards/:id
Get board details with session layout.
PATCH /boards/:id
Update board layout or settings.
Users
GET /users
List users.
POST /users
Create a user account.
Request Body:
{
"email": "user@example.com",
"password": "secure-password",
"name": "John Doe"
}GET /users/:id
Get user details.
MCP Servers
GET /mcp-servers
List MCP server configurations.
POST /mcp-servers
Create MCP server config.
Request Body:
{
"name": "My MCP Server",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem"],
"env": {}
}GET /mcp-servers/:id
Get MCP server details.
PATCH /mcp-servers/:id
Update MCP server config.
DELETE /mcp-servers/:id
Delete MCP server.
Authentication
POST /authentication
Authenticate with email/password or anonymous mode.
Request Body (Email/Password):
{
"strategy": "local",
"email": "user@example.com",
"password": "password"
}Request Body (Anonymous):
{
"strategy": "anonymous"
}Response:
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "...",
"user": {
"user_id": "...",
"email": "user@example.com",
"name": "John Doe"
}
}