Cold Start
inbrainfun/inbrain
Day-one data bootstrapping for a new brain. An agent skill from inbrainfun/inbrain.
X (Twitter) DM automated chat end-to-end Skill: scan DM inbox to identify pending-reply conversations, read message history, generate persona-based replies and send; also supports searching users…
$ npx skills add browser-act/skills --skill x-dm-auto-chat -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install browser-act/skills x-dm-auto-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/browser-act/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/solutions/social-listening/x-dm-auto-chat .claude/skills/x-dm-auto-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 "x-dm-auto-chat" agent skill from https://github.com/browser-act/skills/tree/main/solutions/social-listening/x-dm-auto-chat into .claude/skills/x-dm-auto-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-dm-auto-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/browser-act/skills/tree/main/solutions/social-listening/x-dm-auto-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 browser-act/skills --skill x-dm-auto-chat -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install browser-act/skills x-dm-auto-chat --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/browser-act/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/solutions/social-listening/x-dm-auto-chat .agents/skills/x-dm-auto-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 "x-dm-auto-chat" agent skill from https://github.com/browser-act/skills/tree/main/solutions/social-listening/x-dm-auto-chat into .agents/skills/x-dm-auto-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-dm-auto-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 browser-act/skills --skill x-dm-auto-chat -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install browser-act/skills x-dm-auto-chat --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/browser-act/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/solutions/social-listening/x-dm-auto-chat .cursor/skills/x-dm-auto-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 "x-dm-auto-chat" agent skill from https://github.com/browser-act/skills/tree/main/solutions/social-listening/x-dm-auto-chat into .cursor/skills/x-dm-auto-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-dm-auto-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/browser-act/skills.git --path solutions/social-listening/x-dm-auto-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 browser-act/skills --skill x-dm-auto-chat -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install browser-act/skills x-dm-auto-chat --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/browser-act/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/solutions/social-listening/x-dm-auto-chat .gemini/skills/x-dm-auto-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 "x-dm-auto-chat" agent skill from https://github.com/browser-act/skills/tree/main/solutions/social-listening/x-dm-auto-chat into .gemini/skills/x-dm-auto-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-dm-auto-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 browser-act/skills x-dm-auto-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 browser-act/skills --skill x-dm-auto-chat -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/browser-act/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/solutions/social-listening/x-dm-auto-chat .github/skills/x-dm-auto-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 "x-dm-auto-chat" agent skill from https://github.com/browser-act/skills/tree/main/solutions/social-listening/x-dm-auto-chat into .github/skills/x-dm-auto-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-dm-auto-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 browser-act/skills --skill x-dm-auto-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 browser-act/skills x-dm-auto-chat --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/browser-act/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/solutions/social-listening/x-dm-auto-chat .opencode/skills/x-dm-auto-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 "x-dm-auto-chat" agent skill from https://github.com/browser-act/skills/tree/main/solutions/social-listening/x-dm-auto-chat into .opencode/skills/x-dm-auto-chat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-dm-auto-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.
x-dm-auto-chatX (Twitter) DM automated chat end-to-end Skill: scan DM inbox to identify pending-reply conversations, read message history, generate persona-based replies and send; also supports searching users…
X Dm Auto Chat is an agent skill from browser-act/skills. X (Twitter) DM automated chat end-to-end Skill: scan DM inbox to identify pending-reply conversations, read message history, generate persona-based replies and send; also supports searching users and starting new conversations. Built-in E2E passcode unlock, DM permission filtering, and rate control. Use when user mentions X auto-reply DMs, Twitter DM automated chat, auto-handle unread DMs, reply to X private messages with persona, X DM outreach campaign, batch send DMs to Twitter users, auto-process pending DM…
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts (for example `scripts/check-composer.py`, `scripts/check-page-state.py` and `scripts/fetch-inbox-api.py`).
It sits in Productivity & Automation, covering Messaging and chat bots, End-to-end testing and Email management. It works with X (Twitter). The repository describes itself as: Browser automation CLI built for AI agents. Break through anti-bot walls, hand off to humans across platforms when stuck. Parallel multi-task execution, independent multi-session… The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 11c057b. 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.
Ships 9 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
x.comFrom 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.
X Dm Auto Chat loads about 3.9k tokens when it runs. Until then it costs about 153 tokens; SKILL.md has 1,701 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); the scripts in this folder are not scanned.
The full file from browser-act/skills at commit 11c057b, republished under its MIT licence (© browser-act). 1,701 words, ~3,898 tokens.
.claude/skills/x-dm-auto-chat/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.Full X DM automation Skill: inbox scan → conversation read → persona-based reply → send; also supports search-and-outreach. The calling Agent generates reply text based on persona; this Skill handles all mechanical operations.
All process output to user (progress updates, process notifications) follows the user's language.
Encapsulate "refresh DM list → identify pending replies → read context → reply with persona → send" and "search user → enter chat → send first message" into callable end-to-end capabilities.
[aria-label="Account menu"] present)"You are BrowserAct outreach team. Tone: friendly, concise, professional. Goal: invite creators to collaborate."If browser-act has been confirmed available in the current session → skip.
Invoke browser-act via Skill tool to load usage. If installation or configuration issues arise, follow its guidance to resolve then retry.
browser-act --session <name> navigate https://x.com/i/chat
browser-act --session <name> wait stable --timeout 15000
browser-act --session <name> eval "$(python scripts/check-page-state.py)"Return format:
{
"url": "https://x.com/i/chat/pin/recovery?from=%2Fi%2Fchat",
"logged_in": true,
"need_passcode": true,
"on_inbox": false,
"on_conversation": false,
"has_panel": false,
"has_composer": false,
"inbox_count": 0
}Decision matrix:
logged_in: false → inform user to log in first; wait; retry this stepneed_passcode: true → proceed to step 3 belowon_inbox: true and inbox_count > 0 → ready, enter business flowon_inbox: true but inbox_count === 0 → account has no DM conversations; outreach scenario can still proceed, pending-reply scenario has nothing to dobrowser-act --session <name> state — find indexes of 4 <input maxlength=1 pattern=[0-9]*> elements (usually 4 consecutive)browser-act --session <name> input <idx1> "<d1>", <idx2> "<d2>", <idx3> "<d3>", <idx4> "<d4>"browser-act input (CDP real keyboard events), cannot use eval to set value — X ignores non-real keyboard inputbrowser-act --session <name> wait stable --timeout 10000check-page-state.py, confirm need_passcode: false and on_inbox: trueneed_passcode: true → inform user passcode may be wrong; terminateChoose Scenario A, Scenario B, or both. Each scenario is an ordered AI Workflow (not a single JS).
Flow: Scan inbox → Filter unread & latest peer messages → Per-conversation: read context → Generate reply with persona → Send → Next
Steps:
Scan inbox:
browser-act --session <name> eval "$(python scripts/scan-inbox-merged.py)"Returns items[], each containing conversation_id / conversation_url / peer_screen_name / peer_display_name / peer_can_dm / latest_message_preview / latest_message_from_self / unread, etc.
Filter pending-reply conversations: from items, select conversations meeting all conditions:
unread === true (has unread) or latest_message_from_self === false (peer's latest message not yet replied)peer_can_dm === true (recipient allows DM)is_muted !== true and is_deleted_by_viewer !== trueFor each pending-reply conversation (strictly serial, random sleep 8-15 seconds between each):
a. Open conversation:
browser-act --session <name> navigate https://x.com<conversation_url>
browser-act --session <name> wait stable --timeout 15000b. If passcode re-triggered → re-unlock (usually won't re-trigger within same session)
c. Read context:
browser-act --session <name> eval "$(python scripts/read-conversation.py)" Returns messages[], each with direction (self/peer), text, timestamp_text, links, images.
d. (Optional) Load full history: If caller needs longer context, loop:
browser-act --session <name> eval "$(python scripts/scroll-load-history.py)" Until reached_top: true, then re-read with read-conversation.py.
e. Generate reply: Calling Agent combines persona, message history to generate reply text. Reply content is entirely the caller's decision; this Skill does not participate in generation. Suggested inputs:
messages.slice(-6))peer_display_name / peer_screen_name) for addressreply_text, length < 10,000 charactersf. Send reply:
browser-act --session <name> eval "$(python scripts/check-composer.py)" → record last_message_idbrowser-act --session <name> state — find <textarea placeholder=Message> index TA_IDXbrowser-act --session <name> input <TA_IDX> "<reply_text>" (must use CDP real keyboard, cannot use eval)browser-act --session <name> wait --selector '[data-testid="dm-composer-send-button"]' --state attached --timeout 5000browser-act --session <name> eval "document.querySelector('[data-testid=\"dm-composer-send-button\"]').click(); 'clicked'"browser-act --session <name> wait stable --timeout 15000browser-act --session <name> eval "$(python scripts/verify-sent.py '<reply_text>' --prev-last-id <last_message_id from step f1>)"sent: true and composer_cleared: true → success, record resultsent: false → record failure, do not retry (prevents duplicate sends); proceed to next conversationg. Random delay: sleep 8-15 seconds (avoid anti-abuse limits)
Batch completion: Summarize results (success count / failure count / conversation_id per item); return or write to external log file.
Flow: Search candidates → Filter sendable → Enter conversation → Generate first message → Send
Steps:
Search target users (one search per target, 1-2 second interval between searches):
browser-act --session <name> eval "$(python scripts/search-users.py '<search_query>')"Returns users[], each with user_id / name / screen_name / can_dm / can_dm_reason / verification fields.
Filter users who can receive DMs:
can_dm === true and !suspended and !protectedcan_dm_reason === "Allowed"screen_name is already in send history → skip (deduplication)For each target user (strictly serial, sleep 10-20 seconds between each):
a. Calculate conversation URL:
browser-act --session <name> eval "$(python scripts/open-conversation-by-user.py '<user_id>')" Returns conversation_url (e.g., /i/chat/{smaller_id}-{larger_id}).
b. Navigate to conversation:
browser-act --session <name> navigate https://x.com<conversation_url>
browser-act --session <name> wait stable --timeout 15000c. Handle passcode (may appear on first DM entry) → unlock
d. Verify composer ready:
browser-act --session <name> eval "$(python scripts/check-composer.py)" composer_ready: true → record last_message_id; false → skip this user
e. Generate first message: Calling Agent generates first outreach text first_text based on persona + target user info (screen_name / name / verification type). Suggested content:
f. Send: Follow the 7 sub-steps in "Scenario A step 3f", substituting first_text for reply_text.
g. Random delay: sleep 10-20 seconds
Batch completion: Summarize results.
In addition to the Scenario A / B end-to-end flows, the following components can also be called directly:
browser-act --session <name> eval "$(python scripts/scan-inbox-merged.py)"
Returns merged conversation list with peer screen_name + message preview + unread flag.
browser-act --session <name> eval "$(python scripts/fetch-inbox-api.py --cursor-id {cursor_id} --graph-snapshot-id {snap} --limit {N})"
browser-act --session <name> eval "$(python scripts/read-conversation.py)"
browser-act --session <name> eval "$(python scripts/scroll-load-history.py)"
browser-act --session <name> eval "$(python scripts/check-composer.py)"
browser-act --session <name> eval "$(python scripts/verify-sent.py '<expected_text>' --prev-last-id <last_id>)"
browser-act --session <name> eval "$(python scripts/search-users.py '<query>')"
browser-act --session <name> eval "$(python scripts/open-conversation-by-user.py '<user_id>')"
browser-act --session <name> eval "$(python scripts/check-page-state.py)"
End-to-end Scenario A:
sent: true rate >= 90% for each pending-reply conversationEnd-to-end Scenario B:
composer_ready: true)sent: true rate >= 90%Atomic components: see success criteria in each atomic Skill (scripts in this directory fully reuse the atomic implementations).
browser-act input (CDP real keyboard); eval setting value does not workcan_dm_reason enum, observed values): Allowed — can send; InboxClosed — recipient closed DM; other values (possibly Blocked, NotFollowing, etc.) treat as cannot send"30m" / "6:25 PM" / "May 8"); no ISO datetimepeer_* fields take only the first non-self member; fine-grained replies in group conversations are not supported{target, status, timestamp, error?} per item; resume from breakpoint on interruption--session x-dm) for the whole batch; passcode unlock and login state persist within the session, no need to re-unlock for each itemPath: {working-directory}/browser-act-skill-forge-memories/x-dm-automation-x-dm-auto-chat.memory.md (working directory is determined by the Agent running the Skill)
Before execution: If the file exists, read it first — it records unexpected situations encountered during past executions (e.g., a strategy has become ineffective, a selector changed, a rate threshold discovered); adjust strategy order accordingly.
After execution: If an unexpected situation is encountered (strategy became ineffective, page redesigned, anti-scraping upgraded, better path discovered, new can_dm_reason enum values), append a line:
{YYYY-MM-DD}: {what happened} → {conclusion}
Normal execution does not write to the file. Do not record what keywords were used, which conversations were replied to, or how many messages were sent — those are task outputs, not experience.
© browser-act, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files (scripts) in solutions/social-listening/x-dm-auto-chat of browser-act/skills.
Open the folder on GitHubat commit 11c057b
X Dm Auto 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 |
|---|---|---|---|---|---|---|
| X Dm Auto Chat this skillbrowser-act/skills | 6.1k | — | ~3.9k | Automated safety check: Pass | MIT | |
| Cold Startinbrainfun/inbrain | 142 | 1 repos | ~4.7k | Automated safety check: Pass | Custom licence | |
| Li InboxJakeschincariol/linkedin-agent-skill | 1.6k | — | ~723 | Automated safety check: Pass | MIT | |
| Ak Dev New Messaging Integrationyaalalabs/agent-kernel | 192 | — | ~4.6k | Automated safety check: Pass | Apache-2.0 | |
| Media WritershareAI-lab/lab-skills | 314 | — | ~870 | Automated safety check: Pass | Apache-2.0 | |
| Engagement Inbox Manageraaron-he-zhu/aaron-marketing-skills | 2.9k | — | ~3.5k | Automated safety check: Pass | Apache-2.0 |
inbrainfun/inbrain
Day-one data bootstrapping for a new brain. An agent skill from inbrainfun/inbrain.
Jakeschincariol/linkedin-agent-skill
Triage the LinkedIn inbox - sort connection requests and DMs into leads, recruiters, peers and spam, and draft the replies worth sending.
yaalalabs/agent-kernel
Step-by-step guide for adding a new messaging platform integration to Agent Kernel.
shareAI-lab/lab-skills
Create platform-native content that resonates with each community's culture.
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "triage our comments, DMs, and mentions", "draft replies to this thread", "can we repost this fan post", or "set up inbox SLAs and an escalation path"…
yaalalabs/agent-kernel
Add a messaging platform integration to an existing Agent Kernel project.
browser-act/skills
Fetches structured Amazon product details such as title, price, ratings and availability for a given ASIN through BrowserAct's lookup API template.
browser-act/skills
Extracts structured Amazon product data for a keyword and marketplace through the BrowserAct API, including titles, prices, ratings, reviews, sales volume and promotions.
browser-act/skills
Pulls Amazon product details, competing seller prices and seller ratings for a given ASIN through the BrowserAct API, without browser automation.
browser-act/skills
Analyzes a competitor's Amazon listing by ASIN with BrowserAct data extraction, then reports what it does well, where the market has gaps and opportunity points for your own listing.
browser-act/skills
Pulls structured Amazon search results (titles, ASINs, prices, ratings, specifications) for a keyword and brand through BrowserAct's Amazon Product API template.
browser-act/skills
Collects structured product data from Amazon search results for a keyword and optional brand, using a BrowserAct script, for market and competitor research.
Works with
Categories
X (Twitter) DM automated chat end-to-end Skill: scan DM inbox to identify pending-reply conversations, read message history, generate persona-based replies and send; also supports searching users…. X Dm Auto Chat is an agent skill from browser-act/skills. X (Twitter) DM automated chat end-to-end Skill: scan DM inbox to identify pending-reply conversations, read message history, generate persona-based replies and send; also supports searching users and starting new conversations.
X Dm Auto Chat fits situations like: user mentions X auto-reply DMs; twitter DM automated chat; auto-handle unread DMs; reply to X private messages with persona.
Run `npx skills add browser-act/skills --skill x-dm-auto-chat -a claude-code`. Or copy the skill folder (solutions/social-listening/x-dm-auto-chat in browser-act/skills) into .claude/skills/x-dm-auto-chat in your project. Claude Code loads it when a task matches its description.
Run `npx skills add browser-act/skills --skill x-dm-auto-chat -a codex`. Or copy the skill folder (solutions/social-listening/x-dm-auto-chat in browser-act/skills) into .agents/skills/x-dm-auto-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 browser-act/skills --skill x-dm-auto-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/x-dm-auto-chat, .gemini/skills/x-dm-auto-chat, .github/skills/x-dm-auto-chat and .opencode/skills/x-dm-auto-chat in your project.
Going by SKILL.md and its folder, X Dm Auto Chat needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: x.com; the agent is likely to contact it when it follows the instructions. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
X Dm Auto 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.9k tokens (SKILL.md is roughly 16k 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 X Dm Auto Chat: Cold Start (inbrainfun/inbrain, 142 stars), Li Inbox (Jakeschincariol/linkedin-agent-skill, 1.6k stars), Ak Dev New Messaging Integration (yaalalabs/agent-kernel, 192 stars) and Media Writer (shareAI-lab/lab-skills, 314 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
browser-act (a GitHub organization) maintains it in browser-act/skills, which has 6,122 GitHub stars. The repository holds 87 skills in this directory. The repository was last updated on August 24, 2026.
Source: browser-act/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.