external-management

Controls an isolated Birdhouse server via HTTP for plugin and read-mode testing.

36|5|Updated Feb 27, 2026
One-click install
npx skills add https://github.com/Birdhouse-Labs/birdhouse --skill external-management-birdhouse-labs
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: external-management
Source: https://github.com/Birdhouse-Labs/birdhouse/tree/main/.agents/skills/internal/birdhouse-development/external-management
Command: npx skills add https://github.com/Birdhouse-Labs/birdhouse --skill external-management-birdhouse-labs

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? When developing Birdhouse plugins, AAPI routes, or read modes, testing against your own live Birdhouse environment pollutes your agent tree and risks corrupting real work. This Skill lets you spin up and drive a completely separate Birdhouse server over HTTP so experiments stay isolated. ## Core Features & Use Cases - Isolated Server Management: Start a dedicated Birdhouse server on custom ports with its own data database and workspace directory. - HTTP-Driven Agent Control: Create workspaces, seed provider keys, create agents, send follow-up messages, and read agent state entirely through curl endpoints. - Snapshot Lifecycle: Archive, restore, and trash complete test environments (workspace directory, data DB, SQLite sidecars, app-support folder) using the included shell scripts. - Use Case: You changed OpenCode plugin behavior and need to verify read modes. Start an external server on port 50150, create a workspace, run a real agent through multiple exchanges, inspect messages with last, full, and all modes, then compare against raw OpenCode session output. ## Quick Start Start an external Birdhouse server on port 50150 with a dedicated data database, create a test workspace via curl, and drive a fresh agent through HTTP to validate my plugin changes.

Frequently Asked Questions about external-management

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test Birdhouse plugin changes without affecting my current environment?▼

Start a separate Birdhouse server on a custom port with its own data database and workspace directory, then drive it entirely through curl. Create agents via /api/workspace/:workspaceId/agents and inspect them through the AAPI read endpoints.

How do I create a Birdhouse agent through the HTTP API?▼

POST to /api/workspace/:workspaceId/agents with a JSON body containing title, prompt, model, and wait flag. This endpoint is the cleanest path for creating a fresh root agent from outside Birdhouse, unlike /aapi/agents which relies on session context.

What read modes does the Birdhouse AAPI support for agent messages?▼

The /aapi/agents/:id/messages endpoint supports last, latest_turn, full, and all modes. Requests must include the X-Birdhouse-Workspace-ID header, and individual tool calls can be inspected via /aapi/agents/:id/tool-calls/:callId.

Why is my external Birdhouse test not picking up plugin changes?▼

Restarting the Birdhouse server alone is not enough; you must also restart the workspace OpenCode instance via POST /api/workspaces/:id/restart. The workspace only picks up new plugin and runtime behavior after its own restart.

How do I snapshot and restore a Birdhouse test workspace?▼

Use archive-external-test-workspace.sh to capture the workspace directory, data DB, SQLite sidecars, and app-support folder into a tar.gz. Restore it later with restore-external-test-workspace.sh, optionally trashing existing state first.