멀티 프로바이더 LLM 지원 자기 확장 코딩 에이전트 'pi' 깃허브 트렌딩 합류
earendil-works가 만든 자기 확장형 코딩 에이전트 'pi'가 깃허브 트렌딩에 합류했다. 프로젝트 도메인 pi.dev는 exe.dev가 기증했다. 저장소에는 pi 에이전트 하니스 프로젝트와 자기 확장 가능한 코딩 에이전트가 함께 들어 있다.
구성 패키지는 네 개다. pi-coding-agent는 대화형 코딩 에이전트 CLI, pi-agent-core는 도구 호출과 상태 관리를 담당하는 에이전트 런타임, pi-ai는 OpenAI·앤스로픽·구글 등을 묶은 통합 멀티 프로바이더 LLM API, pi-tui는 차등 렌더링을 지원하는 터미널 UI 라이브러리다. 슬랙·채팅 자동화와 워크플로우는 별도 저장소 earendil-works/pi-chat에서 다룬다.
기여 정책은 신규 기여자의 이슈와 PR을 기본으로 자동 닫는 방식이다. 메인테이너가 매일 자동 닫힌 항목을 검토한다고 CONTRIBUTING.md에 안내한다.
프로젝트는 오픈소스 작업에 pi 등 코딩 에이전트를 쓰는 사용자에게 세션 공개를 권한다. 공개 OSS 세션 데이터가 장난감 벤치마크 대신 실제 작업·도구 사용·실패·수정 사례로 코딩 에이전트를 개선하는 데 도움이 된다는 입장이다. 세션 공유는 badlogic/pi-share-hf로 수행하며 Hugging Face 계정과 Hugging Face CLI가 필요하다.
프로젝트는 npm 의존성 변경을 검토 대상 코드 변경처럼 다룬다. 직접 외부 의존성은 정확한 버전으로 고정하고, 내부 워크스페이스 패키지만 버전 범위를 유지한다. .npmrc에는 save-exact=true와 min-release-age=2를 설정해 npm 의존성 해결 단계에서 같은 날 공개된 의존성을 회피한다.
package-lock.json을 의존성의 단일 출처로 삼는다. 사전 커밋 훅이 락파일의 우발적 커밋을 막으며 PI_ALLOW_LOCKFILE_CHANGE=1을 설정해야 통과한다. npm run check 명령은 고정된 직접 의존성, 네이티브 TypeScript import 호환성, 코딩 에이전트용으로 생성된 shrinkwrap을 검증한다.
배포되는 CLI 패키지에는 루트 락파일에서 생성된 packages/coding-agent/npm-shrinkwrap.json이 포함돼 npm 사용자 측 전이 의존성까지 고정한다. 릴리스 스모크 테스트는 npm run release:local로 빌드와 패키징을 수행하고, 저장소 바깥에 격리된 npm 및 Bun 설치를 만들어 본 뒤 출시한다. 로컬 릴리스 설치, 문서 안내 npm 설치, pi update --self는 지원되는 범위에서 --ignore-scripts 옵션으로 동작한다.
CI는 npm ci --ignore-scripts로 설치하고, 스케줄된 GitHub 워크플로가 npm audit --omit=dev와 npm audit signatures --omit=dev를 정기적으로 돌린다. shrinkwrap 생성에는 의존성 라이프사이클 스크립트에 대한 명시적 허용 목록이 있어, 새 라이프사이클 스크립트 의존성은 검토를 거치기 전까지 검사를 통과하지 못한다. 라이선스는 MIT다.