PenguinHarness — 채택 판단 도시에

2026-08-26 · Prism-Shadow/penguin-harness · commit b90f5aa76534 · Apache-2.0 · 정적 전용(commit-pinned) 코드 검증 기반
Provenance · scope

Provenance and scope

Original URL
https://github.com/Prism-Shadow/penguin-harness
Canonical URL
https://github.com/Prism-Shadow/penguin-harness
Object kind
repository · Prism-Shadow / penguin-harness
Requested ref
not supplied
Analysis ref
refs/heads/mainb90f5aa76534ee714f0336e6b98827f58240d298 (sha1)
Root tree
36212e4ba1c2e6de1854555ec2d1969320e836fd
Capture window
2026-08-26T05:18:00Z → 2026-08-26T05:28:03Z (UTC)
Axes
visibility public · auth unauthenticated · sensitivity clear · publication allow
Acquisition
GitHub REST 2022-11-28 (13 responses) + bare-git --depth 1 (no LFS, no submodules) at pinned commit · no checkout, no build, no run
Capture ID
bf9905ea-0bbf-4ee3-9d39-95ae77865fec
10-minute learning guide

PenguinHarness — 무엇을 하는 물건인가

한 줄: 데스크톱/CLI 이중 배포로 127.0.0.1:7364 로컬 루프백에 자체 서버 + 웹 UI + SQLite 인덱스 DB를 띄우고, Skill/Agent로 에이전트가 에이전트를 만들고 자체 벤치마크·최적화하는 반복 루프를 제공하는 Apache-2.0 TypeScript pnpm 모노레포. 서버는 HMR 스왑으로 릴리즈 없이 비즈니스 표면 전체를 교체할 수 있다.

10분 경로

  1. README → 광고 (Why 1~3), Skill/모델 주장
  2. cli/src/index.ts → CLI 명령 셋
  3. cli/src/commands/serve.ts → 서버 기동
  4. server/src/app.ts → 런타임 + 비즈니스 표면 조립, /api/hmr
  5. Skill 예시: agent-initialization

3분 점검 질문

  1. 서버 기본 바인딩 주소·포트, 이유는?
  2. 초기 admin 비밀번호는 어떻게 만들어지고 언제 폐기되는가?
  3. HMR 스왑이 교체하는 것과 유지하는 것은 무엇인가?
Executive verdict

지금 채택할 만한가

Evidence trustB
Implementation confidencemedium
Runtime confidenceunknown
Maintenance coveragemedium
Security / privacy confidencemedium

▶ 채택 판단

개인/팀 자체 호스팅 실험에는 지금 채택 가능 — Apache-2.0 + loopback 기본 + HMR로 로컬 반복 용이. 프로덕션·다중 사용자 배포는 실행 리뷰 및 자체 벤치마크 재현 이후.

  • 레포 나이 약 5주, top-1 컨트리뷰션 79.94% — 성숙도는 "제품 작동"이 아니라 "핵심 저자가 밀고 있음"에 걸려 있다.
  • 기본 loopback을 벗어나 배포하려면 PENGUIN_TRUST_PROXY · preview 오리진 · CSRF · throttle을 자체 재검토.
  • README의 비용·정확도 랭킹은 벤치마크 스위트가 아직 공개되지 않은 벤더 벤치마크 — 자체 프로파일로 재현 필요.
Implementation · 실제로 구현된 것

커밋 b90f5aa76534에서 코드가 실제로 하는 일

