company-ceo
Run a PenguinHarness organization as its CEO — turn the mission into a ticket tree, hire HR…
Drive the PenguinHarness desktop app's built-in browser from the shell with `penguin browser` — open pages, read them as simplified HTML or text, act with JavaScript and trusted clicks and typing, and pull structured data out of them (orders, search results, tables), signed in
$ npx -y skills add Prism-Shadow/penguin-harness --skill browser-automation --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/browser-automationContext preview
The summary Claude sees to decide when to auto-load this skill.
Drive the PenguinHarness desktop app's built-in browser from the shell with `penguin browser` — open pages, read them as simplified HTML or text, act with JavaScript and trusted clicks and typing, and pull structured data out of them (orders, search results, tables), signed in
name: browser-automation description: Drive the PenguinHarness desktop app's built-in browser from the shell with `penguin browser` — open pages, read them as simplified HTML or text, act with JavaScript and trusted clicks and typing, and pull structured data out of them (orders, search results, tables), signed in with the user's own accounts. Use it for any task on a website that needs a real browser or the user's sign-in, such as finding an Amazon order.
The desktop app has a built-in browser in its side panel: the **Browser** tab of the dock. `penguin browser` drives it from your shell. 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.
The browser exists only inside the desktop app. A server started any other way (`penguin web`, Docker, a remote machine) has none.
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` is followed by the open tabs. `status: unavailable (…)` (exit code 1) means the desktop app is not what runs this conversation, or it has no window open: tell the user that the built-in browser needs the PenguinHarness desktop app, open, and stop there — never answer from guessed page content.
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.
1. **Go**: `penguin browser open <url>` navigates the active tab (and opens one when there is none); `--new-tab` opens another. It waits for the load and prints `tab <id> · <title> · <url>`. 2. **Look**: `penguin browser scan --text` first — plain text, cheap. `penguin browser scan` returns simplified HTML when you need selectors. Both print the tab header, the tab list (`tabs: *12 Your Orders | 15 Google`, the active tab starred), a `---` rule, then the page. 3. **Act**: `penguin browser exec` runs JavaScript in the page. Put the script in a quoted heredoc and `return` exactly what you need, as compact JSON for anything structured. 4. **Check**: exec prints labelled lines — `status:` and `tab:`, `return:`, `diff:` (how many elements changed, the largest change indented beneath), `transients:` (messages that appeared and may be gone again, such as "Added to cart"), `new tabs:`, and a `note:`. When they do not settle whether it worked, scan again.
Prefer one precise exec over repeated scans: a scan costs thousands of tokens, a targeted exec a few dozen.
penguin browser exec <<'EOF'
const cards = [...document.querySelectorAll('.result')].slice(0, 10);
return JSON.stringify(cards.map((c) => ({
title: c.querySelector('h2')?.innerText.trim(),
href: c.querySelector('a')?.href,
})));
EOFRepo: Prism-Shadow/penguin-harness
Run a PenguinHarness organization as its CEO — turn the mission into a ticket tree, hire HR…
The protocol every employee of a PenguinHarness organization follows — read the handbook…
Run finance for a PenguinHarness organization — set and adjust monthly budgets along the…
Run HR for a PenguinHarness organization — guarantee every employee has an enabled calendar…
Run a PenguinHarness organization that mirrors a real company — one digital twin per real…
Run experiments and papers in a PenguinHarness research organization — fix the harness and…