OAuth Readinessfor agent builders on Composio
Approach

Creating the app is easy. Getting it approved is the project.

An agent builder on Composio can start on a managed OAuth app. They need their own app for branding, extra scopes, dedicated rate limits or private instances. Platform docs explain how to create that app. These guides explain what happens next: which choices can't be undone, what stays capped until review, how long approval takes, and which steps an agent can do.

What we did

We created real OAuth apps for Slack, Linear, Notion, Gmail (Google) and Confluence (Atlassian), with an AI agent driving the browser and a person approving sign-ins, terms and creation. Each took 4 to 10 minutes. Every attempt found something the docs or existing guides miss:

  • Linear apps are private by default. Our first draft said any workspace could connect. Corrected.
  • Notion defaults to a single-workspace API token, not OAuth, and locks the install scope after creation.
  • Slack distribution needs no review, but turning it off later uninstalls the app everywhere; history reads are throttled to 1 request a minute until a Marketplace listing.
  • Gmail: Google's console states the 100-user cap is counted over the app's lifetime (we had it from a secondary source). Internal apps need Google Workspace. Uploading a logo alone triggers verification.
  • Confluence: rotating refresh tokens are mandatory, and sharing needs a personal data declaration that is almost always "Yes" for agents with memory.

The agent

One agent loop with two jobs. The model decides which tool to call next; the code sets the goal, the tools, the skills and the permission rules.

  • Research (from the search box): checks OAuth support, then reads official docs, the changelog for the last 18 months, secondary sources and Composio's docs, and streams the guide section by section. A self-check runs before you see it: rule checks in code, then a second model pass that can only lower a claim's status.
  • Chat (on every guide and on Ask the agent): answers from the guides with section citations, compares apps, identifies apps that aren't in the library and offers to research them.

Permission rules

  • Reading, searching and identifying run on their own.
  • Every write waits for you: saving a generated guide, replacing one, or saving a correction.
  • Research costs time and money, so the agent offers it and you start it.
  • The agent never signs in anywhere, creates apps, or handles secrets.

Tools

ToolUsed byWhat it does
web_searchResearch, chatFinds official docs, changelogs and secondary sources.
web_fetchResearch, chatReads a page. Doesn't run JavaScript.
render_pageResearch, lookupOpens a page in a real browser for portals that only render with JavaScript.
load_skillResearch, chatLoads a skill's full instructions when the task needs it.
search_library / read_guideChatReads guides before answering; compares apps.
identify_vendorChat, lookupWorks out which vendor a rough name or link means; rough names are confirmed with you.
propose_researchChatOffers a Research button for an app with no guide. You start it.
save_correctionChatProposes a correction to a guide. Saved only if you click Approve.

Skills

Skills are folders of instructions in skills/. The agent sees each skill's one-line description and loads the full text only when the task needs it, so the prompt stays small and the know-how stays editable without touching code.

SkillLoaded byWhen
answering-questionsChatHow to answer a developer's question from the guides, cite sections, compare apps and hand off to research or saving. Load for any chat answer.
approval-programsResearch, ChatPatterns in provider review and verification programs, what they gate, and what to look for. Load when writing the approval, limits or one-way doors sections.
credential-handoffResearch, ChatHow to rate whether a client ID and secret can reach Composio without a person seeing the secret. Load before writing the credential handoff section.
js-pagesResearchWhat to do when a page is empty, a JavaScript app shell, or asks to enable JavaScript. Load when web_fetch returns little or no text.
no-oauthResearchWhat to write when a vendor does not offer OAuth for third-party apps. Load as soon as you suspect the vendor only offers API keys, personal tokens or basic auth.
oauth-researchResearchThe research order and source rules for writing an OAuth app readiness guide. Load at the start of any new guide.
scope-riskResearch, ChatHow to pick scopes for agent use cases and rate what each one costs in review. Load before writing the scopes section.
vendor-identificationChatRules for working out which vendor a developer means from a rough name or a link. Load when the developer names an app you have to identify.

Decisions

  • Two ratings, not one. Ease of creation and ease of approval are different problems. Slack is easy to create and hard to approve.
  • Nine sections, in the order a developer works: at a glance, prerequisites, app types, creation steps, scopes, approval and distribution, data use, common blockers, sources. One-way decisions, limits before approval, tokens and credential handoff are still researched and stored for the chat and the self-check.
  • Hands-on time and waiting time are separate numbers. Two hours of work and two months of waiting plan very differently.
  • Every step has an owner: Agent, You, or Waiting.
  • Every key claim carries a status: tested, official docs, secondary source, conflict, or not verified. Generated guides can never claim "tested".
  • Library first, generate on request, save on permission.

Limits

  • We did not submit any app for provider review, so review times come from official guidance and vendor reports.
  • Composio's managed-app list did not render in the docs we read, so managed status is "unknown" unless a Composio page confirms it.
  • Generated guides depend on what the agent can find in one research pass of about 10 searches and 8 page reads.
  • Having the agent create apps in a cloud browser is designed but parked. The attempts above were done with an agent in a browser plus human approvals.