penguin-harness is a free, open source build & deployment project written in TypeScript and released under Apache-2.0. It has 3,111 GitHub stars, 333 forks and 77 open issues, and was last pushed 10 hours ago. On this registry it ranks #41 of 84 tracked projects in Build & Deployment, with 5 head-to-head comparisons available. It gained 678 stars over the last 30 tracked days.

What is penguin-harness?

PenguinHarness is an open-source, local-first, multi-agent auto-development platform that runs on a developer's own computer or server and automates the full lifecycle of AI agent applications โ€” creation, evaluation, optimization, and deployment โ€” under the Apache-2.0 licence.

What it is

PenguinHarness is a TypeScript platform for building AI applications with agents rather than by hand. It ships as a desktop application and as a command line tool, both sharing the same ~/.penguin/data root, and it presents a deliberately minimal toolset over clean low-level interfaces so that agents make fewer tool calls and consume fewer tokens. It is deeply tuned for open models such as DeepSeek, and it also drives the latest generation of DeepSeek V4, Kimi K3, GLM 5.3, Hunyuan 3, Qwen 3.8 Max, GPT 5.6, Gemini 3.7 Flash, Claude 5, and Inkling through providers including OpenRouter, Fireworks AI, SiliconFlow, TokenDance, OpenAI, Google, Anthropic, Moonshot, and Z.AI.

The concrete problem it solves is the manual assembly work in the agent stack. With LangChain, developers build agents by hand and wire up orchestration themselves; PenguinHarness inverts that, so agents build agents. A single sentence describing a need produces a runnable application with scaffold, code, and run instructions โ€” for example, a RAG app that answers Claude Code questions as a configuration expert and cites its sources. The platform replaces that hand-written orchestration glue with a self-evolution engine: an agent runs a benchmark, finds the points it lost, and ships version N+1, with a snapshot before every round and every request observable in the Trace view.

Key capabilities

  • One-sentence application generation that returns scaffold, code, and run instructions end to end.
  • Native self-evolution through PenguinHarness Skills, where an agent evaluates and optimizes itself across successive versions.
  • Trace view observability, making every request inspectable and every round recoverable from a snapshot.
  • Four built-in plugin categories: Office Productivity (data-analysis, use-firecrawl, use-bento-slides, humanizer, goal, continual-learning), Software Development (software-development, use-claude-code), AI App Development (agent-development, model-development, skill-porting, agent-tuning), and Agent Company (agent-company).
  • Session hooks that drive goal mode and continual learning, with agents able to write and optimize their own skills.
  • Model breadth covering 1000+ online and local models, with presets listed on the Models page and any OpenAI-protocol endpoint accepted as a custom endpoint.
  • Multi-platform support for Linux, macOS, and Windows 10 and later on both x64 and arm64.

Who uses it and how

  • Individual developers run the desktop app as a double-click install that embeds the server and opens already signed in, with no terminal involved.
  • Teams deploy the command line on a workstation or a server, where a server is one docker run away, and mix desktop and CLI freely against the shared ~/.penguin/data root.
  • Cost-sensitive builders targeting open models use DeepSeek V4; the README reports that generating a complete RAG application burned roughly $0.02 of tokens.
  • Data-analysis workloads are a stated focus, where the README reports best accuracy among the compared harnesses at 1/70 of Claude Code's cost.
  • Groups exploring agent-company setups and continuous skill optimization use the agent-company plugin alongside the continual-learning session hook.

Getting started

Start with the desktop app for a double-click install that embeds the server and signs in automatically, or use the one-line installer for the command line on a workstation or server; a server deployment is also available as a single docker run. npm-based installs require Node 24 or later, and at least one model API key is needed.

How it compares

Two tools are named in the README as reference points rather than as a list of paid products. LangChain is framed as the hand-built alternative, where developers assemble agent orchestration themselves while PenguinHarness generates the application from a one-sentence description. Claude Code appears only as a cost baseline for data-analysis tasks, and no commercial platform comparison on licence, self-hosting, or data ownership is offered in the supplied facts.

When to use it โ€” and when not to

A self-hoster must supply an API key for at least one model, provide a Linux, macOS, or Windows 10+ host on x64 or arm64, and rely on the bundled runtime unless installing through npm on Node 24 or later. Teams that need pinned older model generations should look elsewhere, because only each family's latest generation is supported, and teams wanting explicit hand-written control over orchestration will find the agent-driven approach the opposite of what they want. The README is also promotional in tone and its installation section is truncated in the available excerpt, so prospective users should verify deployment details on the project site before committing.

