Openloomi Connectors
melandlabs/openloomi
openloomi Connectors tools - manage the native 7 messaging integrations and pair with the composio skill for the 1000+ apps OAuth layer (Slack, Discord, X, Gmail, Outlook, Google…
Add a new Rome-managed OAuth integration for a third-party service so a user can delegate access by clicking Connect, and Rome can act on the service with the delegated token (the GitHub/Slack model…
$ npx skills add rome-os/rome --skill add-oauth-integration -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rome-os/rome add-oauth-integration --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/rome-os/rome.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-oauth-integration .claude/skills/add-oauth-integration && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "add-oauth-integration" agent skill from https://github.com/rome-os/rome/tree/main/.claude/skills/add-oauth-integration into .claude/skills/add-oauth-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-oauth-integration", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/rome-os/rome/tree/main/.claude/skills/add-oauth-integrationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add rome-os/rome --skill add-oauth-integration -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rome-os/rome add-oauth-integration --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rome-os/rome.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/add-oauth-integration .agents/skills/add-oauth-integration && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-oauth-integration" agent skill from https://github.com/rome-os/rome/tree/main/.claude/skills/add-oauth-integration into .agents/skills/add-oauth-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-oauth-integration", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rome-os/rome --skill add-oauth-integration -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rome-os/rome add-oauth-integration --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rome-os/rome.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/add-oauth-integration .cursor/skills/add-oauth-integration && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "add-oauth-integration" agent skill from https://github.com/rome-os/rome/tree/main/.claude/skills/add-oauth-integration into .cursor/skills/add-oauth-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-oauth-integration", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/rome-os/rome.git --path .claude/skills/add-oauth-integration--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add rome-os/rome --skill add-oauth-integration -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rome-os/rome add-oauth-integration --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rome-os/rome.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/add-oauth-integration .gemini/skills/add-oauth-integration && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "add-oauth-integration" agent skill from https://github.com/rome-os/rome/tree/main/.claude/skills/add-oauth-integration into .gemini/skills/add-oauth-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-oauth-integration", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install rome-os/rome add-oauth-integrationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add rome-os/rome --skill add-oauth-integration -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rome-os/rome.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/add-oauth-integration .github/skills/add-oauth-integration && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "add-oauth-integration" agent skill from https://github.com/rome-os/rome/tree/main/.claude/skills/add-oauth-integration into .github/skills/add-oauth-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-oauth-integration", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rome-os/rome --skill add-oauth-integration -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rome-os/rome add-oauth-integration --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rome-os/rome.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/add-oauth-integration .opencode/skills/add-oauth-integration && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "add-oauth-integration" agent skill from https://github.com/rome-os/rome/tree/main/.claude/skills/add-oauth-integration into .opencode/skills/add-oauth-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-oauth-integration", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
add-oauth-integrationAdd a new Rome-managed OAuth integration for a third-party service so a user can delegate access by clicking Connect, and Rome can act on the service with the delegated token (the GitHub/Slack model…
Add OAuth Integration is an agent skill from rome-os/rome. Add a new Rome-managed OAuth integration for a third-party service so a user can delegate access by clicking Connect, and Rome can act on the service with the delegated token (the GitHub/Slack model — brokered by Pantheon, NOT Composio). Use when asked to "add an integration / connector for <service", "let users connect their <service", or "delegate <service access to Rome". NOT for Composio-managed toolkits (those are a declarative catalog entry only — see romeapps/connector), and NOT for inbound real-time…
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering OAuth and OpenID Connect, App automation through connectors and Webhooks. It works with GitHub, Composio and Slack. The repository describes itself as: A compounding agent OS for recursive agents. Also an open source alternative to Grok Bot and Meta's Muse. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ccf62e7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Add OAuth Integration loads about 3.6k tokens when it runs. Until then it costs about 180 tokens; SKILL.md has 1,587 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from rome-os/rome at commit ccf62e7, republished under its MIT licence (© rome-os). 1,587 words, ~3,574 tokens.
.claude/skills/add-oauth-integration/SKILL.md (or your agent's skills folder).Goal end-state: a user opens Settings → Connections, clicks Connect <Service>, approves on the provider's consent screen, and Rome ends up holding a delegated token it can use to call the provider's API on the user's behalf. This mirrors the existing GitHub and Slack integrations — "Rome-managed" providers brokered by Rome's own Pantheon OAuth, with zero Composio involvement.
Work the five phases in order. Don't skip Phase 1 (scoping) — the answers decide how much of Phases 4–5 you build.
The two reference implementations to read and mirror throughout:
Two things are fixed for this skill and need no confirmation: the integration is OAuth-only (act on the service via its API — real-time inbound events need a central webhook broker and are out of scope) and Rome-managed (our own Pantheon OAuth, direct API, with no Composio connection — never mix the two). State the goal back to the user in one sentence, then resolve the two gates that actually change the build with the human:
Capture the answers — they are the spec for everything below.
Read the provider's OAuth documentation and produce a short "build guide" (a scratch doc is fine). Extract exactly these, because the adapter in Phase 4 needs every one:
state, redirect_uri, and whether it uses PKCE (many confidential-client flows don't — confirm, don't assume).subject that keys and dedups the connection (the machine identity), and a human-readable handle so a person can recognize which account is wired up (it's the label in Settings → Connections). The handle can come from an OIDC email / email_verified claim or a provider-specific profile API — find whichever the provider exposes (Google has the OIDC claim; GitHub uses /user/emails; Slack uses users.info). Rome broker invariant: the callback (packages/pantheon/src/app/oauth/[provider]/callback/route.ts) currently requires that handle to be a verified email specifically and rejects the handoff without one, so the adapter must produce {email, emailVerified} by whatever means fits — real claim, provider API, or a justified synthesis (Slack treats any returned email as verified, since it only admits verified members). If the provider exposes no email at all (handle-only services), that's a genuine blocker to raise, not a detail — the fix is a broker change (key on subject alone), not something the adapter can paper over. Trap: if the grant mints a service/bot/app identity distinct from the human who clicked Connect, the "whoami" call on the primary token returns the service identity (no email) — resolve the human instead (read the installing user's id from the token response held in bundle.raw, then call the user-profile endpoint) and use the human for subject too.https redirect.You can't register the provider app for them (their account, their consent). Produce a precise checklist — and, if the provider's console supports app manifests (many do), a manifest file the human imports; otherwise step-by-step console instructions. The human needs:
https://<PANTHEON_DOMAIN>/oauth/<provider>/callback. It is not per-tenant and has no wildcard — Pantheon brokers all tenants through one origin (getPantheonOrigin + /oauth/<provider>/callback in packages/pantheon/src/app/start/route.ts). Register the prod origin; for local testing add the tunnel origin too (Phase 5).<PROVIDER>_OAUTH_CLIENT_ID / <PROVIDER>_OAUTH_CLIENT_SECRET (read automatically by packages/pantheon/src/lib/oauth/providers.ts).Two halves: (a) obtain consent + exchange the token (the broker, in Pantheon + core), and (b) consume the token for API calls (the connector). Mirror GitHub/Slack file-for-file.
packages/pantheon/src/lib/oauth/<provider>.ts implementing OAuthProviderAdapter (createAuthorizationUrl, exchangeCode, fetchProfile). Copy oauth/slack.ts (two-token, no PKCE) or oauth/google.ts (PKCE, refresh) as the closer match. Map the primary token to bundle.accessToken; stash the full provider response (any extra tokens, team/workspace id) in bundle.raw — it survives the broker→instance handoff. fetchProfile must return a verified email."<provider>" to OAUTH_PROVIDERS in packages/pantheon/src/lib/oauth-providers.ts, to PROVIDER_ADAPTERS in packages/pantheon/src/lib/oauth/providers.ts, and document the env vars in packages/pantheon/.env.example."<provider>" + a descriptor to packages/core/src/lib/oauth-providers.ts. The broker, token storage, /api/integrations, connect/disconnect, and the per-tenant handoff are all provider-agnostic and light up automatically.packages/core/src/lib/<provider>-shell-integration.ts writes the token(s) to /run/rome/<provider>-oauth-token on connect and clears on disconnect (single string like GitHub, or JSON for multiple tokens like Slack). Wire sync…ForProvider into packages/core/src/api/routes/oauth.ts (redeem) and clear…ForProvider into packages/core/src/api/routes/integrations.ts (disconnect). Reference slack-shell-integration.ts / github-shell-integration.ts."<provider>" to ROME_MANAGED_TOOLKITS in rome_apps/connector/src/shared.ts, set romeManaged: true in rome_apps/connector/src/web/lib/connections.ts, and ensure the toolkit exists in the SDK SUPPORTED_CONNECTORS (packages/app-runtime-sdk) with a TOOLKIT_API_HOSTS entry (shared.ts).rome_apps/connector/src/api/<provider>-proxy.ts reads the token file and exposes a <provider>ProxyCall (auth header, default API host). Add a branch in rome_apps/connector/src/actions/connector-proxy/index.ts that, for this toolkit, reads the token and calls the proxy — bypassing Composio. For multi-token services, select the token by endpoint (Slack: search.* → user token). Reference slack-proxy.ts / github-proxy.ts.rome_apps/connector/src/web/<provider>-connect-card.tsx (drives core's /api/integrations OAuth inline), side-effect-imported in rome_apps/connector/src/web/App.tsx, listed under components: in rome_apps/connector/app.yaml, and rendered from a branch in rome_apps/connector/src/actions/connector-connect/index.ts. The card is currently copy-pasted per provider — if you're adding the 3rd one, generalize it into one <RomeManagedConnectCard provider> instead.connector_tool_execute already short-circuits any Rome-managed toolkit to a "use connector_proxy" hint — no change needed.packages/pantheon/src/lib/oauth/<provider>.ts NEW adapter
packages/pantheon/src/lib/oauth-providers.ts + OAUTH_PROVIDERS
packages/pantheon/src/lib/oauth/providers.ts + adapter map
packages/pantheon/.env.example + <PROVIDER>_OAUTH_CLIENT_ID/SECRET
packages/core/src/lib/oauth-providers.ts + provider + descriptor
packages/core/src/lib/<provider>-shell-integration.ts NEW token-file write/clear (if runtime needs the token)
packages/core/src/api/routes/oauth.ts + sync…ForProvider on redeem
packages/core/src/api/routes/integrations.ts + clear…ForProvider on disconnect
rome_apps/connector/src/shared.ts + ROME_MANAGED_TOOLKITS (+ TOOLKIT_API_HOSTS if missing)
rome_apps/connector/src/api/<provider>-proxy.ts NEW token read + proxy call
rome_apps/connector/src/actions/connector-proxy/index.ts + provider branch
rome_apps/connector/src/actions/connector-connect/index.ts + provider branch → connect card
rome_apps/connector/src/web/<provider>-connect-card.tsx NEW inline connect card
rome_apps/connector/src/web/App.tsx + import the card
rome_apps/connector/src/web/lib/connections.ts + romeManaged: true
rome_apps/connector/app.yaml + component + version bumpRun the validate-oauth-integration skill — it owns the full recipe (static + unit → a token-only smoke that proves Rome can use a token → the real consent round-trip that proves Rome can obtain one) and the local-only blockers. Report honestly which layers actually ran; the real round-trip needs a registered app, creds, and a human at the consent screen, so it's often where the human takes over.
One build-coupled heads-up before you hand off: adding the provider trips drift guards — the enabled-provider lists in packages/core/src/lib/oauth-providers.test.ts and the Rome-managed lists in rome_apps/connector/src/web/lib/connections.test.ts. Update both, and switch any test that used the service as a stand-in Composio toolkit to a still-Composio one (e.g. notion).
Service-specific quirks are deliberately NOT listed here — Phase 2 tells you to hunt for them per provider, and Phase 4 says where they land. Two we hit with Slack are examples of that category, not standing gotchas: an API that signals errors in the body rather than the HTTP status (Slack's ok:false at 200), and a provider that returns more than one token (stash extras in bundle.raw). These below are the ones that bite on every integration:
fetchProfile returns no verified email. This is a Rome broker invariant, not an OAuth2/OIDC guarantee — most providers can satisfy it (OIDC claim, provider API, or justified synthesis), but a handle-only provider with no email can't without a broker change. Confirm the provider has a usable email before building (Phase 2).auth.test-equivalent shows the scopes it actually has) is the only proof the contract closed.https://<PANTHEON_DOMAIN>/oauth/<provider>/callback. (Rome architecture.)http/localhost redirects. The strict ones require https, which is why local Layer-2 testing fronts Pantheon with a tunnel (ROME_DEV_PANTHEON_PUBLIC_ORIGIN). Check each provider's policy before assuming the dev http origin works.code_challenge, others don't). Copy the closest adapter, but verify rather than inherit it.© rome-os, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/add-oauth-integration of rome-os/rome.
Open the folder on GitHubat commit ccf62e7
Add OAuth Integration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Add OAuth Integration this skillrome-os/rome | 743 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Openloomi Connectorsmelandlabs/openloomi | 1k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Connect Appsyc-software/qm | 15k | — | ~746 | Automated safety check: Pass | MIT | |
| Emulate Seedyonatangross/orchestkit | 292 | — | ~4.5k | Automated safety check: Pass | MIT | |
| ComposioComposioHQ/composio | 30k | 1 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Connect Apps with ComposioComposioHQ/awesome-claude-skills | 77k | 3 repos | ~557 | Automated safety check: Pass | None |
melandlabs/openloomi
openloomi Connectors tools - manage the native 7 messaging integrations and pair with the composio skill for the 1000+ apps OAuth layer (Slack, Discord, X, Gmail, Outlook, Google…
yc-software/qm
Connect an administrator-enabled SaaS app for a user with a one-time OAuth consent link.
yonatangross/orchestkit
Generate emulate seed configs for stateful API emulation. An agent skill from yonatangross/orchestkit.
ComposioHQ/composio
Route and complete Composio work across Composio For You and Composio Platform.
ComposioHQ/awesome-claude-skills
Connects an agent to 1000+ external apps through the Composio Tool Router plugin, so it can actually send emails, create issues and post messages instead of only drafting them.
quarqlabs/argus
Routes requests to external SaaS apps such as GitHub, Gmail, Google Calendar, Slack, Notion and Linear through cloud tools, with safeguards on irreversible actions.
rome-os/rome
Audit a design system's color palette against measurable color-science disciplines — WCAG/APCA contrast of declared token pairs, perceptual (OKLCH) ramp uniformity, color-blindness safety of…
rome-os/rome
Audit the subordinate copy in a UI — section descriptions, field helper text, hints, card subtitles, empty-state body copy, tooltip bodies — against the secondary-text ruleset, and emit a per-string…
rome-os/rome
Audit an existing UI/UX design (React/JSX/TSX components, HTML, or generated app code) against a tiered ruleset of verifiable UX principles, and produce structured, evidence-cited findings that a…
rome-os/rome
Help users operate the published Composio CLI to find the right tool, connect accounts, inspect schemas, execute tools, subscribe to trigger events with composio listen, script workflows with…
rome-os/rome
File one GitHub issue from a description the user gives — classify it as a bug report, feature request, or task spec, gather what the body needs from the tracker and the code, ask the user only for…
rome-os/rome
Turn a plain-language "do this automatically" request into a routine — either event-triggered ("text me when I get an email from my landlord") or scheduled ("remind me every Friday at 9am").
Categories
Add a new Rome-managed OAuth integration for a third-party service so a user can delegate access by clicking Connect, and Rome can act on the service with the delegated token (the GitHub/Slack model…. Add OAuth Integration is an agent skill from rome-os/rome. Add a new Rome-managed OAuth integration for a third-party service so a user can delegate access by clicking Connect, and Rome can act on the service with the delegated token (the GitHub/Slack model — brokered by Pantheon, NOT Composio).
Add OAuth Integration fits situations like: asked to add an integration / connector for <service; let users connect their <service; delegate <service access to Rome.
Run `npx skills add rome-os/rome --skill add-oauth-integration -a claude-code`. Or copy the skill folder (.claude/skills/add-oauth-integration in rome-os/rome) into .claude/skills/add-oauth-integration in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rome-os/rome --skill add-oauth-integration -a codex`. Or copy the skill folder (.claude/skills/add-oauth-integration in rome-os/rome) into .agents/skills/add-oauth-integration in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rome-os/rome --skill add-oauth-integration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-oauth-integration, .gemini/skills/add-oauth-integration, .github/skills/add-oauth-integration and .opencode/skills/add-oauth-integration in your project.
SKILL.md names no scripts, command-line tools or credentials: Add OAuth Integration is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Add OAuth Integration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Add OAuth Integration: Openloomi Connectors (melandlabs/openloomi, 1k stars), Connect Apps (yc-software/qm, 15k stars), Emulate Seed (yonatangross/orchestkit, 292 stars) and Composio (ComposioHQ/composio, 30k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rome-os (a GitHub organization) maintains it in rome-os/rome, which has 743 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 10, 2026.
Source: rome-os/rome on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.