skills/airbyte-agent-connectors/SKILL.md
Sets up and operates Airbyte Agent Connectors — strongly typed Python packages for accessing 51+ third-party SaaS APIs through a unified entity-action interface. Supported services include Salesforce, HubSpot, Stripe, GitHub, Slack, Jira, Shopify, Zendesk, Google Ads, Notion, Linear, Intercom, Gong, and 36 more connectors spanning CRM, billing, payments, e-commerce, marketing, analytics, project management, helpdesk, developer tools, HR, and communication platforms. Make sure to use this skill when the user wants to connect to any SaaS API, install an airbyte-agent connector package, integrate third-party service data into a Python application or AI agent, query or search records from any supported service. Covers Platform Mode (Airbyte Cloud) and OSS Mode (local Python SDK).
npx skillsauth add airbytehq/airbyte-agent-connectors airbyte-agent-connectorsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Airbyte Agent Connectors let AI agents call third-party APIs through strongly typed, well-documented tools. Each connector is a standalone Python package.
Terminology: Platform Mode = Airbyte Cloud at app.airbyte.ai (managed credentials, UI visibility). OSS Mode = local Python SDK (self-managed credentials, no cloud dependency). Definition ID = UUID that identifies a connector type in the Airbyte API (used in
definition_idfields, notconnector_typeorconnector_definition_id).
Important: This skill provides documentation and setup guidance. When helping users set up connectors, follow the documented workflows below. Do NOT attempt to import Python modules, verify package installations, or run code to check configurations -- simply guide users through the steps using the code examples provided.
First, determine which mode the user needs:
Use when:
AIRBYTE_CLIENT_ID + AIRBYTE_CLIENT_SECRETUse when:
Ask if unclear: "Are you using Airbyte Platform (app.airbyte.ai) or open source connectors?"
51 connectors available. All connectors follow the same entity-action pattern: connector.execute(entity, action, params)
| Connector | Package | Auth Type | Key Entities |
|-----------|---------|-----------|--------------|
| Stripe | airbyte-agent-stripe | Token | Customers, Invoices, Charges, Subscri... |
| HubSpot | airbyte-agent-hubspot | OAuth, Token | Contacts, Companies, Deals, Tickets, ... |
| GitHub | airbyte-agent-github | OAuth, Token | Repositories, Org Repositories, Branc... |
| Salesforce | airbyte-agent-salesforce | OAuth | Sobjects, Accounts, Contacts, Leads, ... |
| Gong | airbyte-agent-gong | OAuth, Token | Users, Calls, Calls Extensive, Call A... |
Full table: See references/connector-index.md for all 51 connectors with auth types, key entities, and documentation status.
If the connector is NOT in the index: Inform the user that this connector isn't available yet. Point them to GitHub issues.
For users with Airbyte Platform credentials.
Get credentials from app.airbyte.ai > Settings > API Keys:
AIRBYTE_CLIENT_IDAIRBYTE_CLIENT_SECRETfrom airbyte_agent_stripe import StripeConnector
from airbyte_agent_stripe.models import StripeAuthConfig
connector = await StripeConnector.create_hosted(
external_user_id="user_123",
airbyte_client_id="...",
airbyte_client_secret="...",
auth_config=StripeAuthConfig(api_key="sk_live_...")
)
connector = StripeConnector(
external_user_id="user_123",
airbyte_client_id="...",
airbyte_client_secret="...",
)
result = await connector.execute("customers", "list", {"limit": 10})
# Using uv (recommended)
uv add airbyte-agent-github
# Or using pip in a virtual environment
python3 -m venv .venv && source .venv/bin/activate
pip install airbyte-agent-github
from airbyte_agent_github import GithubConnector
from airbyte_agent_github.models import GithubPersonalAccessTokenAuthConfig
connector = GithubConnector(
auth_config=GithubPersonalAccessTokenAuthConfig(token="ghp_your_token")
)
result = await connector.execute("issues", "list", {
"owner": "airbytehq",
"repo": "airbyte",
"states": ["OPEN"],
"per_page": 10
})
All connectors use the same interface:
result = await connector.execute(entity, action, params)
# result.data contains the records (list or dict depending on action)
# result.meta contains pagination info for list operations
| Action | Description | result.data Type |
|--------|-------------|-------------------|
| list | Get multiple records | list[dict] |
| get | Get single record by ID | dict |
| create | Create new record | dict |
| update | Modify existing record | dict |
| delete | Remove record | dict |
| api_search | Native API search syntax | list[dict] |
# List
await connector.execute("customers", "list", {"limit": 10})
# Get
await connector.execute("customers", "get", {"id": "cus_xxx"})
# Search
await connector.execute("repositories", "api_search", {
"query": "language:python stars:>1000"
})
async def fetch_all(connector, entity, params=None):
all_records = []
cursor = None
params = params or {}
while True:
if cursor:
params["after"] = cursor
result = await connector.execute(entity, "list", params)
all_records.extend(result.data)
if result.meta and hasattr(result.meta, 'pagination'):
cursor = getattr(result.meta.pagination, 'cursor', None)
if not cursor:
break
else:
break
return all_records
# Stripe
from airbyte_agent_stripe.models import StripeAuthConfig
auth_config=StripeAuthConfig(api_key="sk_live_...")
# Gong
from airbyte_agent_gong.models import GongAccessKeyAuthenticationAuthConfig
auth_config=GongAccessKeyAuthenticationAuthConfig(
access_key="...", access_key_secret="..."
)
# HubSpot (Private App)
from airbyte_agent_hubspot.models import HubspotPrivateAppAuthConfig
auth_config=HubspotPrivateAppAuthConfig(access_token="pat-na1-...")
# GitHub
from airbyte_agent_github.models import GithubPersonalAccessTokenAuthConfig
auth_config=GithubPersonalAccessTokenAuthConfig(token="ghp_...")
# Slack
from airbyte_agent_slack.models import SlackAuthConfig
auth_config=SlackAuthConfig(token="xoxb-...")
# Salesforce
from airbyte_agent_salesforce.models import SalesforceAuthConfig
auth_config=SalesforceAuthConfig(
client_id="...", client_secret="...", refresh_token="..."
)
Per-connector auth details: Each connector reference in references/connectors/ includes the specific auth class name and fields.
.env files..env pattern: from dotenv import load_dotenv; load_dotenv()Each per-connector reference includes: package name and version, authentication details, available entities and actions, quick-start code snippets, and links to full GitHub documentation.
| Topic | Reference | |-------|----------| | Getting Started | references/getting-started.md | | Platform Setup | references/platform-setup.md | | OSS Setup | references/oss-setup.md | | Entity-Action API | references/entity-action-api.md | | Authentication | references/authentication.md | | Programmatic Setup | references/programmatic-setup.md | | Troubleshooting | references/troubleshooting.md |
Reference docs are auto-generated by scripts/generate_skill_references.py.
Run python scripts/generate_skill_references.py --all to regenerate all
references, or --connector <name> for a specific connector.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.