Launch Ghostships from the Ghost Academy and command the crew.
A multi-agent orchestration system for KiroCrew over MCP. Customise agent personas, skills and steering, then send them out into the unknown. Runs locally and remotely on macOS or Linux using Podman.
Quick install (Claude Code plugin):
claude plugin marketplace add mcteamstar/ghostship
claude plugin install ghostship@ghostshipUse the skill /ghostship-admin for guided local setup, /ghostship-capability to customise the academy, and /ghostship-command to drive the fleet. See Install below for full steps.
KiroCrew is designed for running teams of agents over long horizon tasks, but running KiroCrew on your desktop limits you to one instance, directly on your filesystem, with limited isolation between crewmates.
ghostship runs each crew in its own container and makes dedicated workspaces via podman volumes. Each ship is a durable workspace, summoned once (launch) and reusable across multiple features; with idle resource management when not in use. At the same time, ghostships are also expendable and can be torn down cleanly (nuke) at any time.
As the Admiral you can command your crews over MCP from any agent. Delegate orders to the crew's Captain or be the captain yourself. All the ships in your fleet run side by side without colliding, and can be tailored to your tactical needs.
The built-in spec-ops loadout is designed for Spec-Driven Development using OpenSpec. Kiro is fast and cost-efficient at executing well-defined change specs, and is versatile enough to handle the whole SDD cycle when needed. Agents currently default to gpt-5.6-luna but this, amongst many other things, is configurable and overridable (see docs/configuration.md).
Subagents? Subagents are tied to your parent session, and share your live workspace directly. Crew members are just KiroCrew subagents on a ghostship.
Cloud Agents? Cloud agents run on infrastructure outside of your control. Crew container images can be tailored to your development needs within a security boundary you own. Ghostship can be hosted remotely like a private cloud agent.
Agent Harnesses? You could absolutely make a DIY orchestration system for regular harnesses to improve parallelism, concurrency and inter-agent communication. Ghostship is literally just that layer for KiroCrew, and is consumable by any agent over MCP.
Install these before running install.sh:
- macOS or Linux
- Podman >= 4.4 —
brew install podman(macOS),sudo apt-get install -y podman podman-compose(Ubuntu/Debian) podman-compose—brew install podman-compose(macOS); included in the apt command above- A kiro-cli identity — Builder ID / Social Login, or an IAM Identity Center account (see docs/auth.md)
Other distros: docs/manual-install.md. Requires cgroup v2 and Podman rootless. Verified on Ubuntu 22.04+.
Model access: Ghostship defaults to
gpt-5.6-luna, which requires a Pro subscription or higher. See kiro.dev/docs/models for available models by tier, and docs/configuration.md for how to override.
./install.shBuilds the crew images and starts the ga-transport container on localhost:64057. MCP, REST API, and file transfer all share this single port.
For a repeatable setup, copy the example config and fill in your values before running:
cp config/ghostship.conf.example config/ghostship.conf
# edit config/ghostship.conf, then:
./install.sh --config config/ghostship.confAPI key — for any non-local deployment (or if you just want auth), pass --api-key <key> to lock the endpoint:
./install.sh --api-key <key>To uninstall: ./uninstall.sh. If ghostship stops after a reboot, run ./start.sh to bring it back without reinstalling.
Updating academy/ and crews/ — install.sh snapshots academy/ and crews/ from the repo into the data volume. The transport has no runtime dependency on the repo checkout path. After editing files under academy/ or crews/, re-run ./install.sh for changes to take effect. See Updating academy/ and crews/ in the configuration docs.
Full install options and environment variables: docs/configuration.md.
Run it as-is or make it your own. Once you start adding agent personas, skills, or new crew compositions, that configuration belongs in your own fork. See docs/forks.md for the fork model, visibility options, and how to keep your fork current with upstream.
Before your first launch, complete the device auth flow — open the URL returned by POST /login or by calling launch without auth. See docs/auth.md for the walkthrough.
Kiro (via Power):
Install the ghostship power from the Powers panel → Add Custom Power → Import from GitHub:
https://github.com/mcteamstar/ghostship
The ghostship-admin skill walks you through the rest — Podman, ./install.sh, auth, and connecting. See .claude-plugin/PACKAGING.md for keyed and remote installs.
kiro-cli:
# Without API key:
kiro-cli mcp add --name ghostship --url http://localhost:64057/mcp --scope global
# With API key:
kiro-cli mcp add --name ghostship --url http://localhost:64057/mcp \
--headers '{"Authorization": "Bearer ${GHOSTSHIP_API_KEY}"}' --scope globalClaude Code (plugin): see the quick install command at the top of this
README. It installs the ghostship-admin, ghostship-command, and
ghostship-capability skills plus an unauthenticated connection to
http://localhost:64057/mcp. ghostship-admin guides installation and
connecting; ghostship-command is the Admiral's fleet playbook;
ghostship-capability covers academy and crew customisation.
Claude Code (manual, keyed, or remote) — add to ~/.claude.json's
mcpServers:
"ghostship": {
"type": "http",
"url": "http://localhost:64057/mcp",
"headers": { "Authorization": "Bearer ${GHOSTSHIP_API_KEY}" }
}Omit headers if API-key auth is disabled.
For remote deployments, IAM Identity Center config, and TLS setup: docs/remote.md and docs/auth.md.
Strongly recommended: install the
ghostship-commandskill into your agent. Without it, your agent has the MCP tools but no guidance on how to use them effectively —ghostship-commandis the Admiral's fleet playbook.
The ghostship skills follow the Agent Skills standard and work in Claude Code, Kiro, and any harness that supports SKILL.md. The repo ships three skills:
| Skill | What it does |
|---|---|
ghostship-command |
Drive the fleet — launch, seed, dispatch, steer, poll, autopilot, tear down. Install this one. |
ghostship-admin |
Install, configure, and connect a ghostship transport. Useful during setup. |
ghostship-capability |
Configure agent personas, skills, crew compositions, MCP catalogue. |
If you cloned the repo, skills are already wired up under .claude/skills/ (Claude Code) and .kiro/skills/ (Kiro) and activate automatically when you work in this directory.
For global install (so your agent knows how to use ghostship from any project), copy or link the skill to your agent's global skills directory:
# Claude Code
ln -s "$(pwd)/.claude-plugin/skills/ghostship-command" ~/.claude/skills/ghostship-command
# Kiro
ln -s "$(pwd)/.claude-plugin/skills/ghostship-command" ~/.kiro/skills/ghostship-commandThe plugin install path (Claude Code plugin, Kiro Power) handles this automatically.
Every ghostship has access to the same crew curriculum: agent personas, skills, and steering.
There are six basic agent personas. The five worker personas split up the OpenSpec spec-driven workflow.
See docs/agents.md for tool grants and enforcement details. The Captain tool uses Ravens to handle messaging and orders to the other agents. See docs/architecture.md for the full SDD workflow, git bundle seeding, and Captain supervision.
Registered as ghostship:
- docs/architecture.md — components, crew lifecycle, idle-stop/auto-restart, reboot recovery, project layout
- docs/agents.md — the six agent personas, what each owns in the OpenSpec workflow, and how that's enforced (and isn't)
- docs/auth.md — auth flow, identity provider config, secret rotation
- docs/configuration.md — full environment variable reference, extending the crew image
- docs/forks.md — fork model: private/internal/public visibility, keeping your fork current with upstream
- docs/remote.md — remote deployment guide: TLS, reverse proxy, known limitations
















