Agent skill
dench-integrations
Connected app integration recipes for Dench Integrations (Gmail, Slack, GitHub, Notion, Google Calendar, Linear, Stripe, YouTube, and 500+ more)
Install this agent skill to your Project
npx add-skill https://github.com/DenchHQ/DenchClaw/tree/main/skills/dench-integrations
SKILL.md
Dench Integrations
Use the Dench Integrations tools for all connected third-party app tasks in DenchClaw.
Two tools only
dench_search_integrations— Search for available integration tools by query and/or toolkit slug. Returns tool slugs, descriptions, fullinput_schema, connection status, and connected accounts.dench_execute_integrations— Execute a tool by itstool_slugwithargumentsmatching theinput_schema. The gateway handles authentication and account selection automatically when only one account is connected.
Workflow
- Call
dench_search_integrationswith a query with EXACT search strings of what might help you find relevant tools. like "posthog project", "stripe subscription", etc. (optionally narrow with toolkit). - Inspect the returned
results— each hastool_slug,input_schema,is_connected,account_count, andaccounts. - Read the
input_schemato understand required fields, types, and defaults. - Call
dench_execute_integrationswithtool_slugand the correctarguments.
Do not use:
gog, shell CLIs for Gmail / Calendar / Drive / Slack / GitHub / Notion / Linear (unless you need to as last resort or if explicitly asked)curlor raw gateway HTTP calls (unless explicitly asked)- Direct provider REST calls (unless explicitly asked)
Multi-account handling
When dench_search_integrations shows account_count > 1 for a toolkit:
- The
accountsarray lists each connected account withconnected_account_id,label, andemail. - Ask the user which account they want to use.
- Pass the chosen
connected_account_idtodench_execute_integrations.
When only one account is connected, the gateway auto-selects it — no connected_account_id needed.
Execute examples
Gmail — fetch recent emails
{
"tool_slug": "GMAIL_FETCH_EMAILS",
"arguments": {
"label_ids": ["INBOX"],
"max_results": 10
}
}
Slack — send a message
{
"tool_slug": "SLACK_SEND_MESSAGE",
"arguments": {
"channel": "C01ABCDEF",
"text": "Hello from DenchClaw!"
}
}
GitHub — list pull requests
{
"tool_slug": "GITHUB_LIST_PULL_REQUESTS",
"arguments": {
"owner": "DenchHQ",
"repo": "denchclaw",
"state": "open"
}
}
Stripe — list subscriptions
{
"tool_slug": "STRIPE_LIST_SUBSCRIPTIONS",
"arguments": {
"limit": 100
}
}
YouTube — list subscriptions
{
"tool_slug": "YOUTUBE_LIST_USER_SUBSCRIPTIONS",
"arguments": {
"part": "snippet",
"max_results": 50
}
}
With explicit account selection
{
"tool_slug": "GMAIL_SEND_EMAIL",
"arguments": {
"to": "[email protected]",
"subject": "Hello",
"body": "Test email"
},
"connected_account_id": "abc123-def456"
}
General rules
- Tool names are uppercase with underscores (e.g.
GMAIL_FETCH_EMAILS). - Pass JSON-shaped arguments as the tool schema requires: arrays are arrays, not comma-separated strings.
- Read the returned
input_schemabefore filling arguments. Use exact field names and types. - Treat the live schema from
dench_search_integrationsas authoritative over any recipe table below. - If a call fails on argument shape, fix the types and retry once before escalating.
- If the search returns
availability: "connect_required", show the connect link to the user. - If the response includes pagination fields (
has_more,next_cursor,starting_after, etc.), keep paginating when the user asked for the full dataset.
Quick recipe tables
Gmail
| Intent | Tool | Key arguments |
|---|---|---|
| List recent mail | GMAIL_FETCH_EMAILS |
label_ids: ["INBOX"], max_results: 10 |
| Read one message | GMAIL_FETCH_MESSAGE_BY_MESSAGE_ID |
message_id from list results |
| Send mail | GMAIL_SEND_EMAIL |
to, subject, body |
Gotcha: label_ids must be an array like ["INBOX"], never a single string.
Slack
| Intent | Tool | Key arguments |
|---|---|---|
| Send a message | SLACK_SEND_MESSAGE |
channel, text |
| List channels | SLACK_LIST_CONVERSATIONS |
Use schema filters |
Gotcha: channel is usually a channel ID (starts with C), not the display name.
GitHub
| Intent | Tool | Key arguments |
|---|---|---|
| List repos | GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER |
Pagination per schema |
| Find pull requests | GITHUB_FIND_PULL_REQUESTS |
Best for broad PR search |
| List pull requests | GITHUB_LIST_PULL_REQUESTS |
owner, repo |
| Create issue | GITHUB_CREATE_AN_ISSUE |
owner, repo, title, body |
Notion
| Intent | Tool | Key arguments |
|---|---|---|
| Search | NOTION_SEARCH |
Query string |
| Read page | NOTION_GET_PAGE |
Page ID |
| Create page | NOTION_CREATE_PAGE |
Parent object per schema |
Google Calendar
| Intent | Tool | Key arguments |
|---|---|---|
| List calendars | GOOGLE_CALENDAR_CALENDAR_LIST |
Optional params |
| List events | GOOGLE_CALENDAR_EVENTS_LIST |
calendar_id, time_min/time_max (RFC3339) |
| Create event | GOOGLE_CALENDAR_CREATE_EVENT |
Calendar id + event payload |
Gotcha: Datetimes should be RFC3339 strings.
Linear
| Intent | Tool | Key arguments |
|---|---|---|
| List issues | LINEAR_LIST_ISSUES |
Filters per schema |
| Create issue | LINEAR_CREATE_ISSUE |
Team id, title, description |
Stripe
| Intent | Tool | Key arguments |
|---|---|---|
| List subscriptions | STRIPE_LIST_SUBSCRIPTIONS |
Use schema filters |
| Search subscriptions | STRIPE_SEARCH_SUBSCRIPTIONS |
Customer or filter-specific |
| List customers | STRIPE_LIST_CUSTOMERS |
For customer lookup |
| Retrieve balance | STRIPE_RETRIEVE_BALANCE |
Current balance snapshot |
Subagent handoff
When delegating, include: the tool_slug, the arguments object (copy shapes from the live input_schema returned by dench_search_integrations), and if applicable the connected_account_id.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
gstack-workflow
Structured AI-assisted development workflow with specialist roles — Think, Plan, Build, Review, Test, Ship, Reflect. Adapted from garrytan/gstack (MIT).
plan-ceo-review
CEO/founder-mode plan review. Rethink the problem, find the 10-star product, challenge premises. Four modes: SCOPE EXPANSION, SELECTIVE EXPANSION, HOLD SCOPE, SCOPE REDUCTION. Use when reviewing strategy, questioning scope, or before engineering review.
investigate
Systematic root-cause debugging. Four phases: investigate, analyze, hypothesize, implement. Iron Law: no fixes without root cause investigation first. Use when debugging errors, unexpected behavior, or troubleshooting.
design-consultation
Build a complete design system from scratch. Research the landscape, propose safe choices AND creative risks, generate DESIGN.md. Use when creating a new design system or establishing design foundations for a project.
land-and-deploy
Merge the PR, wait for CI and deploy, verify production health. Takes over after ship. One command from "approved" to "verified in production."
guard
Maximum safety mode — combines careful (destructive command warnings) with freeze (edit scope restriction). Use when working with production systems or making sensitive changes.
Didn't find tool you were looking for?