Connect Apps with Composio
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.
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").
$ npx skills add rome-os/rome --skill routine-from-chat -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rome-os/rome routine-from-chat --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/rome_apps/assistant/skills/routine-from-chat .claude/skills/routine-from-chat && 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 "routine-from-chat" agent skill from https://github.com/rome-os/rome/tree/main/rome_apps/assistant/skills/routine-from-chat into .claude/skills/routine-from-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "routine-from-chat", 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/rome_apps/assistant/skills/routine-from-chatType 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 routine-from-chat -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rome-os/rome routine-from-chat --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/rome_apps/assistant/skills/routine-from-chat .agents/skills/routine-from-chat && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "routine-from-chat" agent skill from https://github.com/rome-os/rome/tree/main/rome_apps/assistant/skills/routine-from-chat into .agents/skills/routine-from-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "routine-from-chat", 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 routine-from-chat -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rome-os/rome routine-from-chat --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/rome_apps/assistant/skills/routine-from-chat .cursor/skills/routine-from-chat && 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 "routine-from-chat" agent skill from https://github.com/rome-os/rome/tree/main/rome_apps/assistant/skills/routine-from-chat into .cursor/skills/routine-from-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "routine-from-chat", 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 rome_apps/assistant/skills/routine-from-chat--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 routine-from-chat -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rome-os/rome routine-from-chat --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/rome_apps/assistant/skills/routine-from-chat .gemini/skills/routine-from-chat && 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 "routine-from-chat" agent skill from https://github.com/rome-os/rome/tree/main/rome_apps/assistant/skills/routine-from-chat into .gemini/skills/routine-from-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "routine-from-chat", 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 routine-from-chatInstalls 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 routine-from-chat -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/rome_apps/assistant/skills/routine-from-chat .github/skills/routine-from-chat && 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 "routine-from-chat" agent skill from https://github.com/rome-os/rome/tree/main/rome_apps/assistant/skills/routine-from-chat into .github/skills/routine-from-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "routine-from-chat", 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 routine-from-chat -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 routine-from-chat --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/rome_apps/assistant/skills/routine-from-chat .opencode/skills/routine-from-chat && 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 "routine-from-chat" agent skill from https://github.com/rome-os/rome/tree/main/rome_apps/assistant/skills/routine-from-chat into .opencode/skills/routine-from-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "routine-from-chat", 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.
routine-from-chatTurn 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").
Routine From Chat is an agent skill from 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"). For third-party events (Gmail, GitHub, Slack…) it confirms with the guardian and then subscribes to the connector trigger so the event actually fires, even one that has never fired before. Ask for any missing detail, then confirm with a card. Reach for this first whenever the guardian wants something to happen automatically…
Its SKILL.md is about 3.8k 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 Writing & Content, covering Email management, Plain language and style rules and Real estate. It works with GitHub, Gmail 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 first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f187f45. 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.
Routine From Chat loads about 3.8k tokens when it runs. Until then it costs about 147 tokens; SKILL.md has 1,870 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 f187f45, republished under its MIT licence (© rome-os). 1,870 words, ~3,834 tokens.
.claude/skills/routine-from-chat/SKILL.md (or your agent's skills folder).When the guardian describes something they want to happen automatically, turn that intent into a routine — without making them learn event names, RRULEs, timezones, filters, or JSON. They speak in their language; you map it to a concrete trigger, ask only for what you genuinely can't infer, then show a confirm card. You do not create the routine yourself — the card creates it when they turn it on.
A routine fires one of three ways. Decide which the request is:
If it's ambiguous ("remind me about the standup"), ask one short question to disambiguate before going further. In particular, if it's unclear whether they want it on a schedule or to run it by hand, ask.
kind: "manual". No eventName, tzid, rrule, or date.connector_event_search → connector_event_schema →
confirm with the guardian → connector_event_subscribe. It finds the
trigger, gets a yes before arming it upstream, and hands you the exact
eventName to bind. See "Event routines from a connector".search_event_catalog with keywords from the
request, then use the matching eventType as eventName. Never invent an
event name.ask_question. Underspecified requests are the
norm ("important", "my landlord", "in the morning"). Ask one short,
recognition-style question per gap: a single-type question with concrete
options when you can name them (candidate senders; "8am / 9am / noon"), or a
text question when the answer is open-ended. Never demand a raw value the user
would have to look up, and never ask them for an RRULE or an IANA timezone —
ask "what time?" and "roughly where are you?" and convert it yourself.propose_routine. Pass kind: "event", kind: "schedule",
or kind: "manual" plus the human summary and the machine spec. A confirm
card renders; the guardian turns it on. For manual, set watchLabel to
something like "Run on demand" and omit all trigger fields.propose_routine, reply with one short line confirming what
you drafted, then stop. Do not call any create action — the card does that.Third-party events reach Rome through the Connector app (Composio). A
connector event only appears in search_event_catalog after it has fired at
least once — so for anything new you don't search the catalog, you subscribe.
Subscribing both tells you the canonical event name and arms the upstream trigger
so it starts firing. Three steps — and the third is an action you get the
guardian's explicit go-ahead for first, because it reaches out and starts
watching their third-party account:
connector_event_search({ toolkit, regex? }) lists the
triggers a toolkit can emit as { slug, name, description }. Use the toolkit
the request implies (gmail, github, slack, stripe, …) and an optional
case-insensitive regex to narrow ("new.*message"); omit it to see them all.
Pick the slug whose meaning matches the intent — e.g. GMAIL_NEW_GMAIL_MESSAGE.
Never invent a slug.connector_event_schema({ toolkit, slug }) returns
config (the settings the subscribe needs), payload (the shape of the event
it delivers — use it to pick filter field paths exactly, no guessing),
eventName (the string the routine binds to), and requiresWebhookEndpointSetup.
When requiresWebhookEndpointSetup is true (e.g. Slack, Notion), tell the
guardian the trigger needs extra provider-side webhook setup and won't fire
until that's done.zhangfand/vps so Rome starts
watching it") and ask with ask_question (a single yes/no). Only on a yes
call connector_event_subscribe({ toolkit, slug, config }), which arms the
trigger and returns the eventName to bind. Pass config matching the schema
from step 2 — {} when it needs none; for any required field you can't infer,
ask the guardian recognition-style. It's idempotent, so re-subscribing the same
trigger is safe. If the guardian declines, don't subscribe — offer a schedule
routine if one fits, otherwise stop.Then propose_routine with eventName set to exactly what subscribe returned.
(The confirmation above arms the event source; this card is a separate, lighter
step that turns the routine on — keep them distinct, don't collapse them.)
Prerequisites — sign-in, then connection. Subscribe needs Composio sign-in and the toolkit connected. These are two separate gates, handled in order — a connector action's error tells you which one you're on:
connector_login): call connector_login,
which renders the account-wide sign-in card. Do not call connector_connect
here — it refuses to render until sign-in succeeds, so you'd just bounce between
errors.connector_connect):
call connector_connect({ toolkit }) to render the connect card.After the guardian completes a card, resume the chain. Only when a toolkit genuinely can't be connected do you stop and say the event isn't available (a scheduled routine may still fit — offer it if so).
Filters come from the payload. connector_event_schema.payload describes the
event body, so set filter { field, equals } paths from it directly rather than
guessing (field is a dot-path into that payload). When the guardian names a
person ("my landlord", "Dana") instead of a value, ask which contact they mean with
ask_question — a single over the values you know, or a text question when
unsure — and put the chosen value in the filter. If you can't find a fitting field
in the payload, prefer a broader routine (no filter) over one that silently never
matches.
For a Rome app's own event, or a connector event you've already subscribed to,
search_event_catalog({ query, limit? }) returns the best-matching watchable
types as { eventType, appId } plus a total count. Search with words from the
request; if total exceeds what came back, search again with sharper keywords.
Use the exact eventType as eventName. (For a brand-new third-party event
this returns nothing — that's expected; go through the connector chain above.)
Map what they said to tzid (IANA), localTime (24-hour HH:mm), and either
rrule (recurring) or date (one-off YYYY-MM-DD). Keep all of that internal —
the card shows plain language like "Every Friday at 9:00 AM".
localTime: "09:00", rrule: "FREQ=DAILY""17:00", rrule: "FREQ=WEEKLY;BYDAY=FR""08:00", rrule: "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR""09:00", rrule: "FREQ=MONTHLY;BYMONTHDAY=1"
(MONTHLY always needs BYMONTHDAY)localTime: "12:00", date: "<that date>", no rruleFor the timezone: use the guardian's known timezone if you have it; otherwise
ask once in plain terms ("roughly where are you / what timezone?") and convert
(e.g. "Pacific" → America/Los_Angeles). Don't ask them to type an IANA name.
The trigger decides when; the actionName decides what runs. A routine can
only bind to an action that already exists — binding to one that isn't
registered is rejected at create time (the card won't turn on). So pick the Then
deliberately. Three choices, same for event and schedule routines:
actionName: "system:send_message", args { "channel": "<telegram|webchat|...>", "threadId": "<id>", "text": "<message>" }. Only when you actually know the channel + thread.actionName: "system:summon", args { "agentName": "core:main", "prompt": "<what to do when this fires>" }. Good for "summarize the email that just arrived",
"remind me to …", "decide and reply".<appId>:run.Default to system:summon when the Then is one act of judgement or writing over
what's already in front of the agent. Reach for a workflow when the Then has
a fixed multi-step shape you'd want to run identically each time:
for/if or several tool calls inside the
summon prompt.A summon re-improvises those steps on every fire (non-deterministic, no parallel/branch/map, pricier and flakier); a workflow crystallizes them as a deterministic DAG. So "every morning, review my emails and select the critical ones" is a workflow, not a summon.
When the Then is a workflow and no <appId>:run action exists yet, build it
first with the coding:workflow_creation skill (it scaffolds the app and
registers <appId>:run), then come back and propose_routine bound to that
action. Don't propose the routine first — the create is rejected until the
action exists. If a fitting run action already exists, just bind to it.
Guardian: "Text me when I get an important email from my landlord."
connector_login, then connector_connect({ toolkit: "gmail" })) and wait for
the guardian to finish.connector_event_search({ toolkit: "gmail", regex: "new.*message" }) → pick GMAIL_NEW_GMAIL_MESSAGE.connector_event_schema({ toolkit: "gmail", slug: "GMAIL_NEW_GMAIL_MESSAGE" }) → note the payload's sender field and the eventName.ask_question (single yes/no): "I'll subscribe to Gmail's new email event so Rome can watch your inbox — set that up?"connector_event_subscribe({ toolkit: "gmail", slug: "GMAIL_NEW_GMAIL_MESSAGE", config: {} }) → returns eventName: "provider:event:gmail.gmail_new_gmail_message".ask_question — "Who's your landlord?" (a single over the addresses you know, or a text question if unsure);
"What counts as important?" ("Anything from them" / "Only if it mentions rent").dana@example.com and "anything from them" (filter field taken from the payload schema):propose_routine({
kind: "event",
sentence: "When you get an email from Dana (your landlord), Rome will summarize it and text you.",
name: "Landlord emails",
watchLabel: "Gmail · new email",
filterSummary: "sender is dana@example.com",
thenSummary: "summarize it and text you",
eventName: "provider:event:gmail.gmail_new_gmail_message",
filter: [{ field: "from.email", equals: "dana@example.com" }],
actionName: "system:summon",
args: { agentName: "core:main", prompt: "A new email arrived from the guardian's landlord (dana@example.com). Read it and send the guardian a short summary." }
})Guardian: "Remind me every Friday at 9am to send my weekly update."
propose_routine({
kind: "schedule",
sentence: "Every Friday at 9:00 AM, Rome will remind you to send your weekly update.",
name: "Weekly update reminder",
watchLabel: "Every Friday at 9:00 AM",
thenSummary: "remind you to send your weekly update",
tzid: "America/Los_Angeles",
localTime: "09:00",
rrule: "FREQ=WEEKLY;BYDAY=FR",
actionName: "system:summon",
args: { agentName: "core:main", prompt: "Remind the guardian to send their weekly update, in a short friendly message." }
})Guardian: "Put together my morning briefing, but don't schedule it — I want to run it myself when I'm up."
propose_routine({
kind: "manual",
sentence: "A morning briefing you can run by hand whenever you want it.",
name: "Morning briefing",
watchLabel: "Run on demand",
thenSummary: "pull your day and send you a briefing",
actionName: "system:summon",
args: { agentName: "core:main", prompt: "Build the guardian's morning briefing — their day's calendar, anything urgent — and send it to them." }
})Then reply with one short line confirming what you drafted, and stop.
© 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 rome_apps/assistant/skills/routine-from-chat of rome-os/rome.
Open the folder on GitHubat commit f187f45
Routine From Chat 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 |
|---|---|---|---|---|---|---|
| Routine From Chat this skillrome-os/rome | 737 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Connect Apps with ComposioComposioHQ/awesome-claude-skills | 77k | 3 repos | ~557 | Automated safety check: Pass | None | |
| Openloomi Connectorsmelandlabs/openloomi | 1k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Write Like Me Bootstrapjxnl/personal-monorepo-template | 563 | — | ~1.1k | Automated safety check: Pass | None | |
| Composio Cloud Toolsquarqlabs/argus | 279 | — | ~543 | Automated safety check: Pass | Apache-2.0 | |
| ConnectComposioHQ/awesome-claude-skills | 77k | 3 repos | ~987 | Automated safety check: Pass | None |
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.
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…
jxnl/personal-monorepo-template
Bootstrap a durable "write like me" skill from the user's own Slack and email writing.
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.
ComposioHQ/awesome-claude-skills
Connect Claude to any app. An agent skill from ComposioHQ/awesome-claude-skills.
asheshgoplani/agent-deck
Guide for creating agent-deck watchers conversationally. An agent skill from asheshgoplani/agent-deck.
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
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…
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…
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"). Routine From Chat is an agent skill from 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").
Routine From Chat fits situations like: so the event actually fires; even one that has never fired before.
Run `npx skills add rome-os/rome --skill routine-from-chat -a claude-code`. Or copy the skill folder (rome_apps/assistant/skills/routine-from-chat in rome-os/rome) into .claude/skills/routine-from-chat in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rome-os/rome --skill routine-from-chat -a codex`. Or copy the skill folder (rome_apps/assistant/skills/routine-from-chat in rome-os/rome) into .agents/skills/routine-from-chat 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 routine-from-chat -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/routine-from-chat, .gemini/skills/routine-from-chat, .github/skills/routine-from-chat and .opencode/skills/routine-from-chat in your project.
SKILL.md names no scripts, command-line tools or credentials: Routine From Chat 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.
Routine From Chat 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.8k tokens (SKILL.md is roughly 15k 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 Routine From Chat: Connect Apps with Composio (ComposioHQ/awesome-claude-skills, 77k stars), Openloomi Connectors (melandlabs/openloomi, 1k stars), Write Like Me Bootstrap (jxnl/personal-monorepo-template, 563 stars) and Composio Cloud Tools (quarqlabs/argus, 279 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 737 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 9, 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.