Skip to main content

api-operations

Use the Auto-Tundra HTTP API directly (via curl) for operations not exposed in the CLI, such as task updates, terminal management, GitLab/Linear queries, and Kanban board manipulation.

Jump to install

Source facts

Repository
ryanmaclean/tundra
Last source activity
February 22, 2026 at 04:08
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
api-operations
description
Use the Auto-Tundra HTTP API directly (via curl) for operations not exposed in the CLI, such as task updates, terminal management, GitLab/Linear queries, and Kanban board manipulation.
allowed_tools
["Bash","Read"]
references
["/Users/studio/rust-harness/crates/at-bridge/src/http_api.rs","/Users/studio/rust-harness/docs/PROJECT_HANDBOOK.md"]
# API Operations ## Trigger Use this skill when you need to interact with the Auto-Tundra daemon API directly — either because the CLI doesn't expose the operation, or you need fine-grained control. ## Base URL Default: `http://localhost:9090` ## When to Use API vs CLI | Use CLI (`at`) when | Use API (`curl`) when | |---------------------|----------------------| | Creating/completing beads | Updating task fields (PATCH/PUT) | | Running skill-aware tasks | Managing terminals | | Doctor/status checks | Querying GitLab/Linear issues | | Dry-run previews | Kanban column operations | | | WebSocket subscriptions | ## Core Endpoints ### Status & Health ```bash curl -s http://localhost:9090/api/status | jq . curl -s http://localhost:9090/api/kpi | jq . curl -s http://localhost:9090/api/metrics/json | jq . ``` ### Beads (Tasks) ```bash # List all beads curl -s http://localhost:9090/api/beads | jq . # Create a bead curl -s -X POST http://localhost:9090/api/beads \ -H 'Content-Type: application/json' \ -d '{"title":"Fix bug","lane":"Standard"}' | jq . # Update bead status curl -s -X POST http://localhost:9090/api/beads/<UUID>/status \ -H 'Content-Type: application/json' \ -d '{"status":"Hooked"}' | jq . ``` ### Tasks (Detailed Work Items) ```bash # List tasks curl -s http://localhost:9090/api/tasks | jq . # Create task curl -s -X POST http://localhost:9090/api/tasks \ -H 'Content-Type: application/json' \ -d '{ "title": "Review auth flow", "bead_id": "<BEAD_UUID>", "category": "QA", "priority": "High", "complexity": "Medium" }' | jq . # Update task curl -s -X PUT http://localhost:9090/api/tasks/<UUID> \ -H 'Content-Type: application/json' \ -d '{"priority":"Critical","description":"Updated scope"}' | jq . # Execute task pipeline curl -s -X POST http://localhost:9090/api/tasks/<UUID>/execute \ -H 'Content-Type: application/json' \ -d '{}' | jq . ``` ### Integrations ```bash # GitLab issues (requires GITLAB_TOKEN env) curl -s "http://localhost:9090/api/gitlab/issues?project_id=12345" | jq . # GitLab MR review curl -s -X POST http://localhost:9090/api/gitlab/merge-requests/42/review \ -H 'Content-Type: application/json' | jq . # Linear issues (requires LINEAR_API_KEY env) curl -s "http://localhost:9090/api/linear/issues?team_id=TEAM123" | jq . ``` ### Terminals ```bash # List terminals curl -s http://localhost:9090/api/terminals | jq . # Create terminal curl -s -X POST http://localhost:9090/api/terminals \ -H 'Content-Type: application/json' \ -d '{"name":"agent-workspace"}' | jq . ``` ### Kanban ```bash # Get columns curl -s http://localhost:9090/api/kanban/columns | jq . # Save task ordering curl -s -X POST http://localhost:9090/api/kanban/ordering \ -H 'Content-Type: application/json' \ -d '{"column_id":"in_progress","task_ids":["<UUID1>","<UUID2>"]}' | jq . ``` ## Rules 1. Always pipe through `jq .` for readable output; use `jq -r .field` for extracting values. 2. Always check HTTP status codes: 2xx = success, 4xx = client error, 5xx = server error. 3. Missing credentials return `503` with `{"error":"...","env_var":"GITLAB_TOKEN"}` — check env vars. 4. When creating resources, capture the returned UUID for subsequent operations. 5. Prefer the CLI for bead lifecycle (sling/hook/done/nudge) — it handles error formatting better.
View on GitHub