Connect
Connect Codex to any app. Stop generating text about what you could do - actually do it.
When to Use This Skill
Use this skill when you need Codex to:
- Send that email instead of drafting it
- Create that issue instead of describing it
- Post that message instead of suggesting it
- Update that database instead of explaining how
What Changes
| Without Connect |
With Connect |
| "Here's a draft email..." |
Sends the email |
| "You should create an issue..." |
Creates the issue |
| "Post this to Slack..." |
Posts it |
| "Add this to Notion..." |
Adds it |
Supported Apps
1000+ integrations including:
- Email: Gmail, Outlook, SendGrid
- Chat: Slack, Discord, Teams, Telegram
- Dev: GitHub, GitLab, Jira, Linear
- Docs: Notion, Google Docs, Confluence
- Data: Sheets, Airtable, PostgreSQL
- CRM: HubSpot, Salesforce, Pipedrive
- Storage: Drive, Dropbox, S3
- Social: Twitter, LinkedIn, Reddit
Setup
1. Get API Key
Get your free key at platform.composio.dev
2. Set Environment Variable
export COMPOSIO_API_KEY="your-key"
3. Install
pip install composio # Python
npm install @composio/core # TypeScript
Done. Codex can now connect to any app.
Examples
Send Email
Email sarah@acme.com - Subject: "Shipped!" Body: "v2.0 is live, let me know if issues"
Create GitHub Issue
Create issue in my-org/repo: "Mobile timeout bug" with label:bug
Post to Slack
Post to #engineering: "Deploy complete - v2.4.0 live"
Chain Actions
Find GitHub issues labeled "bug" from this week, summarize, post to #bugs on Slack
How It Works
Uses Composio Tool Router:
- You ask Codex to do something
- Tool Router finds the right tool (1000+ options)
- OAuth handled automatically
- Action executes and returns result
Code
from composio import Composio
import os
composio = Composio(api_key=os.environ["COMPOSIO_API_KEY"])
session = composio.create(user_id="user_123")
options = {
system_prompt="You can take actions in external apps.",
mcp_servers={
"composio": {
"type": "http",
"url": session.mcp.url,
"headers": {"x-api-key": os.environ["COMPOSIO_API_KEY"]},
}
},
}
# Hand these options to Codex (or your agent runtime) so tool calls route through Composio.
# Example Codex prompt: "Send Slack message to #general: Hello!"
Auth Flow
First time using an app:
To send emails, I need Gmail access.
Authorize here: https://...
Say "connected" when done.
Connection persists after that.
Framework Support
| Framework |
Install |
| OpenAI Agents |
pip install composio openai-agents |
| Vercel AI |
npm install @composio/core @composio/vercel |
| LangChain |
pip install composio-langchain |
| Any MCP Client |
Use session.mcp.url |
Troubleshooting
- Auth required → Click link, authorize, say "connected"
- Action failed → Check permissions in target app
- Tool not found → Be specific: "Slack #general" not "send message"
Join 20,000+ developers building agents that ship
Raw SKILL.md
---
name: connect
description: Connect Codex to any app. Send emails, create issues, post messages, update databases - take real actions across Gmail, Slack, GitHub, Notion, and 1000+ services.
---
# Connect
Connect Codex to any app. Stop generating text about what you could do - actually do it.
## When to Use This Skill
Use this skill when you need Codex to:
- **Send that email** instead of drafting it
- **Create that issue** instead of describing it
- **Post that message** instead of suggesting it
- **Update that database** instead of explaining how
## What Changes
| Without Connect | With Connect |
|-----------------|--------------|
| "Here's a draft email..." | Sends the email |
| "You should create an issue..." | Creates the issue |
| "Post this to Slack..." | Posts it |
| "Add this to Notion..." | Adds it |
## Supported Apps
**1000+ integrations** including:
- **Email:** Gmail, Outlook, SendGrid
- **Chat:** Slack, Discord, Teams, Telegram
- **Dev:** GitHub, GitLab, Jira, Linear
- **Docs:** Notion, Google Docs, Confluence
- **Data:** Sheets, Airtable, PostgreSQL
- **CRM:** HubSpot, Salesforce, Pipedrive
- **Storage:** Drive, Dropbox, S3
- **Social:** Twitter, LinkedIn, Reddit
## Setup
### 1. Get API Key
Get your free key at [platform.composio.dev](https://platform.composio.dev/?utm_source=Github&utm_content=AwesomeSkills)
### 2. Set Environment Variable
```bash
export COMPOSIO_API_KEY="your-key"
```
### 3. Install
```bash
pip install composio # Python
npm install @composio/core # TypeScript
```
Done. Codex can now connect to any app.
## Examples
### Send Email
```
Email sarah@acme.com - Subject: "Shipped!" Body: "v2.0 is live, let me know if issues"
```
### Create GitHub Issue
```
Create issue in my-org/repo: "Mobile timeout bug" with label:bug
```
### Post to Slack
```
Post to #engineering: "Deploy complete - v2.4.0 live"
```
### Chain Actions
```
Find GitHub issues labeled "bug" from this week, summarize, post to #bugs on Slack
```
## How It Works
Uses Composio Tool Router:
1. **You ask** Codex to do something
2. **Tool Router finds** the right tool (1000+ options)
3. **OAuth handled** automatically
4. **Action executes** and returns result
### Code
```python
from composio import Composio
import os
composio = Composio(api_key=os.environ["COMPOSIO_API_KEY"])
session = composio.create(user_id="user_123")
options = {
system_prompt="You can take actions in external apps.",
mcp_servers={
"composio": {
"type": "http",
"url": session.mcp.url,
"headers": {"x-api-key": os.environ["COMPOSIO_API_KEY"]},
}
},
}
# Hand these options to Codex (or your agent runtime) so tool calls route through Composio.
# Example Codex prompt: "Send Slack message to #general: Hello!"
```
## Auth Flow
First time using an app:
```
To send emails, I need Gmail access.
Authorize here: https://...
Say "connected" when done.
```
Connection persists after that.
## Framework Support
| Framework | Install |
|-----------|---------|
| OpenAI Agents | `pip install composio openai-agents` |
| Vercel AI | `npm install @composio/core @composio/vercel` |
| LangChain | `pip install composio-langchain` |
| Any MCP Client | Use `session.mcp.url` |
## Troubleshooting
- **Auth required** → Click link, authorize, say "connected"
- **Action failed** → Check permissions in target app
- **Tool not found** → Be specific: "Slack #general" not "send message"
---
<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>