station
Use Station CLI (`stn`) for AI agent orchestration - creating agents, running tasks, managing environments, and deploying agent teams. Prefer CLI for file operations and exploration; use MCP tools for programmatic agent execution and detailed queries.
What this skill does
# Station CLI
Station is a self-hosted AI agent orchestration platform. You interact with it via the `stn` CLI or MCP tools (41+ available via `stn stdio`).
## When to Use CLI vs MCP Tools
| Task | Use CLI | Use MCP Tool |
|------|---------|--------------|
| Create/edit agent files | `stn agent create`, edit `.prompt` files | - |
| Run an agent | `stn agent run <name> "<task>"` | `call_agent` |
| List agents/environments | `stn agent list`, `stn env list` | `list_agents`, `list_environments` |
| Add MCP servers | `stn mcp add <name>` | `add_mcp_server_to_environment` |
| Sync configurations | `stn sync <env>` | - |
| Install bundles | `stn bundle install <url>` | - |
| Inspect runs | `stn runs list` | `inspect_run`, `list_runs` |
| Deploy | `stn deploy <env>` | - |
| Start services | `stn serve`, `stn jaeger up` | - |
**Rule of thumb**: CLI for setup, file operations, deployment. MCP tools for programmatic execution and queries within conversations.
## Quick Reference
### Initialization
```bash
# Initialize Station with AI provider
stn init --provider openai --ship # OpenAI with Ship filesystem tools
stn init --provider anthropic --ship # Anthropic (requires OAuth: stn auth anthropic login)
stn init --provider gemini --ship # Google Gemini
# Initialize in specific directory (git-backed workspace)
stn init --provider openai --config ./my-workspace
# Start Jaeger for observability
stn jaeger up # View traces at http://localhost:16686
```
### Agent Management
```bash
# List agents
stn agent list # All agents in default environment
stn agent list --env production # Agents in specific environment
# Show agent details
stn agent show <agent-name> # Full configuration
# Run an agent
stn agent run <name> "<task>" # Execute with task
stn agent run incident-coordinator "High latency on API"
stn agent run cost-analyzer "Analyze this week's AWS spend" --env production
stn agent run my-agent "task" --tail # Follow output in real-time
# Delete agent
stn agent delete <name>
```
### Environment Management
```bash
# List environments
stn env list
# Sync file configurations to database
stn sync default # Sync default environment
stn sync default --browser # Secure input for secrets (recommended for AI)
stn sync default --dry-run # Preview changes
stn sync default --validate # Validate only
```
### MCP Server Configuration
```bash
# Add MCP server
stn mcp add <name> --command <cmd> --args "<args>"
# Examples
stn mcp add filesystem --command npx --args "-y,@modelcontextprotocol/server-filesystem,/path"
stn mcp add github --command npx --args "-y,@modelcontextprotocol/server-github" --env "GITHUB_TOKEN={{.TOKEN}}"
stn mcp add playwright --command npx --args "-y,@playwright/mcp@latest"
# Add OpenAPI spec as MCP server
stn mcp add-openapi petstore --url https://petstore3.swagger.io/api/v3/openapi.json
# List and manage
stn mcp list # List configurations
stn mcp tools # List available tools
stn mcp status # Show sync status
stn mcp delete <config-id> # Remove configuration
```
### Bundle Management
```bash
# Install bundle from URL or CloudShip
stn bundle install <url-or-id> <environment>
stn bundle install https://example.com/bundle.tar.gz my-env
stn bundle install devops-security-bundle security
# Create bundle from environment
stn bundle create <environment>
stn bundle create default --output ./my-bundle.tar.gz
# Share bundle to CloudShip
stn bundle share <environment>
# Export required variables from bundle (for CI/CD)
stn bundle export-vars ./my-bundle.tar.gz --format yaml
stn bundle export-vars ./my-bundle.tar.gz --format env
stn bundle export-vars <cloudship-bundle-id> --format yaml
```
### Workflow Management
```bash
# List workflows
stn workflow list
stn workflow list --env production
# Run workflow
stn workflow run <name>
stn workflow run incident-response --input '{"severity": "high"}'
# Manage approvals (for human-in-the-loop)
stn workflow approvals list
stn workflow approvals approve <approval-id>
stn workflow approvals reject <approval-id> --reason "Not authorized"
# Inspect and validate
stn workflow inspect <run-id>
stn workflow validate <name>
stn workflow export <name> --output workflow.yaml
```
### Server & Deployment
```bash
# Start Station server (web UI at :8585)
stn serve
stn serve --dev # Development mode
# Docker container mode
stn up # Interactive setup
stn up --bundle <bundle-id> # Run specific bundle
stn status # Check container status
stn logs -f # Follow logs
stn down # Stop container
# DEPLOY TO CLOUD (3 methods)
# Method 1: Local environment
stn deploy <environment> --target fly # Deploy to Fly.io
stn deploy production --target k8s # Deploy to Kubernetes
stn deploy production --target ansible # Deploy via Ansible (SSH + Docker)
# Method 2: CloudShip bundle ID (no local environment needed)
stn deploy --bundle-id <uuid> --target fly
stn deploy --bundle-id <uuid> --target k8s --name my-station
# Method 3: Local bundle file
stn deploy --bundle ./my-bundle.tar.gz --target fly
stn deploy --bundle ./my-bundle.tar.gz --target k8s
# Deploy flags
--target fly, kubernetes/k8s, ansible (default: fly)
--bundle-id CloudShip bundle UUID (uses base image)
--bundle Local .tar.gz bundle file
--name Custom app name
--region Deployment region (default: ord)
--namespace Kubernetes namespace
--dry-run Generate configs only, don't deploy
--auto-stop Enable idle auto-stop (Fly.io)
--destroy Tear down deployment
# IMPORTANT: K8s and Ansible require a container registry
# Fly.io has built-in registry, no extra setup needed
# Export variables for CI/CD
stn deploy export-vars default --format yaml > deploy-vars.yml
```
### Benchmarking & Reports
```bash
# Run benchmarks
stn benchmark run <agent-name>
stn benchmark list
# Generate reports
stn report create <name>
stn report list
```
### Runs History
```bash
# List runs
stn runs list
stn runs list --agent <name>
stn runs list --limit 20
# Inspect run details (via MCP tools is more detailed)
```
## File Structure
Station stores configurations at `~/.config/station/`:
```
~/.config/station/
├── config.yaml # Main configuration
├── station.db # SQLite database
└── environments/
└── default/
├── *.prompt # Agent definitions
├── *.json # MCP server configurations
└── variables.yml # Template variable values
```
## Agent File Format (dotprompt)
Agents are `.prompt` files with YAML frontmatter:
```yaml
---
metadata:
name: "my-agent"
description: "What this agent does"
model: gpt-4o-mini
max_steps: 8
tools:
- "__tool_name" # MCP tools prefixed with __
---
{{role "system"}}
You are a helpful agent that [purpose].
{{role "user"}}
{{userInput}}
```
### Multi-Agent Hierarchy (Coordinator Pattern)
```yaml
---
metadata:
name: "coordinator"
description: "Orchestrates specialist agents"
model: gpt-4o-mini
max_steps: 20
agents:
- "specialist-a" # Becomes __agent_specialist_a tool
- "specialist-b"
---
{{role "system"}}
You coordinate specialists:
- @specialist-a: handles X
- @specialist-b: handles Y
Delegate using __agent_<name> tools, then synthesize results.
{{role "user"}}
{{userInput}}
```
## MCP Server Configuration Format
JSON files in environment directories:
```json
{
"mcpServers": {
"server-name": {
"command": "npx",
"args": ["-y", "@package/mcp-server"],
"env": {
"API_KEY": "{{.API_KEY}}"
}
}
}
}
```
Template variables (`{{.VAR}}`) are Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.