Pixel office.
이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.
<h1 align="center"> <a href="https://github.com/pixel-agents-hq/pixel-agents/discussions"> <img src="webview-ui/public/banner.png" alt="Pixel Agents"> </a> </h1>
<h2 align="center" style="padding-bottom: 20px;"> AI 에이전트가 실제 작업을 수행하는 게임 인터페이스 </h2>
<div align="center" style="margin-top: 25px;">
</div>
<div align="center"> <a href="https://marketplace.visualstudio.com/items?itemName=pablodelucca.pixel-agents">🛒 VS Code Marketplace</a> • <a href="https://github.com/pixel-agents-hq/pixel-agents/discussions">💬 Discussions</a> • <a href="https://github.com/pixel-agents-hq/pixel-agents/issues">🐛 Issues</a> • <a href="CONTRIBUTING.md">🤝 Contributing</a> • <a href="CHANGELOG.md">📋 Changelog</a> </div>
<br/>
Pixel Agents는 멀티 에이전트 AI 시스템을 실제로 보고 관리할 수 있는 형태로 변환합니다. 각 에이전트는 픽셀 아트 사무실의 캐릭터가 됩니다. 걸어 다니고, 책상에 앉고, 수행 중인 작업을 시각적으로 반영합니다(코드 작성 시 타이핑, 파일 검색 시 읽기, 주의가 필요할 때 대기).
동일한 소스 트리에서 두 가지 형태로 제공됩니다:
pablodelucca.pixel-agents. 에이전트가 VS Code 터미널에 생성되고, 캐릭터는 패널 영역에 렌더링됩니다.npx pixel-agents는 로컬 Fastify 서버를 시작하고 브라우저 SPA로 사무실을 제공합니다. tmux 워크플로우, 원격 세션 또는 데스크톱 VS Code가 없는 환경에서 유용합니다.내부적으로 아키텍처는 완전히 에이전트 및 플랫폼에 독립적입니다. 타입화된 HookProvider 인터페이스가 통합 경계를 정의하므로 새 AI 도구를 추가하는 것은 단일 하위 디렉토리 코드로 가능합니다. 현재 Claude Code가 참조 구현이며, Codex, Gemini, Cursor 등이 로드맵에 있습니다.
!Pixel Agents screenshot
<p align="center"> <img src="webview-ui/public/characters.png" alt="Pixel Agents characters" width="320" height="72" style="image-rendering: pixelated;"> </p>
Pixel Agents를 사용하려면 가장 쉬운 방법은 VS Code 확장을 다운로드하는 것입니다. 코드를 실험하거나 개발하거나 기여하려면:
git clone https://github.com/pixel-agents-hq/pixel-agents.git
cd pixel-agents
npm install # npm workspaces가 루트 + server + webview-ui를 한 번에 설치
npm run build
그런 다음 VS Code에서 F5를 눌러 Extension Development Host를 실행합니다.
독립형 CLI를 로컬에서 시도하려면:
node dist/cli.js # 또는 게시 후 npx pixel-agents [--port 3100]
Fastify 서버를 시작하고 http://localhost:3100에서 웹뷰 SPA를 열며, 동일한 ~/.pixel-agents/ 네임스페이스에서 후크와 레이아웃을 VS Code 확장과 공유합니다(둘 다 실행 중인 경우).
웹뷰의 브라우저 미리보기 버전은 VS Code 확장 빌드와 별도로 빌드하여 Vercel에 스테이징할 수 있습니다.
npm run test
npm run e2e
npm run e2e -- --attach-videos-on-success
npm run vercel:prepare
npm run test:report를 별도로 실행하면 전체 Vercel 출력을 준비하지 않고 결합된 Allure 보고서를 로컬에서 얻을 수 있습니다.
스테이징된 Vercel 출력은 /webview/에서 독립형 웹뷰를, /reports/allure/에서 Linux Allure 보고서를 제공하며, e2e, server, webview 스위트를 결합합니다. GitHub Actions 배포 작업은 VERCELTOKEN, VERCELORGID, VERCELPROJECT_ID 시크릿을 필요로 합니다.
--dangerously-skip-permissions(모든 도구 승인 프롬프트 우회)로 실행하는 옵션이 있습니다.내장 편집기를 사용하여 사무실을 디자인할 수 있습니다:
그리드는 최대 64×64 타일까지 확장 가능합니다. 현재 그리드 외부의 고스트 테두리를 클릭하여 확장합니다.
모든 사무실 에셋(가구, 바닥, 벽)은 이제 완전히 오픈 소스이며 이 저장소의 webview-ui/public/assets/ 아래에 포함되어 있습니다. 외부 구매나 가져오기가 필요 없으며 모든 것이 즉시 작동합니다.
각 가구 항목은 assets/furniture/ 아래에 자체 폴더에 있으며, 스프라이트, 회전 그룹, 상태 그룹(켜기/끄기), 애니메이션 프레임을 선언하는 manifest.json이 포함되어 있습니다. 바닥 타일은 assets/floors/의 개별 PNG이고, 벽 타일 세트는 assets/walls/에 있습니다. 이 모듈식 구조는 코드를 건드리지 않고 에셋을 쉽게 추가, 제거 또는 수정할 수 있게 합니다.
새 가구 항목을 추가하려면 webview-ui/public/assets/furniture/에 PNG 스프라이트와 manifest.json이 있는 폴더를 만든 다음 다시 빌드하세요. 에셋 관리자(scripts/asset-manager.html)는 매니페스트를 만들고 편집하기 위한 시각적 편집기를 제공합니다.
외부 디렉토리의 가구를 사용하려면 설정 → Add Asset Directory를 엽니다. 전체 매니페스트 형식과 타사 에셋 팩 사용 방법은 docs/external-assets.md를 참조하세요.
캐릭터는 JIK-A-4, Metro City의 훌륭한 작업을 기반으로 합니다.
Pixel Agents에는 두 가지 병렬 감지 경로가 있습니다:
SessionStart, PreToolUse, Notification, Stop 등)를 로컬 Fastify 서버(POST /api/hooks/:providerId)에 POST합니다. 즉각적이고 안정적입니다. 서버 검색은 ~/.pixel-agents/server.json을 통해 이루어집니다.~/.claude/projects/<project-hash>/<session-id>.jsonl에서 JSONL 트랜스크립트 파일을 폴링합니다. 후크가 설치되지 않은 경우 사용됩니다.단일 HookProvider.normalizeHookEvent(raw)가 각 CLI의 후크 페이로드를 표준 AgentEvent로 변환합니다. 공유 AgentRuntime이 AgentEvent.kind에 따라 디스패치하고, AgentStateStore를 변경하며, 브로드캐스트 레이어가 상태 이벤트를 활성 전송을 통해 타입화된 ServerMessage로 변환합니다.
웹뷰는 캔버스 렌더링, BFS 경로 찾기, 캐릭터 상태 머신(대기 → 걷기 → 타이핑/읽기)을 갖춘 경량 게임 루프를 실행합니다. 모든 것은 정수 확대/축소 수준에서 픽셀 단위로 완벽합니다. 게임 상태는 React 외부의 명령형 OfficeState 클래스에 있으며, React 컴포넌트는 렌더링 중에 이를 읽지만 상태를 소유하지 않습니다.
Claude Code에 대한 수정은 필요하지 않습니다. Pixel Agents는 순수하게 관찰적입니다.
4개 패키지 모노레포, npm workspaces:
core/ — TypeScript 전용 프로토콜 + 인터페이스(AsyncAPI 3.0 계약, HookProvider, MessageTransport, StateAdapter). 런타임 부작용 없음.server/ — Fastify v5 (HTTP + WebSocket), Vitest. AgentRuntime, AgentStateStore, SessionRouter, DismissalTracker, 파일 감시, 트랜스크립트 파싱, 프로바이더를 소유합니다. npx pixel-agents CLI를 제공합니다.adapters/vscode/ — VS Code Extension API. 데스크톱 표면을 위해 core/ + server/를 구성합니다.webview-ui/ — React 19, Vite, Canvas 2D. 전송에 독립적(VS Code에서는 PostMessageTransport, 브라우저에서는 WebSocketTransport).빌드: esbuild (확장 + CLI + 후크 스크립트), Vite (웹뷰 SPA). 테스트: Vitest (서버 + 웹뷰 단위), Playwright (실제 VS Code 및 독립형 Fastify에 대한 e2e).
code 명령어만), 에이전트는 홈 디렉토리에서 시작됩니다. 이는 완전히 지원되지만, Claude 세션이 홈 디렉토리를 프로젝트 루트로 사용하여 ~/.claude/projects/ 아래에 추적된다는 점을 인지하세요.에이전트가 유휴 상태로 멈추거나 생성되지 않는 경우:
[Pixel Agents]를 검색하여 프로젝트 디렉토리 확인, JSONL 폴링 상태, 경로 인코딩 불일치, 인식되지 않은 JSONL 레코드 유형에 대한 자세한 로그를 확인합니다.장기적인 비전은 AI 에이전트를 관리하는 것이 심즈를 플레이하는 것처럼 느껴지지만 결과는 실제 작업물인 인터페이스입니다.
이를 위해 아키텍처는 모든 수준에서 모듈식이어야 합니다: