PenguinHarness is a local-first platform in which multiple AI agents create, evaluate, optimize, and deploy agent applications. It is for people building AI software who want agents to generate applications and improve their own behavior through skills.
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 skills add Prism-Shadow/penguin-harness --skill browser-automationgit clone --depth 1 https://github.com/Prism-Shadow/penguin-harnessWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/prism-shadow/penguin-harness/browser-automation)<a href="https://agentmods.dev/skills/prism-shadow/penguin-harness/browser-automation"><img src="https://agentmods.dev/badge/skills/prism-shadow/penguin-harness/browser-automation/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/prism-shadow/penguin-harness/browser-automation"><img src="https://agentmods.dev/badge/skills/prism-shadow/penguin-harness/browser-automation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What 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.1 | $0.00000 | $0.02820 |
| Opus 5.5 | $0.00000 | $0.01128 |
| Sonnet 5.5 | $0.00000 | $0.00564 |
| Haiku 4.5 | $0.00000 | $0.00282 |
Grade A, and why
browser-automation 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 today.
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 — 118 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Browser automation
penguin browser drives the agent browser from your shell: the desktop app's built-in browser (the Browser tab of the dock), or the user's own Chrome through the PenguinHarness Browser extension — whichever the user chose. The commands are the same on both. Its tabs are shared by every conversation and keep the sign-ins made in them, so a page you open is one the user can watch and take over. Every command acts on the active tab unless --tab <id> names another.
You do not choose the browser, and must not try to (through /api/me/prefs or any other route): penguin browser status says which one is in use, backend: builtin or backend: chrome. In the user's Chrome you reach only the tabs in its Penguin tab group, which are the ones you open, and tabs the user hands over with the extension's icon; the user can take a tab back at any time.
Before you start
If the user's message only names this skill without a task, ask what they want done on the web. Then check the browser:
penguin browser status
status: available · backend: … is followed by the open tabs. status: unavailable (<reason>) (exit code 1) is followed by a note: saying what to tell the user. Tell them, and stop there — never answer from guessed page content:
not_desktop,shell_unsupported,no_window: the built-in browser needs the PenguinHarness desktop app, up to date and open.extension_not_paired: no Chrome is paired. Ask the user to install the PenguinHarness Browser extension and pair it: Browser panel → Connect your Chrome….extension_disconnected: their Chrome is paired but not connected. Ask them to open Chrome with the extension enabled, or to pair it again in the Browser panel.extension_disabled: an admin turned Chrome connections off on this server; the user's Chrome cannot be used here.
A warning: line under memory: means the browser is using too much memory or holds too many tabs. Close the tabs you opened and no longer need (penguin browser close <tab-id>) before opening more, and reuse a tab (open without --new-tab) where you can.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- today Changed b7d9dec79b7f
- 5d ago Changed · +1 lines f813088d38a4
- 12d ago Changed · +11 lines · -94 tokens per session 2f8a4c56115b
- 15d ago First seen · 106 lines · 94 tokens per session scan A 383391cc39a6
browser-automation is a skill published in the GitHub repository Prism-Shadow/penguin-harness (2,549 stars, last pushed today), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 2,820 tokens. 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-10-01.
Other skills, from other repositories
browser-workflow-skill-builder
Create robust browser automation skills for sites like LinkedIn, X/Twitter, YouTube, Stripe, or other logged-in web apps by saving page context, analyzing HTML/CSS, writing skill-local JS extract/verify scripts, and using CSS selector actions with screenshot verification.
co-browser
Drive one persistent, logged-in browser from the shell with co browser. Use when the user asks to open a page, log into a site, scrape/extract page content, fill forms, upload files, take screenshots, or automate any browser task — solo or with multiple agents sharing the browser.
co-tiktok
Prepare a local TikTok post plan and check, with saved browser evidence, whether a co browser tab is logged in to TikTok Studio. TikTok upload and publish are not implemented; YouTube lives in co-google.
agentlas-browser
Use when the user types /agentlas-browser , /agentlas browser, or /hep-browser for browser-required tasks, rendering pages, form flows, or visual evidence.
web-reader
Implement web page content extraction capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to scrape web pages, extract article content, retrieve page metadata, or build applications that process web content. Supports automatic content extraction with title, HTML, and publication time retrieval.
web-ui-test
Test the IronClaw web UI using the Claude for Chrome browser extension.