project readme (upstream, from github) โ€” read inline

PenguinHarness

Open-source, local-first multi-agent app development platform
Fully automate building ยท optimizing ยท deploying AI applications

1000+ Models ยท Multi-Platform ยท Apache 2.0 ยท Agent Self-Evolution

npm version CI Deploy Site License: Apache-2.0 Node >= 24

Website Docs Blog

Discord X (Twitter) WeChat

PenguinHarness - Let Agents Autonomously Build Better Agents for $0.02 | Product Hunt

English | ็ฎ€ไฝ“ไธญๆ–‡

Why PenguinHarness

With LangChain, you build agents by hand โ€” at 1ร— speed.
With PenguinHarness, agents build agents โ€” at 100ร—.

PenguinHarness runs on your computer or server and automates the agent app lifecycle from creation and evaluation to optimization and deployment. Three reasons define the platform:

1. ๐Ÿ† Outstanding results at tens of times less cost

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.

2. โšก One sentence generates a runnable agent app

Describe what you need in one sentence. PenguinHarness builds the complete agent application โ€” 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:

https://github.com/user-attachments/assets/9b7033e8-f08a-4c3f-bd33-547896664e6e

And generating this entire RAG app burned just $0.02 (ยฅ0.2) of tokens โ€” on DeepSeek V4 Pro.

3. ๐Ÿงฌ Native agent self-evolution engine

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.

https://github.com/user-attachments/assets/922d13a6-5ffc-4685-9a39-352f02f9afc0

Built-in plugins

Four plugin categories ship in the box (docs) โ€” skills, plus the session hooks that drive goal mode and continual learning; agents can also write and optimize their own skills:

Category Plugins
Office Productivity data-analysis, use-firecrawl, use-bento-slides, humanizer, goal, continual-learning
Software Development software-development, use-claude-code
AI App Development agent-development, model-development, skill-porting, agent-tuning
Agent Company agent-company

Supported Models

Model Providers
DeepSeek V4 DeepSeek, OpenRouter, Fireworks AI, SiliconFlow, TokenDance, Qwen Token Plan, Qwen Pay-As-You-Go
Kimi K3 Moonshot AI, OpenRouter, Fireworks AI, TokenDance, Qwen Pay-As-You-Go
GLM 5.3 Z.AI, OpenRouter, TokenDance
Hunyuan 3 OpenRouter
Qwen 3.8 Max Qwen Token Plan, Qwen Pay-As-You-Go, OpenRouter, TokenDance
GPT 5.6 OpenAI, OpenRouter
Gemini 3.7 Flash Google Gemini, OpenRouter
Claude 5 Anthropic, OpenRouter
Inkling OpenRouter, Fireworks AI

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.

Requirements

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

Installation

Start with the desktop app, or install the command line on a workstation or server. Both use the same ~/.penguin/data root and can be mixed freely; a server is also one docker run away:

  • ๐Ÿ–ฅ๏ธ Desktop app โ€” a double-click install: it embeds the server and opens already signed in, no terminal involved.
  • โŒจ๏ธ CLI โ€” a one-line installer (or npm / offline package) puts the penguin command on the machine; penguin web then serves the full Web experience in your browser at http://127.0.0.1:7364 (multi-session chat, agent / skill / model management, usage stats, Trace observability, evaluation center). The online installers bundle their own Node runtime โ€” unpack and run; upgrades and reinstalls never touch your data.

[!NOTE] On a CLI install, the server prints a first-login link as a framed notice on every start until a password is set โ€” open it to claim the built-in admin account and choose one. Models are configured on the in-app Models page.

๐Ÿ–ฅ๏ธ Desktop app

The full Web experience as a standalone application: it embeds the server and opens already signed in โ€” no terminal, no login page, no initial password to copy. It works on the same ~/.penguin/data root as a CLI install, so the two can be used interchangeably (a data root only ever runs one server; if a CLI-started instance is already up, the app attaches to it).

Download the desktop app from the download page. The page serves the OSS-accelerated mirror when it is reachable, and every installer is also attached to each GitHub Release.

Platform Installers
macOS 11+ dmg (Apple Silicon / Intel)
Windows 10+ installer (.exe, x64)
Linux (x64) AppImage / deb

