# PenguinHarness, Open, Efficient, Self-Improving Harness

> Source: <https://github.com/Prism-Shadow/penguin-harness>
> Published: 2026-07-23 00:14:20+00:00

**With LangChain, you build agents by hand — at 1× speed.With PenguinHarness, agents build agents — at 100×.**

A zero-code Harness CLI and Web UI, connected to 1000+ models.

English | [简体中文](/Prism-Shadow/penguin-harness/blob/main/README.zh.md)

Three reasons, in deliberate order — from task quality, to how agents get built, to how they keep improving.

A deliberately minimal toolset over clean low-level interfaces: fewer tool calls, fewer tokens — deeply tuned for open models like DeepSeek. Each harness on the model it is normally paired with, same tasks, head-to-head:

**Best accuracy on data analysis — at 1/70 of Claude Code's cost.**

Type one sentence, and an Agent builds the complete Agent application for you — scaffold, code, and run instructions, end to end:

```
Collect the docs from https://github.com/ericbuess/claude-code-docs and build a RAG app that answers Claude Code questions as a configuration expert, citing its sources.
```

And this is the finished product — a docs expert with retrieval, cited sources that link to the original files, and example questions built in:

## rag_en.mp4

**And generating this entire RAG app burned just $0.02 (¥0.2) of tokens — on DeepSeek V4 Pro.**

With PenguinHarness Skills, an Agent evaluates and optimizes itself: run the benchmark, find the lost points, ship version N+1 — with a snapshot before every round, and every request observable in the Trace view.

## evo_en.mp4

Four Skill groups ship in the box ([docs](https://penguin.ooo/docs/skills)); Agents can also write and optimize their own:

| Group | Skills |
|---|---|
| Office Productivity | `data-analysis` , `firecrawl` |
| Software Development | `web-design` , `software-engineering` |
| AI App Development | `penguin-sdk` , `penguin-cli` , `agenthub-models` , `vllm` , `ollama` , `llamafactory` |
| Agent Tuning | `agent-creation` , `benchmark-design` , `agent-evaluation` , `agent-optimization` |

| Model | Providers |
|---|---|
| DeepSeek V4 | DeepSeek, OpenRouter, Fireworks AI, SiliconFlow, Qwen Token Plan |
| Kimi K3 | Moonshot AI, OpenRouter, Qwen Pay-As-You-Go |
| GLM 5.2 | Z.AI, OpenRouter, Fireworks AI, SiliconFlow, Qwen Token Plan, Qwen Pay-As-You-Go |
| Hunyuan 3 | OpenRouter |
| Qwen 3.8 Max | Qwen Token Plan (preview) |
| GPT 5.6 | OpenRouter |
| Gemini 3.6 Flash | Google Gemini, OpenRouter |
| Claude 5 | Anthropic, OpenRouter |

Each family's latest generation only — the app's **Models** page lists every built-in preset, and any OpenAI-protocol endpoint works too: pick a preset, or point a custom endpoint at any of the 1000+ online and local models.

| Requirement | Supported |
|---|---|
| OS | Linux, macOS |
| Architecture | x64, arm64 |
| Runtime | bundled by the one-line installer (npm installs need Node >= 24) |
| Model | an API key for at least one model |

🚀 Install and launch the full experience (multi-session chat, Agent/skill/model management, usage stats, Trace observability, evaluation center):

```
curl -fsSL https://penguin.ooo/install.sh | sh
penguin web        # start the service and open http://127.0.0.1:7364 (first login: admin / penguin-2026)
```

📦 Or via npm: `npm install -g @prismshadow/penguin-cli`

. Configure models on the in-app Models page, then chat.

The same engine, scriptable — made to be driven by agents (and agents building agents):

```
penguin config model add --provider deepseek --model-id deepseek-v4-pro --api-key sk-... --set-default
penguin run -m "Create hello.txt containing Hello, Penguin"   # one-shot task
penguin chat       # interactive REPL (/compact, /exit, Ctrl-C to interrupt)
penguin server     # headless service (same API the Web App uses)
js
import { createAgent, isCompleteModelMessage, userText } from "@prismshadow/penguin-core";

const agent = await createAgent({ agentId: "default_agent" });
const session = await agent.createSession({ workspaceDir: process.cwd() });

for await (const output of session.run([userText("Create hello.txt containing hi")], {
  approve: async () => "allow", // per-tool-call approval
})) {
  if (isCompleteModelMessage(output) && output.payload.type === "text") {
    console.log(output.payload.text);
  }
}
```

- Public release of the benchmark suite
- Desktop app
- Windows support
- Agent company and templates
- Company-level self evolving
- OpenShell integration (permission-governed shell)
- More to come…

```
pnpm install && pnpm build   # build first: core's exports point at dist/
pnpm dev                     # backend + web app together (prefixed logs, deps built once)
```

See [CONTRIBUTING.md](/Prism-Shadow/penguin-harness/blob/main/CONTRIBUTING.md) for the full workspace guide: dev commands, quality gates, repo layout, and the changelog rule.

If you use PenguinHarness in your research, please cite:

```
@software{penguinharness2026,
  author  = {{PrismShadow Team}},
  title   = {PenguinHarness: Efficient Self-Improving Harness for Everyone},
  year    = {2026},
  url     = {https://github.com/Prism-Shadow/penguin-harness},
  license = {Apache-2.0}
}
```

[Apache-2.0](/Prism-Shadow/penguin-harness/blob/main/LICENSE) © 2026 Prism Shadow

Built with ❤️ by [Yaowei Zheng](https://github.com/hiyouga) (author of [LlamaFactory](https://github.com/hiyouga/LlamaFactory)), the [PrismShadow AI Team](https://github.com/Prism-Shadow), and [Fable 5](https://www.anthropic.com/news/claude-fable-5-mythos-5).