영역상태파일 (커밋 고정)메모
CLIverified cli/src/index.ts Commander 프로그램. config/run/chat/server/web/update/version 등록.
penguin server/webverified serve.ts:39-149 PORT/HOST 우선순위 CLI > env > 기본 7364/127.0.0.1.
동시성 락 (한 data root, 한 서버)verified serve.ts:100-120 liveServerLock(resolveRoot()).
Hono 런타임 조립verified app.ts:206-281 bootAppDeps → HmrHost.ensure().
비즈니스 표면 (HMR)verified app.ts:519-726 buildAppDeps가 서비스 그래프를 매번 재조립.
인증 (쿠키 세션)verified auth/service.ts 세션 토큰 32B, sha256 저장, TTL 7일 슬라이딩.
초기 admin 시드verified auth/service.ts:26-60 penguin-<4 digits>; 5회 실패 → exp backoff 1→60s.
Preview 오리진 격리verified app.ts:317-334 hostname 기준, port로는 세션 쿠키 공유됨.
body cap + jsonOnlyWrites (CSRF MVP)verified app.ts:336-373 스트림 바이트 기준 재계산.
Desktop shellverified desktop/src/main.ts Electron utilityProcess로 서버 fork, 원샷 토큰.
Skill 표면verified packages/skills/skills 15개 하위 디렉터리에 SKILL.md.
모델 카탈로그partial core/src/llm 실행 동작 검증은 정적에서 불가 (C013).
공개 벤치마크 스위트roadmap README §Roadmap재현 아티팩트 미공개 (C012).
Architecture · 실행 흐름

런타임 shell vs 비즈니스 surface — HMR 씨움

소유교체 시점근거
런타임 shell DB, AuthService, ChannelHub, HmrHost, /api/auth, /api/desktop, /api/hmr, 정적 hosting 새 설치 (릴리즈 채널) createRuntimeApp
비즈니스 surface Session/Agent/Project/Skill/Benchmark 서비스, Scheduler, /preview HMR push로 언제든 buildAppDeps + createApp

사용자 요청 하나의 여정

  1. 웹 UI/CLI가 /api/…를 호출 → Hono body cap → jsonOnlyWrites → runtime-owned 프리픽스 분기
  2. 비즈니스 라우트면 platformHttpSeam으로 현재 세대의 createApp 라우트 도달 → authMiddleware가 auth_session 쿠키 확인
  3. Session 실행이면 SessionManager.loader가 core의 Agent/Session을 로드, per-tool approve가 승인 결정
  4. 결과는 ChannelHub 브로드캐스트, 사용량은 UsageRecorder append
Installation · 첫 성공까지 (commands — not run)

설치 경로 — 문서화된 명령 그대로 (실행하지 않음)

필수: OS Linux/macOS/Windows 10+, x64/arm64, 모델 API 키 최소 1개, npm 설치는 Node ≥ 24. 데스크톱/온라인 installer는 자체 Node 런타임 번들.

1) 데스크톱 (더블클릭)

다운로드 페이지에서 플랫폼별 인스톨러 (macOS dmg / Windows exe / Linux AppImage · deb). 서명 없음 — OS 방어 우회 절차는 README 문서화.

2) CLI 온라인 installer (Linux / macOS)

# commands — not run
curl -fsSL https://penguin.ooo/install.sh | sh
penguin web        # http://127.0.0.1:7364

3) CLI (Windows PowerShell)

# commands — not run
irm https://penguin.ooo/install.ps1 | iex
penguin web

4) npm (Node ≥ 24)

# commands — not run
npm install -g @prismshadow/penguin-cli
penguin web

첫 로그인 신호: 데스크톱은 원샷 토큰으로 admin 로그인 상태. CLI 설치는 admin 사용자에 penguin-<4 digits> 초기 비밀번호가 서버 콘솔에 한 번 인쇄된다 (auth/service.ts:52-60).

Non-execution receipt: checkout=no · worktree=no · install=no · build=no · test=no · run=no · import=no · container=no · hooks=no · submodules=no · lfs=no · filters=no · textconv=no.

Reading order · 권장 읽기 순서

역할별 순서

역할순서이유예상 시간
일반 유저 README → Skills 표 → Requirements → Installation 제품 표면 + 최소 환경 파악10분
운영자 config.tsapp.tsdesktop/main.ts 바인딩·격리·프록시·업데이트 경계25분
컨트리뷰터 CONTRIBUTING.mdcore/srcskills/skills 워크스페이스 명령 · 확장 지점40분
보안 리뷰어 auth/service.tsmiddleware.tsapp.ts:317-402ci.yml 세션 · throttle · CSRF · preview 격리 · CI 표면60분
Health · 릴리즈 · 활동 · CI

정량 지표 (커밋 관측 시점 기준)

릴리즈 리듬