The macOS builds are Developer ID signed and notarized, and the Windows installers are Authenticode signed, so neither platform needs a first-launch unblock. Linux is the one exception:

๐Ÿง Linux: double-clicking the AppImage does nothing

Browsers download AppImages without the execute permission. Grant it once and the app starts normally from then on (the deb package installs through the package manager and is not affected):

chmod +x penguin-desktop-linux-x86_64.AppImage

๐Ÿง๐ŸŽ Linux / macOS (online install)

curl -fsSL https://penguin.ooo/install.sh | sh
penguin web        # start the service and open http://127.0.0.1:7364

๐ŸชŸ Windows (online install, PowerShell)

irm https://penguin.ooo/install.ps1 | iex
penguin web        # start the service and open http://127.0.0.1:7364

๐Ÿ“ฆ npm (any platform, Node >= 24)

npm install -g @prismshadow/penguin-cli
penguin web        # start the service and open http://127.0.0.1:7364

๐Ÿณ Docker

docker run -d --name penguin -p 127.0.0.1:7364:7364 -v penguin-data:/data hiyouga/penguinharness:latest
docker logs penguin       # the first-login link, openable as it stands on this machine

The official image runs the same server on 0.0.0.0:7364 with its data root on the /data volume, as an unprivileged user, for linux/amd64 and linux/arm64. It is built from this repository's source: latest is rebuilt on every push to main, and each release is published under its exact version (hiyouga/penguinharness:0.2.13) โ€” there is no moving stable tag. The example publishes the port on the host's loopback, so the Web App answers only on the machine running Docker (http://localhost:7364); to reach it from a network, publish on all interfaces instead (-p 7364:7364), preferably behind a reverse proxy that terminates TLS. Compose file and the full deployment notes โ€” reverse proxies, upgrades, the rescue path โ€” are in the Docker quickstart.

๐Ÿ“ด Offline install (air-gapped machines)

Every GitHub Release attaches exactly one package per target โ€” Linux and macOS in x64 / arm64, Windows in x64, plus a runtime-less universal package โ€” and the same file serves online and offline installation. Each package seals the program payload, its SHA256 checksum and the platform's installer: download the one file on a networked machine, copy it to the target, extract once and run the bundled installer โ€” no network, no separate checksum file to carry (the sealed SHA256 is always verified).

Linux (on arm64, use penguin-linux-arm64.tar.gz):

mkdir penguin-install
tar -xzf penguin-linux-x64.tar.gz -C penguin-install
./penguin-install/install.sh

macOS (Apple silicon shown; on Intel, use penguin-darwin-x64.tar.gz):

mkdir penguin-install
tar -xzf penguin-darwin-arm64.tar.gz -C penguin-install
./penguin-install/install.sh

Windows (unzip, then double-click install.cmd โ€” or run it in PowerShell):

Expand-Archive penguin-win32-x64.zip -DestinationPath penguin-install
cd penguin-install
.\install.cmd

๐Ÿค– CLI & SDK โ€” for agents

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

penguin config model add --provider deepseek --model-id deepseek-flash --api-key sk-... --set-default
penguin run -m "Create hello.txt containing Hello, Penguin"   # one-shot task
penguin chat       # interactive REPL (/compact, /clear, /exit, Ctrl-C to interrupt)
penguin server     # headless service (same API the Web App uses)
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);
  }
}

Roadmap

  • 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โ€ฆ

Development

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 for the full workspace guide: dev commands, quality gates, repo layout, and the changelog rule.

Contributors

Thanks to everyone who has contributed to PenguinHarness!

PenguinHarness contributors

Citation

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}
}

License

Apache-2.0 ยฉ 2026 Prism Shadow

Built with โค๏ธ by Yaowei Zheng (author of LlamaFactory), the PrismShadow AI Team, and Fable 5.

Frequently asked questions

Is penguin-harness free to use?

penguin-harness is open source under the Apache-2.0 licence. There is no licence fee and no seat count โ€” you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does penguin-harness do?

๐Ÿง Harness for RSI. Let AI Build AI. Multi-Agent Auto-Dev Platform. Everything is Transparent.

What is penguin-harness written in?

penguin-harness is primarily written in TypeScript. Its source is publicly available at https://github.com/Prism-Shadow/penguin-harness, and it has 3,111 GitHub stars.