domains / agent-tooling / connect-external-apps / connect-apps

connect-apps

Skill card

combined

Both copies describe the same goal (connecting Claude to external apps via Composio), but they prescribe different, non-interchangeable procedures. The first copy uses a Claude Code plugin (`/plugin install composio-toolrouter` and `/composio-toolrouter:setup`) and relies on the agent to route natural-language requests. The second copy uses the Composio CLI (`curl` install, `composio login`, `composio link`, `composio execute`) and provides explicit command-line workflows, discovery, dry-runs, and environment variables. Because each copy contains material steps and constraints the other lacks, crowning one would hide a real alternative.

Repositories

RepositoryPath
ComposioHQ/awesome-claude-skillsconnect-apps/SKILL.md
composio-community/awesome-codex-skillsconnect-apps/SKILL.md

Other copies

RoleRepositoryPath
peerComposioHQ/awesome-claude-skillsconnect-apps/SKILL.md
peercomposio-community/awesome-codex-skillsconnect-apps/SKILL.md

Combined skill

---
name: connect-apps
description: Connect Claude to external apps like Gmail, Slack, GitHub, Notion, and 1000+ services. Use this skill when the user wants to send emails, create issues, post messages, or take actions in external services.
---

# Connect Apps

Connect Claude to 1000+ apps. Actually send emails, create issues, post messages - not just generate text about it.

## Quick Start

### Option A: Claude Code Plugin

1. Install the plugin:
   ```
   /plugin install composio-toolrouter
   ```
2. Run setup:
   ```
   /composio-toolrouter:setup
   ```
   This asks for a free API key (get one at [platform.composio.dev](https://platform.composio.dev/?utm_source=Github&utm_content=AwesomeSkills)), configures the connection, and takes about 60 seconds.
3. Restart Claude Code and try a test action, e.g.:
   ```
   Send me a test email at YOUR_EMAIL@example.com
   ```

### Option B: Composio CLI

1. Install the CLI:
   ```bash
   curl -fsSL https://composio.dev/install | bash
   ```
2. Log in:
   ```bash
   composio login
   composio whoami
   ```
   Opens a browser for auth, then prompts you to pick a default org and project. Use `-y` to skip prompts in scripts.
3. Link the apps you need:
   ```bash
   composio link gmail
   composio link slack
   composio link github
   ```
   Each command walks OAuth once; the connection then persists.
4. Try it:
   ```bash
   composio execute GMAIL_SEND_EMAIL -d '{
     "recipient_email": "YOUR_EMAIL@example.com",
     "subject": "Composio test",
     "body": "Hello from the CLI"
   }'
   ```

## What You Can Do

| Ask Claude to... | What happens |
|------------------|--------------|
| "Send email to sarah@acme.com about the launch" | Actually sends the email |
| "Create GitHub issue: fix login bug" | Creates the issue |
| "Post to Slack #general: deploy complete" | Posts the message |
| "Add meeting notes to Notion" | Adds to Notion |

## Core Workflow (CLI)

1. **Know the tool slug?** → `composio execute <SLUG> -d '{...}'`
2. **Don't know it?** → `composio search "what you want"`
3. **Need inputs?** → `composio execute <SLUG> --get-schema` or `--dry-run`
4. **Not connected?** → `composio link <toolkit>` and retry
5. **Multi-step?** → `composio run` for JS/TS workflows, `composio proxy` for raw API

## Supported Apps

**Email:** Gmail, Outlook, SendGrid
**Chat:** Slack, Discord, Teams, Telegram
**Dev:** GitHub, GitLab, Jira, Linear
**Docs:** Notion, Google Docs, Confluence
**Data:** Sheets, Airtable, PostgreSQL
**And 1000+ more...**

## Handy Commands (CLI)

```bash
# Discover tools
composio search "create a github issue"
composio tools list gmail
composio tools info GITHUB_CREATE_ISSUE

# Inspect / dry-run before executing
composio execute GITHUB_CREATE_ISSUE --get-schema
composio execute GITHUB_CREATE_ISSUE --dry-run -d '{"owner":"acme","repo":"app","title":"Bug"}'

# Execute in parallel
composio execute --parallel \
  GMAIL_FETCH_EMAILS -d '{"max_results": 2}' \
  GITHUB_GET_THE_AUTHENTICATED_USER -d '{}'

# Multi-step workflow
composio run '
  const issue = await execute("GITHUB_CREATE_ISSUE", {
    owner: "acme", repo: "app", title: "Bug", body: "..."
  });
  console.log(issue);
'

# Raw API call when no dedicated tool exists
composio proxy https://gmail.googleapis.com/gmail/v1/users/me/profile --toolkit gmail
```

## Configuration (CLI)

**Environment variables:**
- `COMPOSIO_API_KEY` - auth credential for non-interactive use
- `COMPOSIO_BASE_URL` - custom API endpoint
- `COMPOSIO_SESSION_DIR` - override artifact storage
- `COMPOSIO_DISABLE_TELEMETRY=true` - opt out

**Global flags:** `--log-level <all|trace|debug|info|warning|error|fatal|none>`, `--help`.

## How It Works

1. You ask Claude to do something
2. Composio Tool Router finds the right tool
3. First time? You'll authorize via OAuth (one-time)
4. Action executes and returns result

## Troubleshooting

- **"Plugin not found"** → Make sure you ran `/plugin install composio-toolrouter`
- **"Need to authorize"** → Click the OAuth link Claude provides, then say "done"
- **`Not logged in`** → run `composio login`
- **`Connection required for <toolkit>`** → run `composio link <toolkit>`
- **Unknown slug** → `composio search "<goal>"` or `composio tools list <toolkit>`
- **Bad inputs** → `composio execute <SLUG> --get-schema` then `--dry-run`
- **Action failed** → Check you have permissions in the target app

Full reference: [docs.composio.dev/docs/cli](https://docs.composio.dev/docs/cli)

---

<p align="center">
  <b>Join 20,000+ developers building agents that ship</b>
</p>

<p align="center">
  <a href="https://platform.composio.dev/?utm_source=Github&utm_content=AwesomeSkills">
    <img src="https://img.shields.io/badge/Get_Started_Free-4F46E5?style=for-the-badge" alt="Get Started"/>
  </a>
</p>