Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
7c3b708
docs(agent-plugin): add install guides for the Arcade agent plugin
teallarson Sep 3, 2026
b7ecaab
🤖 Regenerate LLMs.txt
arcade-docs-bot[bot] Sep 3, 2026
4bdf47f
docs(agent-plugin): say plainly that Arcade needs an account
teallarson Sep 3, 2026
6fe150e
docs(agent-plugin): fix the auth model, drop the verify step, reframe…
teallarson Sep 3, 2026
b3d51d5
docs(agent-plugin): install Claude Desktop from the bundle, reframe t…
teallarson Sep 3, 2026
4f7d2ce
🤖 Regenerate LLMs.txt
arcade-docs-bot[bot] Sep 3, 2026
9a3a18c
docs(agent-plugin): nest Claude Desktop and any-MCP-client under tool…
teallarson Sep 3, 2026
ea2cbc3
🤖 Regenerate LLMs.txt
arcade-docs-bot[bot] Sep 3, 2026
d6d785d
continue to iterate
teallarson Sep 3, 2026
94b8415
Update app/en/get-started/agent-plugin/page.mdx
teallarson Sep 3, 2026
9fa0f85
Update app/en/get-started/agent-plugin/tools-only/page.mdx
teallarson Sep 3, 2026
b4286c1
docs(agent-plugin): apply review feedback
teallarson Sep 8, 2026
fe207e2
Merge remote-tracking branch 'origin/main' into teal/gro-303-add-arca…
teallarson Sep 9, 2026
f681507
docs(agent-plugin): align Claude Desktop install with plugin repo and…
teallarson Sep 11, 2026
d8eb0f0
Merge remote-tracking branch 'origin/main' into teal/gro-303-add-arca…
teallarson Oct 2, 2026
9c7c8fa
docs(agent-plugin): sync released install paths
teallarson Oct 2, 2026
b63c631
ci(llmstxt): fetch generation base commit
teallarson Oct 2, 2026
4a5595d
docs(agent-plugin): clear style suggestions
teallarson Oct 2, 2026
33080e5
fix(llmstxt): recover from missing generation base
teallarson Oct 2, 2026
1903d2d
🤖 Regenerate LLMs.txt
github-actions[bot] Oct 2, 2026
c812b04
fix(llmstxt): preserve useful summaries on API failure
teallarson Oct 2, 2026
f1352c7
Revert "🤖 Regenerate LLMs.txt"
teallarson Oct 2, 2026
2372524
🤖 Regenerate LLMs.txt
github-actions[bot] Oct 2, 2026
3890ffb
chore: verify generated documentation
teallarson Oct 2, 2026
fd73c19
chore: keep llms generator fixes out of docs PR
teallarson Oct 2, 2026
41ffaec
Merge origin/main into the agent plugin install guides.
cursoragent Oct 12, 2026
4fee399
docs(agent-plugin): match released install and auth behavior
cursoragent Oct 12, 2026
52a0359
docs(agent-plugin): match v0.3.0 hook and Cursor install facts
cursoragent Oct 15, 2026
3840190
docs(agent-plugin): focus personal installation and clarify steps
teallarson Oct 16, 2026
d5f709f
docs(agent-plugin): consolidate requirements and remove unsupported c…
teallarson Oct 16, 2026
401dddf
docs(agent-plugin): describe included skills and subagent directly
teallarson Oct 16, 2026
73ca09a
docs(agent-plugin): separate included components from installation
teallarson Oct 16, 2026
0b57760
docs(agent-plugin): align simplest native install paths
teallarson Oct 16, 2026
12e1a3e
docs(agent-plugin): clarify VS Code routing guidance
teallarson Oct 16, 2026
be16fe0
docs(agent-plugin): document VS Code Copilot routing hooks
teallarson Oct 16, 2026
13b49da
docs: explain ChatGPT ZIP download and mobile installation limits
teallarson Oct 18, 2026
0a17bbf
docs: distinguish plugin upload from runtime availability
teallarson Oct 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/en/get-started/_meta.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import type { MetaRecord } from "nextra";

