pi로 구현한 멋진 것들
Cool things with pi
핵심 요약
pi를 활용해 자신만의 개발 환경을 구축하고 최적화해 나가는 과정을 공유합니다.
- 개발 환경 구축 — WSL과 컨테이너 기반의 원격 접속 환경을 구성함
- 성능 최적화 — 메모리 절약을 위해 파이썬 커널을 공유하고 패치함
- 모델 관리 자동화 — 비용과 성능을 고려해 최적의 AI 모델을 선택하는 시스템을 구축함
- 지속적 개선 — 코드 인덱싱과 서브 에이전트 활용으로 작업 효율을 높임
다들 안녕,
pi를 알게 된 이후로 내가 해본 것들을 좀 공유하려고 해. 혹시 이걸 보고 새로운 아이디어를 얻는 사람이 있을지도 모르니까. 내 익스텐션을 직접 공유할 생각은 없지만, 아이디어는 나눌 수 있잖아.
- 처음 pi를 발견했을 때, 난 그냥 VS Code를 대체할 "괜찮은" 툴을 찾고 있었어. 더 나은 거 말이야. 어쨌든 당시엔 경험이 별로 없었거든. 몇 가지 요구사항이 있었는데, 여러 제공업체를 쓰고 싶고, 돈은 너무 많이 쓰고 싶지 않고(취미니까), 원격으로 하네스(harness)에 접근할 수 있어야 한다는 거였지.
- 일단 WSL에 리눅스를 깔고 VS Code 에이전트들의 도움을 받았어. 그러고 나서 그 WSL 안에 컨테이너를 돌리는 하네스를 구축했지. 그게 내 VPS로 SSH 터널을 뚫어줘. VPS는 OTP랑 Yubikey로 보안을 걸어놨고, 로컬 터미널에 접근 못 할 때 웹 UI를 쓸 수 있게 HTTP 리버스 프록시 역할을 해.
- pi에 익스텐션을 이것저것 깔아서 써보기 시작했어. 근데 써보니까 적은 게 더 낫더라고. 대부분 커스텀이 필요한데, 그게 다 내 유지보수 노가다니까.
- 지난 몇 주 동안 하네스도 계속 발전했어. 지금은 메일이랑 안티스팸 기능을 개선하는 프로젝트를 하나 돌리고 있는데(SpamAssassin이 놓친 걸 무료 모델한테 물어보는 학습용 훅도 포함해서), 하네스 개선 작업도 병행하고 있지.
- 최근에 하네스에 진짜 쩌는 걸 추가했어. pi를 bun으로 컴파일해서 대부분의 컴포넌트를 돌리니까 엄청 빠르고 안정적이야. 긴 세션에서도 잘 돌아가고, 서브 에이전트 10~20개를 동시에 돌려도 문제없어. 파이썬 커널이랑 LSP 같은 걸 쓰고 있는데, 메모리가 한정적이라 모든 (서브)세션이 각각 커널을 띄우지 않게 패치까지 해놨지.
- pi-durable 서브 에이전트를 위한 나만의 익스텐션 패키지를 만들었어. 기본 기능은 다 있는데 fabric이나 다른 것들보다 훨씬 빠르고 안정적이야. 필요한 익스텐션이 있으면 포크 따서 고생할 필요 없이 그냥 내가 직접 만들어버려. 최근에 만든 쩌는 기능은 서브 에이전트 모델 통계 기능인데, 'jev'라는 녀석이 구독 예산, 비용, 테스트 실패율 같은 걸 따져서 어떤 모델이 제일 나은지 결정해. jev 돌리는 데 하루에 2센트밖에 안 드는데, 비용이랑 예산 관리가 다 자동화돼서 제일 싼 모델(opencode, openrouter, codex 등)을 알아서 골라줘.
- 'blackhole' 익스텐션은 무료 모델들을 여러 개 돌릴 때 써. 무료 모델들이 좀 불안정할 때가 많아서 성공/실패 통계를 계속 관리하거든. 덕분에 압축(compaction)도 더 빠르고, 끝없는 세션에서도 컨텍스트가 가볍게 유지돼. 메인 모델이 할 일을 10% 정도 무료 모델한테 떠넘기는 셈이지.
- zg를 써서 코드를 로컬에 인덱싱해두고, 모델이 코드 전체를 grep으로 뒤지는 대신 이걸 쓰게 만들었어. grep, rg, zg 중에 뭐가 제일 나은지 스스로 판단하는 셀프 가이던스 기능도 개발됐고.
4주마다 하네스가 계속 바뀌면서 발전하는 느낌이야. 프로젝트 자체보다 하네스 만지는 데 시간을 50%나 쓰고 있긴 하지만 말이야. 그래도 처음엔 며칠만 지나면 하네스가 개판이 됐는데, 지금은 절대 안 그래. 지금까지 아주 즐거운 여정이었어. pi를 만든 사람한테 진짜 고마워. 요즘 널린 AI 관련 쓰레기들(AI 비용 모델, 사용성, 문제점, 거품... 1999년 모뎀 느려 터졌을 때 하루 종일 접속하면 돈 엄청 깨지던 시절이 생각나)이랑 비교하면 pi는 진짜 물건이거든.
다들 아이디어 있으면 공유해 줘!

