a2ui
Make a reply easier to read and act on with rich blocks inside ordinary Markdown — a choice the user picks from, a form that…
Use to build a standalone external program with an agent in it, or connect an external program to a Penguin agent. For an app inside PenguinHarness with its own Agent and workbench tab, use agent-initialization and penguin-plugin directly; no SDK/API question applies. A program
Claude Code
$ npx -y skills add Prism-Shadow/penguin-harness --skill penguin-sdk --agent claude-code
Codex
$ npx skills add Prism-Shadow/penguin-harness --skill penguin-sdk -a codex -y
Cursor
$ npx skills add Prism-Shadow/penguin-harness --skill penguin-sdk -a cursor -y
Gemini CLI
$ npx skills add Prism-Shadow/penguin-harness --skill penguin-sdk -a gemini-cli -y
GitHub Copilot
$ npx skills add Prism-Shadow/penguin-harness --skill penguin-sdk -a github-copilot -y
OpenCode
$ npx skills add Prism-Shadow/penguin-harness --skill penguin-sdk -a opencode -y
Windsurf
$ npx skills add Prism-Shadow/penguin-harness --skill penguin-sdk -a windsurf -y
name: penguin-sdk description: Use to build a standalone external program with an agent in it, or connect an external program to a Penguin agent. For an app inside PenguinHarness with its own Agent and workbench tab, use agent-initialization and penguin-plugin directly; no SDK/API question applies. A program reaches an agent in one of two ways, and the skill asks the user which before building — embedded with the Penguin Harness SDK (`@prismshadow/penguin-core`, no server), or over the Penguin server's Agent API (AMSP, with the `@prismshadow/amsp` client or curl). This is writing application code, not configuring an Agent State inside PenguinHarness. Covers self-contained projects, the createSession/run streaming loop with thinking and image messages, wiring the user's existing tools in as CLI commands, a complete RAG recipe that ingests documents into a knowledge base and answers with citations behind a web UI, and the Agent API client. Workbenches — the tabs and pages beside the chat that an Agent keeps for itself inside PenguinHarness — are the penguin-plugin skill's. version: 2026.10.26.1
This skill builds programs that use a Penguin agent. A program reaches one in either of two ways, embedded with the SDK or through the Penguin server's Agent API, and the user picks which. Workbenches — pages and server code an Agent keeps inside PenguinHarness — are a third thing, and the penguin-plugin skill's.
To have an agent perform a task for you, use the `run_subagent` tool: both ways are for programs, not for handing off your own work.
**The SDK: `@prismshadow/penguin-core`, embedded in the program.**
**The API: Penguin's Agent API, over AMSP.**
Whenever the user asks to connect a program to an agent, or to build a program with an agent in it (an AI, agentic or RAG app, a bot, a service, a script), ask which way before you write anything, even when the request is otherwise concrete. It is the only question a concrete request gets: it overrides the no-follow-up-questions default of *Before you start* for this one question.
Do not ask when the way is already chosen:
Naming this skill does not choose a way. Workbenches (the penguin-plugin skill) take neither way and need no question; neither does connecting a Feishu, Telegram, QQ or WeChat bot to a conversation, which is the Web App's Remote control.
Ask with one sentence and this choice block, in the user's language, as the end of your reply. Mark one option `"recommended": true` only when the request leans that way: an Agent the user already has in PenguinHarness leans to the API, an app to ship to others leans to the SDK.
Your program can reach the agent in two ways: embedded with the SDK, or through the Penguin server's Agent API.
```a2ui
{
"type": "choice",
"id": "agent-access",
"question": "How should the program reach the agent?",
"options": [
{
"label": "SDK: embed the agent",
"value": "Use the SDK: embed the agent in the program",
"description": "Runs inside the program on its own model key. No Penguin server; nothing appears in the Web App."
},
{
"label": "API: call a Penguin Agent",
"value": "Use the Agent API: call a Penguin Agent over AMSP",
"description": "Calls an Agent on your Penguin server. You turn on its API access and create a key; its conversations appear in the Web App."
}
]
}The Web App shows the block as two buttons; the CLI and
Make a reply easier to read and act on with rich blocks inside ordinary Markdown — a choice the user picks from, a form that…
Run ACE (Agentic Context Engineering, Zhang et al. 2025) on an agent the sequential offline way - a Reflector reads each training…
Run a PenguinHarness organization as its CEO — turn the mission into a ticket tree, hire HR and finance first, partition the…
The protocol every employee of a PenguinHarness organization follows — read the handbook first, act on [org_trigger] work runs,…
Run finance for a PenguinHarness organization — set and adjust monthly budgets along the reporting line, audit spend daily with…
Run HR for a PenguinHarness organization — guarantee every employee has an enabled calendar event, hire and offboard employees…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.