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 penguin-plugingit 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/penguin-plugin)<a href="https://agentmods.dev/skills/prism-shadow/penguin-harness/penguin-plugin"><img src="https://agentmods.dev/badge/skills/prism-shadow/penguin-harness/penguin-plugin/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/penguin-plugin"><img src="https://agentmods.dev/badge/skills/prism-shadow/penguin-harness/penguin-plugin.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.00078 | $0.05132 |
| Opus 5.5 | $0.00031 | $0.02053 |
| Sonnet 5.5 | $0.00016 | $0.01026 |
| Haiku 4.5 | $0.00008 | $0.00513 |
Grade A, and why
penguin-plugin scanned grade A with 1 finding 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
5. Exercise a real request through your handler, wait for a terminal result, and inspect the returned answer or downloaded report. For HTTP tests use the injected URL with `curl --noproxy '*'`, bearer token only in the h How it starts
The opening of the file, as written. The whole thing — 193 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Agent Workbench with Penguin Plugins
Inside PenguinHarness an Agent can hold workbenches: small plugin packages in its own directory, written in TypeScript, that the server boots as module trees, shows as tabs beside the chat, reloads on every file change, and versions so any edit can be undone. This is the same module mechanism the server itself is built from — manifests as data, everything checked before any code runs — so a workbench that does not type-check, that was written against an interface version this server no longer fits, or whose manifests do not hold together fails to load with the problem named, while the previous version keeps serving.
A workbench is a plugin of the server's own kind, which is where this skill's name comes from. It is not a program that reaches an agent from outside, so it takes neither of the penguin-sdk skill's two ways, and that skill's question does not apply to it.
Before you start
If the user's message only invokes this skill (e.g. "use penguin-plugin skill") without saying what the workbench is for, ask the user what they want it to do. Once the request is concrete, do not ask follow-up questions: build it end to end and list the assumptions you made in your final reply. A request to undo, revert or remove the UI is the exception: work out which of the four in Undoing, reverting, removing is meant first.
Build a new Agent and its workbench
For an app inside PenguinHarness, use this skill with agent-initialization. The Plugin host already runs the Agent; do not ask the user to choose SDK/API architecture or enable Agent API keys. If the request says new Agent, create that target first and put all workbench files in its directory, not the Builder's. Keep the resolved target path for the whole task.
- Read the Environment's App Data Dir and Agent ID; use
agent-initializationto create the requested target. List existing agent ids, choose an unused id (letters, digits and underscores), and write its role. Give a contract reviewer domain instructions, not app-building skills. Inherit the current runtime unless the user specified another. - Under
<App Data Dir>/agents/<target_agent_id>/workbenches/<workbench_id>/, write the three-file scaffold below. Every visible app needs aWebModule.sessionTabscontribution. - Activate and check the target, including a new Agent nobody has opened yet:
The helper uses only this Session's injected server URL/token/Project and registers Agents created through file tools, then starts the target watcher. It bypasses shell HTTP proxies. Never print tokens, scan ports, read project credentials, or use another running Penguin instance. If the injected variables are unavailable, ask the user to open the target Agent's new conversation once.node "<this skill directory>/scripts/check.mjs" <target_agent_id> <workbench_id> - Read the target's
.harness/plugin.d.tsfor exact host types and.build/status.jsonfor compiler feedback..harness/README.mdis the running server's contract. Fix named diagnostics; re-run the helper after edits. Success meanserror: null, your contributed tab present and no hints, not merely an HTML file on disk. - Exercise a real request through your handler, wait for a terminal result, and inspect the returned answer or downloaded report. For HTTP tests use the injected URL with
curl --noproxy '*', bearer token only in the header. Check malformed input and empty/loading/failed states too. A compiler pass is not an end-to-end test. If browser automation is unavailable, report that limitation; finish the HTTP and script-syntax checks and state that the visual check remains unverified. Do not launch a separate system browser or install a DOM/browser test environment for a one-off workbench. - Hand off through Agents → target Agent → New chat → the named workbench tab. The workbench works in a new conversation before the user sends a chat message. Include the target Agent's link (
/agents/<target_agent_id>) and tab name. Full-page mode is optional.
What ships with it
1 file 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.
- 2d ago Changed · +55 lines · +4 tokens per session 3b7e8b9aad7c
- 3d ago Changed 59950ecdd04b
- 4d ago First seen · 138 lines · 74 tokens per session scan A 27ca26320650
penguin-plugin is a skill published in the GitHub repository Prism-Shadow/penguin-harness (2,753 stars, last pushed today), licensed Apache-2.0. It adds 78 tokens to every session and 5,132 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-13.
Other skills, from other repositories
agentscope-java
Expert Java developer skill for AgentScope Java framework - a reactive, message-driven multi-agent system built on Project Reactor. Use when working with reactive programming, LLM integration, agent orchestration, multi-agent systems, or when the user mentions AgentScope, ReActAgent, Mono/Flux, Project Reactor, or…
apply-patch
Apply multi-file or tricky edits atomically with git apply instead of many fragile editfile calls. Use when changing several files at once or when editfile fails to match.
git-checkpoint
Use git as a safety net - create a checkpoint commit before risky or large changes and roll back cleanly if a change makes things worse. Use before multi-file refactors.
pptagent
Create and revise editable PowerPoint presentations from a brief using HTML slide sources, rendering, and visual review. Use when the requested deliverable is a PPTX deck. The host authors the slides; text-only hosts can use an external visual reviewer.
agentfield-use
Whenever you have a discrete task to perform — one the user delegated, or one that arose inside your own work — check FIRST whether an installed AgentField agent covers it, and offload to it by default when one does. Coverage, not task size, is the test: even a small job goes to a covering agent. The check is cheap …
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.