지표
샘플 릴리즈 수10
최신 릴리즈v0.2.4 @ 2026-08-22T05:48:28Z
릴리즈 간 간격 (일) — 중앙값2.73
릴리즈 간격 min/max (일)0.02 / 7.81

HEAD 신선도 & CI

지표
레포 생성일2026-07-19T03:15:21Z
최신 push2026-08-26T05:16:33Z
HEAD 나이 (시간)15.84
워크플로우 런 최근 20건 결론success=16, cancelled=4, failure=0

이슈 · PR 응답 (샘플 20건)

지표
오픈 이슈 (PR 제외)0
오픈 PR / 클로즈드 PR20 / 20 (병합 15)
PR close 지연 중앙값 (시간)1.49

컨트리뷰터 집중도 (bus factor 아님)

fetch된 유니크 컨트리뷰터 13명, 총 컨트리뷰션 344 (샘플). top-1 79.94%, top-3 90.12%. 첫 페이지 기반 concentration estimate.

어텐션 시그널 (참고용)

Stars 1674 · Forks 175 · Watchers 1674. GitHub open_issues는 오픈 PR 포함.

Security · privacy · supply chain

보안 · 프라이버시 표면

사실 (커밋 고정)unknown
기본 바인딩loopback 127.0.0.1:7364비-loopback 배포 시 자체 리버스 프록시/TLS/인증 정책
세션 저장토큰 32B, sha256만 DB; TTL 7일 슬라이딩회수/rotate/강제 로그아웃 UX 실행 확인 필요
초기 비밀번호keyspace 10,000; 5회 실패 exp backoff 1→60s cap; process-localflapping 우회 여부 정량 확인
CSRF / body capJSON-only writes + 요청별 body cap 재계산세부 위협모델 재검토 권장
Preview 격리hostname 기준 격리; port는 쿠키 공유리버스 프록시 라우팅 강제 검증
Update 채널GitHub latest-release (fail-soft), 서명 없음서명/SBOM 자동 검증은 정적 미확인
공급망pnpm-lock.yaml, ci.yml, pages.yml, THIRD-PARTY-NOTICES.mdDependabot/CodeQL은 unauthenticated로 unknown; public advisories 0

커뮤니티 문서: CONTRIBUTING · LICENSE · README 있음 · CODE_OF_CONDUCT · Issue/PR template · SECURITY.md 부재.

License · 채택 조건

라이선스 실체

SPDXApache-2.0
파일LICENSE
NOTICEroot NOTICE 없음
THIRD-PARTY-NOTICES있음
파생 문서화 허용허용 (귀속 필요)
미디어 · 스크린샷 · 로고레포 라이선스와 별도. 본 도시에는 authored 미디어를 재발행하지 않음.

※ 라이선스 요약은 법률 자문이 아니다.

Claim Ledger · 주장 vs 증거

도시에 안에서 만들어진 주장 15건

