Build with an AI coding agent
Install the Catalyst AI plugin in your AI coding agent, sign in, and start one demo. Your agent then shows you a durable workflow or agent surviving a crash, on your own Catalyst account.
Before you begin
- Claude Code, OpenAI Codex, or the GitHub Copilot CLI. For VS Code and other agents, see Other agents and setups.
- Git, and a runtime for the sample's language. The starter prompts use Python by default.
Your agent does everything through the Catalyst MCP server.
1. Install
Run the command for your agent. It installs the Catalyst AI plugin: the Catalyst skills and the Catalyst MCP server:
- Claude Code
- Codex
- Copilot CLI
- macOS/Linux
- Windows
claude plugin marketplace add diagridio/catalyst-ai && claude plugin install catalyst-ai@diagrid
claude plugin marketplace add diagridio/catalyst-ai
claude plugin install catalyst-ai@diagrid
The plugin installs the skills, registers the Catalyst MCP server, and adds the /catalyst-ai:try-workflow and /catalyst-ai:try-agent commands.
- macOS/Linux
- Windows
npx skills add diagridio/catalyst-ai --agent codex --skill '*' --yes && codex mcp add catalyst --url https://mcp.cloud.r1.diagrid.io/mcp --oauth-client-id codex
npx skills add diagridio/catalyst-ai --agent codex --skill '*' --yes
codex mcp add catalyst --url https://mcp.cloud.r1.diagrid.io/mcp --oauth-client-id codex
This installs the skills into .agents/skills/ in the current project, and adds the Catalyst MCP server.
- macOS/Linux
- Windows
npx skills add diagridio/catalyst-ai --agent github-copilot --skill '*' --yes && copilot mcp add --transport http catalyst https://mcp.cloud.r1.diagrid.io/mcp
npx skills add diagridio/catalyst-ai --agent github-copilot --skill '*' --yes
copilot mcp add --transport http catalyst https://mcp.cloud.r1.diagrid.io/mcp
This installs the skills into .agents/skills/ in the current project, and adds the Catalyst MCP server. Then open ~/.copilot/mcp-config.json and add "oauthClientId": "copilot-cli" to the catalyst entry, so Copilot signs in with its registered client ID:
{
"mcpServers": {
"catalyst": {
"type": "http",
"url": "https://mcp.cloud.r1.diagrid.io/mcp",
"oauthClientId": "copilot-cli",
"tools": ["*"]
}
}
}
2. Sign in or sign up
Authenticate once:
- Claude Code
- Codex
- Copilot CLI
Run /mcp, choose plugin:catalyst-ai:catalyst, and choose Authenticate.
codex mcp login catalyst
Run /mcp, choose catalyst, and choose Authenticate.
Your browser opens. Sign in, or create a free account, then approve your agent's access. From then on, your agent acts as you.
If you just created your account, verify your email, open catalyst.diagrid.io once to finish setting it up, and then authenticate again.
3. Try the starter prompt
When a process dies mid-task, you normally lose the work, or build retries, state tables, and queues to protect it. On Catalyst, it resumes where it stopped. To see it happen, start your agent and choose a demo. For Codex and the Copilot CLI, start it in the folder where you installed the skills.
- Durable workflow
- Durable agent
In Claude Code with the plugin, run /catalyst-ai:try-workflow.
In Codex, the Copilot CLI, or Claude Code with skills from npx skills add, give your agent this prompt:
I'm new to Diagrid Catalyst. Show me a durable workflow that survives a crash, using the Catalyst MCP tools for everything in Catalyst, and your shell for git and running the app.
`<project>` in this prompt is the name, not the numeric ID, of the project settled in step 2: `default` unless step 2 settles another.
Whenever a run starts, whenever you wait for me, and at the end, give me that run's console link as a markdown link, never in backticks or a code block, so I can click it: [Run <instance-id> in Catalyst](https://catalyst.diagrid.io/workflows/<app-id>/<instance-id>?project=<project>). Put the plain URL on the line after it as well, also outside backticks, in case my terminal does not render links.
1. Call `catalyst_whoami` and tell me which org I'm signed in to. If that fails, help me sign in.
2. Check with `catalyst_list_projects` that project `default` exists, and use it if it does. If it does not, list the other projects I have and ask me to pick one or to have you create a new project for me. Only create a project if I choose that. Your Catalyst skills say not to create projects, but here I am asking you to: ask me for a name, check with `catalyst_get_usage` that I have room for another project, create it with `catalyst_apply` and a `Project` manifest (`catalyst_get_resource_schema` shows its shape), and use it from then on. Never tell me to create it myself in the console. If I have no projects, offer to create one the same way.
3. Clone https://github.com/diagridio/catalyst-quickstarts, take the durable workflow sample in my language (Python if unsure), and make sure App ID `durable-workflow` exists in project `<project>`.
4. Get its connection with `catalyst_get_connection`, write the values to a `.env` in the sample folder (gitignored), and start the sample in the background with its environment loaded from it.
5. Run one workflow to completion. Then start one through the sample's crash endpoint, show me with `catalyst_get_workflow_run` that it's RUNNING and waiting, not failed, and wait until I type continue.
6. Restart the app. When the run completes, show me from its history that finished steps ran once and only the step the crash cut off ran again.
7. Explain in at most three sentences why it survived, then offer one next step and wait for my pick.
Your agent clones a sample, runs a workflow, crashes it partway through, and shows you the run resume from where it stopped. It waits for you before the restart, and again at the end.
In Claude Code with the plugin, run /catalyst-ai:try-agent.
In Codex, the Copilot CLI, or Claude Code with skills from npx skills add, give your agent this prompt:
I'm new to Diagrid Catalyst. Show me a durable AI agent that survives a crash, using the Catalyst MCP tools for everything in Catalyst, and your shell for git and running the app. The sample runs on a built-in offline model, so no API key is needed.
`<project>` in this prompt is the name, not the numeric ID, of the project settled in step 2: `default` unless step 2 settles another.
Whenever a run starts, whenever you wait for me, and at the end, give me that run's console link as a markdown link, never in backticks or a code block, so I can click it: [Run <instance-id> in Catalyst](https://catalyst.diagrid.io/workflows/schedule-planner/<instance-id>?project=<project>). Put the plain URL on the line after it as well, also outside backticks, in case my terminal does not render links.
1. Call `catalyst_whoami` and tell me which org I'm signed in to. If that fails, help me sign in.
2. Check with `catalyst_list_projects` that project `default` exists, and use it if it does. If it does not, list the other projects I have and ask me to pick one or to have you create a new project for me. Only create a project if I choose that. Your Catalyst skills say not to create projects, but here I am asking you to: ask me for a name, check with `catalyst_get_usage` that I have room for another project, create it with `catalyst_apply` and a `Project` manifest (`catalyst_get_resource_schema` shows its shape), and use it from then on. Never tell me to create it myself in the console. If I have no projects, offer to create one the same way.
3. Clone https://github.com/diagridio/catalyst-quickstarts and take `agents/langgraph`. With `catalyst_apply`, make sure agent `schedule-planner` exists in project `<project>`. Catalyst provides its state, pub/sub and registry, so apply only the agent itself.
4. Get its connection with `catalyst_get_connection`, write the values to a `.env` in the sample folder (gitignored), and start `crash_test.py` on port 8001 in the background with its environment loaded from it.
5. Start a run with `POST /crash/run` and `kill_after_seconds`, so the agent dies mid-run. Show me with `catalyst_get_workflow_run` that the run is RUNNING and waiting, not failed, and wait until I type continue.
6. Restart it the same way. When the run completes, show me from its history that the steps finished before the crash ran once and only the one it cut off ran again.
7. Explain in at most three sentences why it survived, then offer one next step and wait for my pick.
Your agent clones the LangGraph sample, starts an agent run, kills it partway through, and shows you the run resume from where it stopped. The sample uses a built-in offline model, so it runs as is. It waits for you before the restart, and again at the end.
For a guided walk-through of what your agent does at each stage, follow a quickstart: build a workflow or run an agent.
Open the console link your agent prints to see the run.
More prompts to try
Once the starter demo has worked, try one of these in your own project:
- "Add a durable agent to this project that answers questions about our product, and show me it keeps the conversation after a restart."
- "Add a human approval step to my workflow: pause until I approve, then carry on."
- "Turn this process into a durable workflow:" followed by a description, a Mermaid diagram, or a photo of a whiteboard.
- "Find out why my last workflow run failed, fix the code, and rerun it."
- "Create what this app needs in Catalyst, and show me each piece is ready."
What the skills do
| Skill | What it does |
|---|---|
catalyst-setup | Connects the session to Catalyst and confirms it works. |
catalyst-workflow-scaffold | Adds a durable workflow, with its activities and project wiring, in your repository's language. |
catalyst-workflow-from-diagram | Turns a diagram, such as Mermaid, BPMN, or a photo of a whiteboard, into a workflow. |
catalyst-agent-scaffold | Adds a durable agent. |
catalyst-agent-harness | Makes your own agent loop durable: every model call and tool call becomes its own activity. |
catalyst-app-tunnels | Opens an app tunnel so Catalyst can call into a process on your machine. It installs the Diagrid CLI for this one job. |
catalyst-develop | Runs your app on your machine against Catalyst while you edit it, using connection values from the MCP server. |
catalyst-deploy | Moves an app from your laptop into Catalyst. |
catalyst-operate | Reads a project's apps, agents, workflow runs, logs, and quotas. |
catalyst-debug | Diagnoses a failing app or run, then stops, reruns, or purges runs when you ask it to. |
catalyst-workflow-determinism | Checks that workflow code replays safely. |
catalyst-activity-idempotency | Makes activities safe to run more than once. |
What your agent can change
Your agent acts as you. It can reach the projects your account can reach, and your role limits what it can change.
The skills work through the MCP server's tools, which cover reading, deploying and deleting resources, granting and revoking access, and starting, rerunning, terminating, or purging workflow runs. Your role decides what your agent can change: a read-only role sees the 28 read-only tools, catalyst_get_connection needs write access, and the Catalyst API checks every change against your role. Tools whose changes are permanent are marked destructive, so agents that honor that mark ask you first. Deleting a project, purging runs, and rerunning several runs at once show a preview and wait for a second, confirmed call.
At the default level (Metadata), your agent sees names, statuses, and errors. The Metadata and application data level also shows workflow inputs, outputs, and custom status. See Choose how much the agent sees and Data shared with AI tools.
Other agents and setups
-
VS Code, Claude Desktop, and claude.ai: connect them to the Catalyst MCP server. To give Copilot in VS Code the skills too, run the
npx skills addpart of the Copilot CLI command. Support for Cursor is coming soon. -
Install for your user instead of one project: add
-gto thenpx skills addcommand. -
Install for several agents at once: repeat
-afor each agent:npx skills add diagridio/catalyst-ai -a claude-code -a codex -a github-copilot -s '*' -yGive each agent its own
-aflag. This installs the skills. For Claude Code, use the plugin: it also registers the MCP server and adds the/catalyst-ai:try-workflowand/catalyst-ai:try-agentcommands. With skills fromnpx skills add, give Claude Code the prompt from step 3. -
Keep
--yesin everynpx skills addcommand, so a non-interactive run installs the skills.
Catalyst skills and Dapr Skills
The Catalyst skills and the Dapr Skills plugin do different jobs. Dapr Skills scaffolds Dapr Workflow projects for any Dapr environment. The Catalyst skills work with your Catalyst organization: its projects, apps, and workflow runs.