Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/kirodotdev/kirocrew/browser-authnpx skills add kirodotdev/KiroCrew --skill browser-authgit clone --depth 1 https://github.com/kirodotdev/KiroCrewWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00047 | $0.01659 |
| Opus 5 | $0.00023 | $0.00830 |
| Sonnet 5 | $0.00009 | $0.00332 |
| Haiku 4.5 | $0.00005 | $0.00166 |
Grade A, and why
browser-auth scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 150 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Browser Auth: browsing what needs a login
Public pages need no auth: playwright-cli open <url> and you are done. This skill
is for the pages that answer with a sign-in screen.
There is no bundled SSO. Every path below reduces to the same idea: a browser context that already holds the user's session, either theirs directly or a copy of it saved to a file.
Pick a path
| Path | When | Setup cost |
|---|---|---|
Attach (attach --extension) |
The user is at their machine with the site already logged in, in a Chromium-family browser | None. Their live sessions are the session |
Saved state (state-save / state-load) |
You will come back to this site across sessions or restarts, or the host has no interactive browser to attach | One human login, once |
Individual cookies (cookie-*) |
You hold a specific cookie value, or you are repairing one entry rather than a whole context | Per-cookie |
Attach is the strongest of the three, and worth naming as such: it drives the user's own running browser with every session they are logged into, not a scoped copy. Prefer saved state when the task only needs one site.
Attach
Attach mode has one prerequisite the install flow cannot satisfy: the Playwright extension must be installed in the browser being attached to. A browser extension is granted inside the browser by the person using it, so nobody but the user can add it:
https://chromewebstore.google.com/detail/playwright-extension/mmlmfjhmonkocbjadbfplnigmagldckm
The extension holds the debugger permission, which is what lets a command drive a
tab the user is already logged into. Headless browsing needs none of this, so a
missing extension costs attach mode only.
A failure to reach the relay endpoint means the extension is absent or disabled, not that the command was wrong. Say so and point the user at the link rather than retrying the attach, which will fail identically every time.
If the user would rather not install an extension, Playwright documents a second
attach path that needs none: attach --cdp=chrome connects by channel name, but
the user must first enable "Allow remote debugging for this browser instance"
at chrome://inspect/#remote-debugging in that browser. Offer it as the fallback,
not the default — the extension path needs no per-browser toggle.
Supported channels: chrome, chrome-beta, chrome-dev, chrome-canary,
msedge, msedge-beta, msedge-dev, msedge-canary.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 150 lines · 47 tokens per session scan A b3c30025d064
browser-auth is a skill published in the GitHub repository kirodotdev/KiroCrew (3,532 stars, last pushed today), licensed Apache-2.0. It adds 47 tokens to every session and 1,659 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
xterm-js
Expert guidance for building, configuring, and integrating xterm.js terminal emulators in web and Electron applications. Use this skill whenever the user mentions xterm, xterm.js, @xterm/xterm, terminal emulator in the browser, web terminal, WebSSH, in-browser shell, or asks about addons like FitAddon, WebglAddon…
html-effectiveness
Generate self-contained, interactive HTML documents instead of markdown walls of text. When output is complex (comparisons, timelines, multi-option decisions, data tables, code reviews, diagrams), produce a single .html file that renders spatially and interactively in the browser. Zero dependencies, zero build steps.…
reskin
Author a NEW skin for the reskinnable-demo app. A skin is a self-contained domain plugin under src/skins/ / that implements the frozen Skin contract (src/shell/skin-contract.ts) to swap the app's entire experience — brand, theme, layout, pages, tools, data, and agent — as a live sales demo. Use when the user says "add…
setup-slack-channel
Use for the PROVIDER half of getting a locally running CopilotKit Channels agent to answer in Slack, when no Slack app exists yet — setting up a Channels bot in Slack for the first time, creating the Slack app and its tokens, attaching it to a managed Intelligence Channel, or when a Channel reports setuprequired, sits…
copilotkit-channels
Use for the CODE half of a managed Intelligence Channel with Slack or Microsoft Teams: customising the Channel a CLI-scaffolded project already ships, or — for a project the CLI did not generate — writing the Channel declaration, the long-running host, and the awaited activation call. Teams provider setup is in scope…
runtime
@copilotkit/runtime — mount a fetch-native CopilotRuntime on any JS server, wire middleware, pick an AgentRunner, instantiate BuiltInAgent (Factory Mode with TanStack AI is the preferred default) or plug in any of 12 external agent frameworks (Mastra, LangGraph, CrewAI Crews/Flows, PydanticAI, ADK, LlamaIndex, Agno…