ID주장증거 종류판정신뢰도미해결 질문
C001Default server listener binds to 127.0.0.1:7364.static-support/project-statedsupportedhigh-
C002Initial admin password is randomized as 'penguin-<4 digits>' and printed once to server console (CLI install; desktop mode uses a fully random unprintable value).static-support/project-statedsupportedhigh-
C003Server exposes a business surface hot-swappable via /api/hmr (HMR push) while runtime capabilities stay stable across generations.static-supportsupportedhigh-
C004CLI is a Commander program registering config/run/chat/serve/update/version; `penguin server` and `penguin web` boot the same @prismshadow/penguin-server via dynamic import.static-support/static-supportsupportedhigh-
C005Login throttling: after 5 consecutive failed logins per userId, next attempt admitted only after exponential backoff (1s → 60s cap); throttle is process-local memory, cleared by restart.static-supportsupportedhigh-
C006Repository is Apache-2.0 licensed with a THIRD-PARTY-NOTICES.md; no top-level NOTICE file.static-support/static-support/project-statedsupportedhigh-
C007Skill set shipped in-tree includes at least 14 SKILL.md files under packages/skills/skills/ covering evaluation, initialization, optimization, agenthub-models, benchmark-design, and category-specific developer skills.static-support/project-statedsupportedhigh-
C008Data root is ~/.penguin/data (or PENGUIN_HOME); a single data root can only run one server at a time (attach semantics).static-support/static-support/project-statedsupportedhigh-
C009Latest published release is v0.2.4 (2026-08-22); repository was created 2026-07-19 (roughly 5 weeks old at capture) with 10 published releases in the sample.static-support/static-supportsupportedhigh-
C010CI badge points to actions/workflows/ci.yml; latest 20 workflow runs on main show 16 success + 4 cancelled (0 failure in the sample).static-support/static-supportsupportedmediumOlder windows may show more failures; sample is latest 20 only.
C011Contributor concentration is high: top-1 contributor holds ~80% of counted contributions (275/344 in fetched sample); top-3 ~90%. This is a concentration estimate, NOT a bus factor.static-supportsupportedmediumA deeper page or true code-ownership map would refine this; contributions count commits, not effort.
C012Cost/benchmark claim: 'Best accuracy on data analysis — at 1/70 of Claude Code's cost' and 'RAG app for $0.02 on DeepSeek V4 Pro' are README project statements without an in-repo reproducible benchmark artifact at the pinned commit.project-stated/inferencepartially-supportedmediumAwaiting the promised benchmark suite for reproducible verification; treat as vendor benchmarking claim until then.
C013Model coverage: DeepSeek V4, Kimi K3, GLM 5.2, Hunyuan 3, Qwen 3.8 Max, GPT 5.6, Gemini 3.6 Flash, Claude 5, Inkling — all reachable via each family's provider and OpenAI-protocol endpoints (with the note that only 'each family's latest generation' ships as presets).project-stated/inferencepartially-supportedmediumEnd-to-end provider behavior not verified statically.
C014Preview origin isolation: if PENGUIN_PREVIEW_ORIGIN is set it must differ by hostname (cookies ignore port); otherwise a loopback counterpart is derived per request and preview host is restricted to /preview/*.static-supportsupportedhigh-
C015Runtime execution not observed in this dossier: no install/build/test/run/import/container/hooks/submodules/LFS/filters/textconv occurred. All claims are commit-pinned static-only.static-supportsupportedhigh-
Authored occurrences · 원본 링크 · 인용

원문 README 저자 삽입 링크·이미지 (전수, 43개)

본 리포지토리 루트 도시에의 대상은 코드다 (2026-08-24 유저 지시: 소스가 SSOT/팩트, README는 주장). 따라서 README 전문 완역 대신, 저자가 README에 삽입한 모든 authored 링크·미디어를 커밋 고정 앵커로 보존하고, 소셜 CDN/원격 이미지 등 재발행할 수 없는 미디어는 data-disposition="omitted"로 표시한다. blocked 미디어의 원격 URL은 이 페이지 어디에도 노출되지 않는다.

  1. #1 [image — inline media] document start
  2. #2 https://penguin.ooo/download/ ⬇️ Click to Download
  3. #3 https://www.producthunt.com/products/penguinharness?embed=true&amp;utm_source=badge-featured&amp;utm_medium=badge&amp;utm_campaign=badge-penguinharness ⬇️ Click to Download
  4. #4 [image — inline media] ⬇️ Click to Download
  5. #5 https://www.npmjs.com/package/@prismshadow/penguin-core ⬇️ Click to Download
  6. #6 [image — inline media] ⬇️ Click to Download
  7. #7 https://github.com/Prism-Shadow/penguin-harness/actions/workflows/ci.yml ⬇️ Click to Download
  8. #8 [image — inline media] ⬇️ Click to Download
  9. #9 https://github.com/Prism-Shadow/penguin-harness/actions/workflows/pages.yml ⬇️ Click to Download
  10. #10 [image — inline media] ⬇️ Click to Download
  11. #11 https://github.com/Prism-Shadow/penguin-harness/blob/b90f5aa76534ee714f0336e6b98827f58240d298/LICENSE ⬇️ Click to Download
  12. #12 [image — inline media] ⬇️ Click to Download
  13. #13 [image — inline media] ⬇️ Click to Download
  14. #14 https://penguin.ooo/ ⬇️ Click to Download
  15. #15 [image — inline media] ⬇️ Click to Download
  16. #16 https://penguin.ooo/docs/ ⬇️ Click to Download
  17. #17 [image — inline media] ⬇️ Click to Download
  18. #18 https://penguin.ooo/blog ⬇️ Click to Download
  19. #19 [image — inline media] ⬇️ Click to Download
  20. #20 https://discord.gg/eFHKqqcU3D ⬇️ Click to Download
  21. #21 [image — inline media] ⬇️ Click to Download
  22. #22 https://x.com/code_hiyouga ⬇️ Click to Download
  23. #23 [image — inline media] ⬇️ Click to Download
  24. #24 https://github.com/Prism-Shadow/penguin-harness-community/blob/main/wechat/group.jpg ⬇️ Click to Download
  25. #25 [image — inline media] ⬇️ Click to Download
  26. #26 https://github.com/Prism-Shadow/penguin-harness/blob/b90f5aa76534ee714f0336e6b98827f58240d298/README.zh.md ⬇️ Click to Download
  27. #27 [image-source — inline media] 1. 🏆 Outstanding results at tens of times less cost
  28. #28 [image — inline media] 1. 🏆 Outstanding results at tens of times less cost
  29. #29 https://github.com/user-attachments/assets/9b7033e8-f08a-4c3f-bd33-547896664e6e 2. ⚡ One sentence, and an agent builds your agent app
  30. #30 https://github.com/user-attachments/assets/922d13a6-5ffc-4685-9a39-352f02f9afc0 3. 🧬 Self-evolution: it gets stronger with use
  31. #31 https://penguin.ooo/docs/skills Built-in Skills
  32. #32 [link — text] Installation
  33. #33 https://penguin.ooo/download 🖥️ Desktop app
  34. #34 https://github.com/Prism-Shadow/penguin-harness/releases 🖥️ Desktop app
  35. #35 https://github.com/Prism-Shadow/penguin-harness/releases 📦 npm (any platform, Node >= 24)
  36. #36 https://github.com/Prism-Shadow/penguin-harness/blob/b90f5aa76534ee714f0336e6b98827f58240d298/CONTRIBUTING.md Development
  37. #37 https://github.com/Prism-Shadow/penguin-harness/graphs/contributors Contributors
  38. #38 [image — inline media] Contributors
  39. #39 https://github.com/Prism-Shadow/penguin-harness/blob/b90f5aa76534ee714f0336e6b98827f58240d298/LICENSE License
  40. #40 https://github.com/hiyouga License
  41. #41 https://github.com/hiyouga/LlamaFactory License
  42. #42 https://github.com/Prism-Shadow License
  43. #43 https://www.anthropic.com/news/claude-fable-5-mythos-5 License
Collection · 수집 범위 · 한계 · 정적 리시트

이 도시에가 무엇을 보고 무엇을 보지 않았는가

인벤토리 요약

지표
pinned commitb90f5aa76534ee714f0336e6b98827f58240d298
root tree36212e4ba1c2e6de1854555ec2d1969320e836fd
tree entries (recursive)1,767 (trees 150 + blobs 1,617)
패키지 수 (pnpm workspaces)8
선정된 substantive files29 / 30 default
inspected lines6,432 / 20,000 default
REST 요청13 / 45 default
bare-git fetchdepth=1, LFS/submodules disabled

정적 전용 리시트

다음 액션은 수행하지 않음: checkout, worktree, install, build, test, run, import, container, hooks, submodules, LFS, filters, textconv. execution-observed 증거는 0건이며 runtime confidence는 unknown이다.

공개 리시트 (public evidence)

본 문서와 함께 게시된 공개 증거: evidence/index.json · delivery-receipt.json. 원시 REST 응답·bare-git 오브젝트·사설 캡처 워크스페이스는 발행하지 않음.

Capture ID: bf9905ea-0bbf-4ee3-9d39-95ae77865fec · 생성 2026-08-26 · Prism-Shadow/penguin-harness @ b90f5aa76534 · Apache-2.0. 본 도시에는 원저작자 Yaowei Zheng (hiyouga) 및 PrismShadow AI Team 리포지토리의 커밋 고정 정적 캡처 파생 문서다. 재발행 시 원본 링크와 pinned commit 유지.