export const meta: MetaRecord = {
"about-arcade": "About Arcade",
"agent-plugin": "Agent Plugin",
setup: "Setup",
quickstarts: "Quickstarts",
"agent-frameworks": "Agent Frameworks",
Expand Down
12 changes: 12 additions & 0 deletions app/en/get-started/agent-plugin/_meta.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import type { MetaRecord } from "nextra";

export const meta: MetaRecord = {
index: {
title: "Install",
},
"whats-included": {
title: "What's included",
},
};

export default meta;
208 changes: 208 additions & 0 deletions app/en/get-started/agent-plugin/page.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
---
title: "Install the Arcade agent plugin"
description: "Install Arcade in Cursor, Claude Code, VS Code, GitHub Copilot CLI, Codex, or Claude Desktop. Your agent gets tools for every app you connect, with browser sign-in and no API keys."
---

import { Callout, Tabs } from "nextra/components";
import { SignupLink } from "@/app/_components/analytics";

# Install the Arcade agent plugin

This guide is for agent developers installing Arcade in their own coding agent or desktop client. Personal installs use Arcade's hosted gateway without creating API keys or configuring a gateway.

<GuideOverview>
<GuideOverview.Outcomes>

Install the Arcade agent plugin in a supported client and connect to its hosted gateway.

</GuideOverview.Outcomes>

<GuideOverview.Prerequisites>

- A [supported client](/get-started/agent-plugin/whats-included#client-support): Cursor, Claude Code, VS Code, GitHub Copilot CLI, Codex, or Claude Desktop
- An <SignupLink linkLocation="docs:agent-plugin-install">Arcade account</SignupLink>
- For Claude Code, Claude Cowork, Cursor CLI, and GitHub Copilot CLI: [Node.js](https://nodejs.org/) on the PATH of the host that launches their routing hooks. Those hooks run `node`. Cursor IDE and Cloud Agents, VS Code, Codex, and Claude Desktop Chat do not need Node.js.

</GuideOverview.Prerequisites>

</GuideOverview>

## Install

<Callout type="info">
The cross-client `npx plugins add` command does not finish every client
install. Use the client-native steps below so the gateway and every supported
plugin component load together. The install commands below use the plugin
repository and are not pinned to a release.
</Callout>

<Tabs items={["Claude Code", "Codex", "Cursor", "VS Code", "Copilot CLI", "Claude Desktop", "Other"]}>
<Tabs.Tab>

Requires [Claude Code 2.1.292 or later](https://code.claude.com/docs/en/discover-plugins#add-and-install-from-your-shell).

1. Install Arcade:

```bash
claude plugin install arcade --marketplace {{ARCADE_PLUGIN_REPO}}
```

2. Run `/reload-plugins` if Claude Code is already open.
3. Run `/arcade:try-arcade` to start.

<details>
<summary>Earlier Claude Code versions</summary>

Add the marketplace, then install the plugin:

```bash
claude plugin marketplace add {{ARCADE_PLUGIN_REPO}}
claude plugin install arcade@arcade
```

Run `/reload-plugins` if Claude Code is already open.

</details>

</Tabs.Tab>
<Tabs.Tab>

1. Add the Arcade marketplace and install the plugin:

```bash
codex plugin marketplace add {{ARCADE_PLUGIN_REPO}}
codex plugin add arcade@arcade
```

2. Start a new Codex session or ChatGPT desktop chat.
3. Open `/plugins` and confirm **arcade** is installed and enabled.
4. Confirm the **arcade** MCP server is connected.
5. Choose `@Arcade` or invoke `$arcade:try-arcade` to start.

</Tabs.Tab>
<Tabs.Tab>

**Local installation**

For an individual plan, or a Teams or Enterprise plan with **Allow Local Plugin Imports** enabled:

1. Clone the plugin into Cursor's local plugin directory:

```bash
git clone https://github.com/{{ARCADE_PLUGIN_REPO}} ~/.cursor/plugins/local/arcade-plugin
```

2. Run **Developer: Reload Window**.
3. Open **Customize** and confirm the two Arcade skills, `arcade-operator`, rule, and MCP server are present.
4. Run `/try-arcade` to start.

Keep the clone inside `~/.cursor/plugins/local/`. Cursor ignores symlinks to folders outside that directory.

To update the plugin later:

1. Run `git pull` in `~/.cursor/plugins/local/arcade-plugin`.
2. Run **Developer: Reload Window**.

**Team marketplace alternative**

Enterprise turns **Allow Local Plugin Imports** off by default. When it is off, Cursor ignores `~/.cursor/plugins/local`. Use a team marketplace:

1. An admin opens **Dashboard → Plugins & MCPs → Team Marketplaces → Add Marketplace → Import from Repo** and pastes `https://github.com/{{ARCADE_PLUGIN_REPO}}`.
2. Each person opens **Customize**, finds **Arcade**, and selects **Install**.

</Tabs.Tab>
<Tabs.Tab>

1. Open the Command Palette and select **Chat: Install Plugin From Source**.
2. Paste the repository URL:

```text
https://github.com/{{ARCADE_PLUGIN_REPO}}
```

3. Turn on `chat.plugins.enabled` if needed, then reload VS Code.
4. Confirm **Arcade** appears under **Agent Plugins → Installed**.
5. Run **MCP: List Servers**, select **arcade**, and choose **Start Server**.
6. Sign in when prompted, then return to VS Code and continue the original task.
7. Run `/arcade:try-arcade` to start.

</Tabs.Tab>
<Tabs.Tab>

1. Install with Copilot CLI's plugin command:

```bash
copilot plugin install {{ARCADE_PLUGIN_REPO}}
```

2. Restart the session or run `/restart`.
3. Run `/try-arcade` to start.

</Tabs.Tab>
<Tabs.Tab>

Requires a [paid Claude plan](https://support.claude.com/en/articles/13837440-use-plugins-in-claude). On Team or Enterprise, your organization must allow this marketplace.

1. Open **Customize → Plugins → Add → Add marketplace → Add from a repository**.
2. Paste `{{ARCADE_PLUGIN_REPO}}`.
3. Add **Arcade** from the marketplace.
4. Open **Arcade → Connectors**, then add and connect **arcade** if it is not connected. Sign in to Arcade when prompted.
5. Start a new conversation and ask "What can Arcade do?"

On Team or Enterprise, an Owner may need to [add the connector for your organization](https://claude.com/docs/plugins/overview#bundled-connectors) before you can connect it with your account.

Use this flow for Desktop Chat and Cowork. [Installing from the Claude Code command line does not add the plugin to your Claude account](https://claude.com/docs/plugins/overview#find-the-plugin-in-each-app).

</Tabs.Tab>
<Tabs.Tab>

Your client must support remote HTTP MCP servers and browser sign-in. This connection includes tools only; it does not install the plugin's skills, subagent, or commands.

1. Add an HTTP MCP server with this URL in your client's MCP settings:

```text
{{ARCADE_PLUGIN_GATEWAY_URL}}
```

2. Sign in to Arcade in the browser when prompted, then return to your client.

</Tabs.Tab>
</Tabs>

## Install the ChatGPT ZIP

This path requires a ChatGPT account with plugin upload access. For a managed workspace, an eligible owner or admin uploads the plugin; members install it from their workspace's plugin directory.

1. Open [Arcade's official plugin releases](https://github.com/ArcadeAI/arcade-plugin/releases) in your browser.
2. Expand **Assets** on a release that includes the ChatGPT plugin and download `arcade-chatgpt-{VERSION}.zip`. Do not use GitHub's **Source code (zip)** download. If the ChatGPT ZIP is absent, that release does not include it.
3. Keep the file compressed. On iPhone, Safari downloads appear in **Files → Browse → iCloud Drive → Downloads**, unless you chose another download location. On Android, find the file in Chrome's **Downloads** or your Files app.
4. Open [ChatGPT on the web](https://chatgpt.com) in the account and workspace where you want to install Arcade. Use the plugin upload option available to your account and select the downloaded ZIP. For eligible workspace owners and admins, the path is **Admin console → your workspace → Plugins → Add → Upload plugin**.
5. Select **Install plugin** if prompted, then connect Arcade and sign in when prompted.

If you don't see an upload option, check your account's access or ask your workspace admin. Uploading a ZIP to an ordinary chat does not install it. This installation flow is separate from submitting a plugin for public publication.

**Using a phone:** OpenAI documents plugin-directory installation in the mobile apps, but does not document ZIP upload in those apps or guarantee it in a mobile browser. Use ChatGPT web on a computer if the upload control is unavailable on your phone. After a workspace admin makes Arcade available, install it from that workspace's plugin directory in the mobile app.

Upload availability and where a plugin can run are separate. Plugins marked **Desktop only** require the ChatGPT desktop app.

See [OpenAI's plugin installation guide](https://help.openai.com/en/articles/20001256-plugins-in-chatgpt), [Apple's download instructions](https://support.apple.com/en-us/102440), and [Chrome's Android download instructions](https://support.google.com/chrome/answer/95759?co=GENIE.Platform%3DAndroid&hl=en-GB).

## Sign in

Arcade separates [gateway sign-in from app authorization](/learn/server-level-vs-tool-level-auth):

1. **Into the gateway.** Your client asks you to sign in when it first connects. Sign in to Arcade in the browser so your client can connect to the gateway.
2. **Into each app.** When a task needs an app, your agent gives you a browser sign-in link for the required permissions. After approval, Arcade stores the authorization. You may need to reconnect if the connection expires or a later task needs additional permissions.

After you finish in the browser, return to your agent and continue the original task. Arcade does not resume it for you.

You never give your agent an API key or a password for either layer. To check or manage connections, ask your agent to "Check my Arcade connection," "Show my connected apps," or "Connect Google." You can connect an app before you need it. Clients that support Arcade commands also provide [command shortcuts](/get-started/agent-plugin/whats-included#commands).

Arcade uses the app connections authorized for your signed-in identity. Authorize only the accounts you intend the agent to use.

## Next steps

- [What's included](/get-started/agent-plugin/whats-included): plugin components and client support
- [Connect to MCP clients](/get-started/mcp-clients): configure a client against a gateway you control
- [Integrations catalog](/resources/integrations): every app and toolkit Arcade supports
- [Agentic development](/get-started/setup/connect-arcade-docs): point your agent at these docs with `llms.txt`
144 changes: 144 additions & 0 deletions app/en/get-started/agent-plugin/whats-included/page.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
---
title: "What's included"
description: "Components bundled with the Arcade agent plugin and support across clients."
---

import { Code, Table } from "nextra/components";

# What's included

For agent developers using the Arcade plugin, the package includes a connection to Arcade's hosted MCP gateway, two skills, three command shortcuts, and the `arcade-operator` subagent.

## MCP server

The plugin registers an MCP server named `arcade` at `{{ARCADE_PLUGIN_GATEWAY_URL}}`. The gateway provides tools for email, calendar, chat, issues, docs, and other apps.

## Skills

- [`try-arcade`](https://github.com/ArcadeAI/arcade-plugin/blob/v0.3.0/skills/try-arcade/SKILL.md) guides tool selection, app sign-in, and tasks across connected apps.
- [`scale-arcade`](https://github.com/ArcadeAI/arcade-plugin/blob/v0.3.0/skills/scale-arcade/SKILL.md) guides gateway, tool selection, and end-user identity decisions for a proven workflow.

Skills load when relevant to your request. In Codex and the ChatGPT local runtime, choose `@Arcade` or invoke `$arcade:try-arcade` or `$arcade:scale-arcade`. Codex does not expose these skills as slash commands.

## Subagent

The `arcade-operator` subagent executes app tasks in a separate context and returns the outcome. The `try-arcade` skill delegates to it when the client exposes `arcade-operator`.

The plugin's subagent is [not supported in every client](#client-support).

## Client support

**Every plugin install includes the Arcade MCP server and both skills.** The clients below load those components. Subagent and command support varies by client.

<Table aria-labelledby="client-support" className="mt-5 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand-accent" tabIndex={0}>
<thead>
<Table.Tr>
<Table.Th className="text-left" scope="col">Client</Table.Th>
<Table.Th scope="col">Subagent</Table.Th>
<Table.Th className="text-left" scope="col">Commands</Table.Th>
</Table.Tr>
</thead>
<tbody>
<Table.Tr>
<Table.Th className="text-left" scope="row">Cursor IDE and Cloud Agents</Table.Th>
<Table.Td className="text-center">Yes</Table.Td>
<Table.Td>3 (IDE: plugin page, not <Code>/</Code> menu)</Table.Td>
</Table.Tr>
<Table.Tr>
<Table.Th className="text-left" scope="row">Cursor CLI</Table.Th>
<Table.Td className="text-center">Yes</Table.Td>
<Table.Td>3</Table.Td>
</Table.Tr>
<Table.Tr>
<Table.Th className="text-left" scope="row">Claude Code<br /><span className="font-normal">CLI and desktop Code tab</span></Table.Th>
<Table.Td className="text-center">Yes</Table.Td>
<Table.Td>3 (<Code>/arcade:</Code> prefix)</Table.Td>
</Table.Tr>
<Table.Tr>
<Table.Th className="text-left" scope="row">Claude Cowork<br /><span className="font-normal">No session-start text</span></Table.Th>
<Table.Td className="text-center">Yes</Table.Td>
<Table.Td>3 (<Code>/arcade:</Code> prefix)</Table.Td>
</Table.Tr>
<Table.Tr>
<Table.Th className="text-left" scope="row">GitHub Copilot CLI</Table.Th>
<Table.Td className="text-center">Yes</Table.Td>
<Table.Td>None</Table.Td>
</Table.Tr>
<Table.Tr>
<Table.Th className="text-left" scope="row">VS Code (Copilot sessions)<br /><span className="font-normal">Session and subagent hooks</span></Table.Th>
<Table.Td className="text-center">Yes</Table.Td>
<Table.Td>None</Table.Td>
</Table.Tr>
<Table.Tr>
<Table.Th className="text-left" scope="row">Codex / ChatGPT (local)<br /><span className="font-normal">No lifecycle hooks.</span></Table.Th>
<Table.Td className="text-center">No</Table.Td>
<Table.Td>None</Table.Td>
</Table.Tr>
<Table.Tr>
<Table.Th className="text-left" scope="row">Claude Desktop Chat</Table.Th>
<Table.Td className="text-center">No</Table.Td>
<Table.Td>None</Table.Td>
</Table.Tr>
</tbody>
</Table>

<details>
<summary>Routing details by client</summary>

- **Cursor IDE and Cloud Agents:** the always-apply rule provides routing guidance; plugin hooks do not run.
- **Cursor CLI:** only the session hook runs; the always-apply rule does not load.
- **Claude Code:** the session, prompt, and subagent hooks run.
- **Claude Cowork:** prompt and subagent hooks run, but session-start text does not reach the main conversation.
- **GitHub Copilot CLI:** session and subagent hooks run; prompt-hook output from configuration files does not reach the model.
- **VS Code:** in VS Code's Copilot sessions, Arcade adds routing guidance when a session or subagent starts.
- **Codex:** does not run Agent Plugins lifecycle hooks yet.
- **Claude Desktop Chat:** loads neither the rule nor hooks.

</details>

## Commands

Claude Code and Cowork namespace the commands as `/arcade:arcade-status`, `/arcade:arcade-connect`, and `/arcade:arcade-apps`.

### `/arcade-status`

Reports whether the gateway is reachable, whether you have signed in, and which apps you have authorized.

### `/arcade-connect <app>`

Authorizes an app on demand, so you are not interrupted mid-task.

### `/arcade-apps`

Lists the apps you have connected and lets you disconnect one.

## Rule and hooks

The rule and hooks tell your agent when to use Arcade for app tasks.

The [Agent Plugins](https://agent-plugins.org) 1.0 specification makes only skills and MCP servers portable. Commands, subagents, hooks, and editor rules require client-specific support.

## How Arcade chooses a connection

Arcade prefers the plugin's gateway. If it cannot complete a task for a reason other than sign-in or permission denial, your agent may use another already-authorized connection within the task you approved. It checks the intended app account before using another Arcade gateway. Sign-in and permission failures require your attention. The agent does not switch connections to get around them. The plugin instructs your agent to confirm the action and destination before changing something in an app.

`arcade-operator` falls back only to another authorized Arcade gateway. Fallback to any other tool belongs to the parent agent.

## Privacy

The released plugin turns client-side usage telemetry off in code. No environment setting turns collection on. Requests you make through Arcade still go to its hosted gateway and the apps you authorize. See [Arcade's privacy policy](https://www.arcade.dev/privacy-policy).

## Example requests

- "Send a summary of tomorrow's calendar events to me on Slack."
- "Read my Granola notes from last week, check them against Linear, and file anything I promised that is not a ticket yet. Wait for me before creating anything."
- "Find unread mail that needs a reply. Look the sender up in HubSpot if you can, draft a response, and Slack me the draft before sending."
- "Pull my open GitHub pull requests, my Linear issues, and tomorrow's calendar. Write a standup update and send it to me on Slack."
- "Search my Drive and Notion for the product spec my team uses, then drop a one-paragraph summary in Slack."

Or ask "What can Arcade do?" and pick a workflow from the answer.

## Next steps

- [Install the Arcade agent plugin](/get-started/agent-plugin): client-native setup and gateway sign-in
- [Integrations catalog](/resources/integrations): supported apps and toolkits
8 changes: 7 additions & 1 deletion app/en/get-started/mcp-clients/claude-code/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@ import { SignupLink } from "@/app/_components/analytics";

# Use Arcade in Claude Code

<Callout type="info">
**Setting Arcade up for yourself?** The [Arcade agent plugin](/get-started/agent-plugin)
installs through Claude's plugin marketplace, needs no API key, and signs you
in to each app in the browser. This guide is for pointing Claude Code at a
gateway you control, with your own tool list and your own end-user identities.
</Callout>

<GuideOverview>
<GuideOverview.Outcomes>

Expand Down Expand Up @@ -44,4 +51,3 @@ claude mcp list
Open Claude Code in your project and ask it to use one of the tools from your gateway.

</Steps>

Loading