에이전트 코딩은 VS Code 채팅 상자 이상의 가치를 요구한다

발행: (2026년 6월 18일 AM 12:26 GMT+9)
10 분 소요

Source: [해커 뉴스](https://github. com/evanklem/polypore)

에이전시 데스크톱 IDE. 언어 무관, OS 무관. 모든 표면은 분할·재배열·불필요한 것을 닫는 드ockable 패널이다. 내장된 패널은 대부분의 워크플로우를 커버한다. 필요하면 SDK가 있다.

Tauri 2 · React 18 · Dockview · Monaco · MIT · 텔레메트리 없음

Demo

polyporedemo1080.mp4

Install

플랫폼에 맞는 빌드를 최신 릴리스에서 다운로드하세요. Polypore는 최초 설치 후 자동으로 업데이트됩니다.

Platform

  • Linux .AppImage (모든 배포판), .deb (Debian/Ubuntu), .rpm (Fedora/RHEL)
  • macOS .dmg (Apple 실리콘 또는 인텔)
  • Windows _x64_en-US.msi_ 혹은 _x64-setup.exe_

Linux에서 AppImage는 FUSE가 필요합니다 (fuse2 on Arch). 실행 파일에 실행 권한을 부여하고 실행하세요:
chmod +x Polypore_amd64.AppImage
./Polypore
_amd64.AppImage

소스에서 직접 빌드하려면 아래 시작하기를 참고하세요.

The idea

에이전시 툴링 공간은 빠르게 움직인다. 올바른 모델, CLI, 그리고 오케스트레이션 패턴은 일반적인 IDE 릴리스 주기보다 더 빨리 바뀐다. Polypore는 이를 따라갈 수 있도록 설계되어 있다. 모든 표면은 공유 계약 뒤에 격리된 패널로 구성된다. IDE의 어느 부분도 핵심부에 손을 대지 않고 교체, 확장, 혹은 제거할 수 있다.

이것은 나중에 에이전시 패널을 추가한 코드 에디터가 아니다. 레이아웃, 메모리 시스템, 디버깅 툴링, 그리고 MCP 서버는 모두 에이전트를 주요 행위자로 중심으로 설계되어 있다.

Panels

플러스(+) 탭에서 8개의 패널을 사용할 수 있습니다:

Panel | What it does
claude | Claude CLI 터미널, 슬래시 명령으로 빠른 시작
codex | Codex CLI 터미널, 슬래시 명령으로 빠른 시작
preview | 실시간 런타임 출력: 브라우저, CLI, 또는 어떤 개발 서버든
editor | Monaco 에디터, 프로젝트별 진단 제공
diff-stack | 옌 배치된 디프와 스크러블 히스토리 피드
terminal | 독립적 pty 터미널
debug | 실행 및 디버깅 검증
memory | 프로젝트 지식 베이스, [[위키 링크]]과 컨텍스트 인벤토리
agent | 형성 캔버스, 스킬, MCP 관리, 그리고 비밀

SDK and plugins

제3자 패널은 HostRpcServer 계약을 사용해 빌트인과 동일한 샌드박스 iframe으로 제공된다. cualquier 프레임워크로 플러그인을 작성하고 .polypore/plugins//에 넣으면 패널 스트립에 나타난다. 에이전트는 MCP 서버를 통해 내장된 패널과 동일하게 이를 제어할 수 있다.

polypore-ide MCP server

Node MCP 사이드가 Polypore와 함께 배포됩니다. Claude Code는 자동으로 .mcp.json에서 이를 감지합니다. 에이전트에게 22개 이상의 도구를 통해 직접 IDE 제어 기능을 제공합니다:

Namespace | What agents can do
polypore.debug.* | 세션 시작, 브레이크포인트 설정, 단계 실행, 콘솔/DOM/네트워크 캡처
polypore.memory.* | 지식 베이스 읽기/쓰기, 항목 연결, 전송 문서 작성
polypore.verify.* | 검증 스위트 선언 및 실행
polypore.tasks.* | 실시간으로 IDE에 표시되는 작업 생성 및 업데이트
polypore.phase.* | 실시간 UI에 워크플로우 단계 보고
polypore.secrets.* | 비밀 값 없이 중계된 HTTP 요청 수행
polypore.skills.* | 활성 스킬 라이브러리 읽기
polypore.format.* | 에디터에서 포맷터 트리거

Secret broker

비밀은 OS 키링에 저장됩니다. Polypore가 에이전트를 시작하면 등록된 모든 비밀을 환경에서 제거하고 POLYPORE_SECRET_HANDLE_ 플래그로 대체합니다. 에이전트는 polypore.secrets.use를 HTTP 요청으로 호출하고, Polypore는 값을 주입하여 되돌아올 때 마스킹합니다. 모델은 평문 jamais 보지 않습니다.

Polyflow skills

15개의 슬래시 명령어는 packages/polyflow/에 있으며 전체 개발 루프를 포괄합니다:

/polyflow /polyflow-go /polyflow-brainstorming /polyflow-writing-plans /polyflow-executing-plans /polyflow-tdd /polyflow-iterate /polyflow-debug /polyflow-review /polyflow-design-interface /polyflow-prd /polyflow-improve-architecture /polyflow-qa /polyflow-glossary /polyflow-compact

Stack

  • Shell → 쉘
  • Tauri 2, Rust → Tauri 2, Rust
  • Renderer → 렌더러 (React 18, Vite, 타입스크립트)
  • Panels → 패널 (Dockview)
  • Editor → Monaco
  • Terminal → xterm.js, portable-pty
  • MCP sidecar → MCP 사이드카 (Node, JSON‑RPC)
  • Persistence → 지속성 (SQLite via rusqlite)
  • Secrets → 비밀 (OS 키링 via keyring 크레이트)
  • File watchingnotify
  • Contracts → 계약 (JSON Schema, packages/sdk/에 코드 생성)

Getting started

선행 조건: Node 20+, Rust stable (rustup). Linux also needs libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev. npm ci
cd src-tauri && cargo build && cd ..
npm run app

렌더러 전용 개발 (Tauri 브리지 없이):
npm run dev

Scripts

Command | Description
npm run app | 데스크톱 앱을 Tauri로 실행
npm run app:build | 생산 번들 빌드
npm run dev | Vite 렌더러를 127.0.0.1:1420에서 개발
npm run typecheck | 코드 생성 후 tsc --noEmit 실행
npm test | vitest 렌더러 테스트 실행
npm run mcp | 현재 작업 디렉터리 대상 MCP 사이드카 실행
npm run mcp:smoke | JSON‑RPC 도구/리스트 스모크 테스트
npm run mcp:pipeline-smoke | 엔드투엔드 플러그인 + 스킬 + 비밀 테스트
cd src-tauri && cargo test | Rust 테스트 실행
cargo clippy --no-deps -- -D warnings | Rust 린트 (경고 오류 발생)

Architecture

/  │
├────────────────────────────────────────────────────────────────────┤
│ Renderer (React + Dockview)                                        │
│  ├─ HostRpcServer  (packages/host)  모든 플러그인을 위한 공유 계약 │
│  ├─ PolyporeHost 루프백, 내장 플러그인이 이를 사용함               │
│  ├─ PluginLoader, 서드파티 iframe이 이를 사용함                    │
│  └─ built-in panels (plugins/)                                    │
├────────────────────────────────────────────────────────────────────┤
│ polypore-ide MCP 사이드카 (Node, packages/mcp-server/)              │
│  ├─ 22개 이상 도구 → host_broker를 통해 실시간 상태 변경            │
│  └─ secrets.* → secret_broker, 값은 에이전트에게 절대 반환되지 않음 │
└────────────────────────────────────────────────────────────────────┘

┌────────────────────────────────────────────────────────────────────┐
│ Tauri 쉘 (Rust, src-tauri/)                                         │
│  ├─ host_broker (HTTP) → Tauri 이벤트를 렌더러에 전송                │
│  ├─ secret_broker (HTTP) → OS 키링, 평문 jamais 반환되지 않음       │
│  ├─ 에이전트 런타임 → CLI별 stdio 어댑터; ACP 옵션 추가            │
│  ├─ pty (portable-pty) 및 persistence (rusqlite)                    │
│  ├─ snapshotter 및 fs_watch (notify)                                 │
│  └─ plugin:// 프로토콜 → .polypore/plugins/ 제공                     │
├────────────────────────────────────────────────────────────────────┤
│ Renderer (React + Dockview)                                        │
│  ├─ HostRpcServer (packages/host)  모든 플러그인을 위한 공유 계약 │
│  ├─ PolyporeHost 루프백, 내장 플러그인이 이를 사용함               │
│  ├─ PluginLoader, 서드파티 iframe이 이를 사용함                    │
│  └─ built-in panels (plugins/)                                    │
├────────────────────────────────────────────────────────────────────┤
│ polypore-ide MCP 사이드카 (Node, packages/mcp-server/)              │
│  ├─ 22개 이상 도구 → host_broker를 통해 실시간 상태 변경            │
│  └─ secrets.* → secret_broker, 값은 에이전트에게 절대 반환되지 않음 │
└────────────────────────────────────────────────────────────────────┘

계약schemas/에 있으며, 수정한 스키마 후 npm run codegen을 실행하면 packages/sdk/src/types.gen.tspackages/sdk/src/validators.gen.ts로 코드 생성이 됩니다.

Environment variables

  • POLYPORE_PROJECT_ROOT: cwd를 워크스페이스 루트로 지정
  • POLYPORE_ENABLE_ACP=1: ACP 어댑터 사용 활성화
  • POLYPORE_CONFIG_DIR: 비밀 메타데이터 위치 (기본값 ~/.config/polypore)
  • POLYPORE_UPDATE_ENDPOINT: 자동 업데이트 엔드포인트를 대체

Contributing

자세한 내용은 CONTRIBUTING.md 를 참고하세요.

License

MIT

0 조회
Back to Blog

관련 글

더 보기 »

하라주쿠의 순간

!https://lh7-us.googleusercontent.com/BtsLQo0Q5aOwbYqqQ2qG8gOWAx-UB65p4aMp_UsJ1yKBDX7RdafkwVh7ryfjOLnaSO5595YB8zw0JRPgFINzJortBlCJhigXLawaDFy8AMXFYRSy-TLQRJGHqB...