# Spatial9 Agent Skills

Agent Skills (SKILL.md format) and ready-to-run workflow examples that teach AI agents to use the Spatial9 immersive audio engine. They work in Claude, Claude Code, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI and any agent that reads the Agent Skills standard.

Every skill uses the Spatial9 MCP server:

- `https://spatial9.ai/mcp`: sign in with OAuth, or send `Authorization: Bearer s9_...` (create a key at https://spatial9.ai/connect)
- `https://spatial9.ai/mcp/free`: free guest allowance, no sign-in

## How this repository is organized

```
skills/       Agent Skills (SKILL.md) your agent loads
solutions/    Production code for data platforms and an open source pipeline
workflows/    No-code and scheduler automations
examples/     Short demos and agent setup files
templates/    Start your own skill
```

## Skills

| Skill | What the agent can do |
|---|---|
| [spatial9-immersive-mix](skills/spatial9-immersive-mix/SKILL.md) | Song, stems or video to Eclipsa Audio (IAMF) with a binaural headphone version |
| [spatial9-stem-split](skills/spatial9-stem-split/SKILL.md) | Separate a song into instrument stems |
| [spatial9-atmos-to-eclipsa](skills/spatial9-atmos-to-eclipsa/SKILL.md) | Convert Dolby or ADM BWF masters to Eclipsa Audio |
| [spatial9-chorus-preview](skills/spatial9-chorus-preview/SKILL.md) | Free 30-second headphone preview of the chorus |
| [spatial9-remix-by-voice](skills/spatial9-remix-by-voice/SKILL.md) | Move, level, animate and add effects to a mix from plain language |
| [spatial9-release-publisher](skills/spatial9-release-publisher/SKILL.md) | Publish to YouTube and make 9:16 social clips |
| [spatial9-enterprise-catalog](skills/spatial9-enterprise-catalog/SKILL.md) | Governed catalog renders from Databricks, Snowflake, Vertex AI and Bedrock |

## Install

1. Connect the server. For Claude Code, run [examples/setup/claude-code.sh](examples/setup/claude-code.sh). For apps that read an `mcpServers` file, use [examples/setup/mcp.json](examples/setup/mcp.json).
2. Copy a folder from `skills/` into your agent's skills folder, for example `.claude/skills/` for a project or `~/.claude/skills/` for your user. Other agents use their own skills folder.
3. Ask in plain words: "Make my song immersive", "Split this into stems", "Preview the chorus in 3D".

## Solutions

Deployable, production-ready code. Every solution reuses the clients in [solutions/shared](solutions/shared/spatial9_mcp.py).

| Folder | What it runs |
|---|---|
| [solutions/databricks/solution-accelerator](solutions/databricks/solution-accelerator/README.md) | Databricks Solutions Accelerator: an Asset Bundle with six notebooks for intake, render queue, MCP renders, A2A delegation, Dolby Atmos masters from the REST API and gold views |
| [solutions/databricks](solutions/databricks/README.md) | Single Databricks job for a governed catalog |
| [solutions/snowflake](solutions/snowflake/README.md) | Snowflake stored procedure with an external access integration |
| [solutions/vertex-ai](solutions/vertex-ai/README.md) | Google ADK agent on Vertex AI Agent Engine, plus a batch job on Cloud Run |
| [solutions/bedrock](solutions/bedrock/README.md) | Amazon Bedrock agent with Strands, a Lambda and a Step Functions loop |
| [solutions/open-source](solutions/open-source/README.md) | MinIO, Kafka, PostgreSQL, FFmpeg, FastAPI and Dagster pipeline with real-time A2A webhooks and a live preview page |
| [solutions/shared](solutions/shared/spatial9_mcp.py) | Shared Python MCP and A2A clients |

See [solutions/README.md](solutions/README.md) for how they fit together.

## Workflows

| Folder | What it automates |
|---|---|
| [workflows/n8n](workflows/n8n/README.md) | Form to Slack workflow with HTTP Request nodes, or an AI Agent with the MCP Client Tool |
| [workflows/zapier](workflows/zapier/README.md) | Two Zaps with a catch hook, plus the Make version |
| [workflows/power-automate](workflows/power-automate/README.md) | A "Do until" loop for Microsoft 365 teams |
| [workflows/github-actions](workflows/github-actions/spatial9.yml) | Render whenever a master is pushed |
| [workflows/airflow](workflows/airflow/spatial9_catalog_dag.py) | Nightly catalog job with a pool of 3 |

## Examples

| Folder | What it shows |
|---|---|
| [examples/python](examples/python/spatial9_pipeline.py) | Commented batch pipeline: upload, render with 3 workers, download |
| [examples/node](examples/node/a2a-webhook.mjs) | Start an A2A task and get a webhook when it finishes |
| [examples/setup](examples/setup/mcp.json) | Connect Claude Code or any `mcpServers` app to Spatial9 |

## Write your own skill

Start from [templates/SKILL.template.md](templates/SKILL.template.md). Keep the `description` specific about when to use the skill, list the exact tool names, and include the rules your team cares about.

## Limits worth knowing

- Up to 3 renders at once and 20 per day per account.
- A failed render refunds its project automatically.
- Upload links last 2 hours and accept files up to 2 GB.
- Always send an `idempotency_key` so a retry never starts a second render.

## Learn more

- Full guide: https://spatial9.ai/blog/spatial9-agent-skills-pipelines-n8n-workflows
- Enterprise guide: https://spatial9.ai/blog/spatial9-enterprise-agents-databricks-snowflake-vertex-bedrock
- Open source pipeline guide: https://spatial9.ai/blog/open-source-spatial-audio-pipeline-real-time-spatial9
- Browse these files online: https://spatial9.ai/agents/skills
- A2A agents: https://spatial9.ai/agents

## License

MIT. See [LICENSE](LICENSE).
