penguin-plugin

penguin-plugin is a skill for Claude Code, Codex from Prism-Shadow/penguin-harness. It costs 78 tokens per session (5,132 once invoked), scanned A, original, Apache-2.0.

A skill for building server-side workflow plugins in PenguinHarness, a system that displays custom pages or tabs beside the chat. Workflows are TypeScript packages stored in an agent's project and can be edited, checked, shown, restored, or removed.

In plain words
What is it for?
Use it to create or change a workflow, display it as the whole app or a tab, restore an earlier version, or remove a workflow.
Why use it?
It provides a defined way to add custom interfaces and server code without treating them as external programs. Type and manifest checks prevent invalid versions from replacing the last working one.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to create or change a workflow, display it as the whole app or a tab, restore an earlier version, or remove a workflow.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/prism-shadow/penguin-harness/penguin-plugin
About the project

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.

Prism-Shadow/penguin-harness · 2,753 stars · on GitHub · penguin.ooo

Install

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.

Any agent
npx skills add Prism-Shadow/penguin-harness --skill penguin-plugin
Clone the repo
git clone --depth 1 https://github.com/Prism-Shadow/penguin-harness

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for penguin-plugin

README.md
[![agentmods](https://agentmods.dev/badge/skills/prism-shadow/penguin-harness/penguin-plugin/github.svg)](https://agentmods.dev/skills/prism-shadow/penguin-harness/penguin-plugin)
Your own site
<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.

agentmods 80×15 button for penguin-plugin

Your own site · 80×15
<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>
Per session 78 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 5,132 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 2d ago against content hash 3b7e8b9aad7c, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/check.mjs), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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
plugins/agent-development/skills/penguin-plugin/SKILL.md · 193 lines

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.

  1. Read the Environment's App Data Dir and Agent ID; use agent-initialization to 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.
  2. Under <App Data Dir>/agents/<target_agent_id>/workbenches/<workbench_id>/, write the three-file scaffold below. Every visible app needs a WebModule.sessionTabs contribution.
  3. Activate and check the target, including a new Agent nobody has opened yet:
    node "<this skill directory>/scripts/check.mjs" <target_agent_id> <workbench_id>
    
    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.
  4. Read the target's .harness/plugin.d.ts for exact host types and .build/status.json for compiler feedback. .harness/README.md is the running server's contract. Fix named diagnostics; re-run the helper after edits. Success means error: null, your contributed tab present and no hints, not merely an HTML file on disk.
  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 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.
  6. 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.

Read the full file on GitHub · 193 lines

Files

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.

Changes

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.

  1. 2d ago Changed · +55 lines · +4 tokens per session 3b7e8b9aad7c
  2. 3d ago Changed 59950ecdd04b
  3. 4d ago First seen · 138 lines · 74 tokens per session scan A 27ca26320650

Subscribe to this mod's changes

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.

Related

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…

agentscope-ai/agentscope-java · 91 tokens

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.

agentscope-ai/agentscope-java · 38 tokens

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.

agentscope-ai/agentscope-java · 39 tokens

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.

icip-cas/PPTAgent · 52 tokens

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 …

Agent-Field/agentfield · 259 tokens

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.

openonion/connectonion · 61 tokens