logo

엡실론델타 테크블로그

코딩 에이전트와 단축의 예술. 그리고 Pi Web 자랑

TL;DR

  • Pi Web 을 나의 AI 분신인 JuunAI 를 이용해서 만들었다.
  • 나의 경우엔 Pi 를 이용해서 엄청난 토큰 효율성을 얻었다.
  • Pi Web 으로 핸드폰으로 코딩하세요.

서문

Pi coding agent logo

Pi coding agent 라는 것을 아십니까?
니콜라스 센세도 좋다고 추천한
최소한의 기능만을 담고있는 코딩 에이전트입니다.

기능도 없는데 왜 씀?

왜?

다들 Claude Code가 좋다고 찬양하죠?
저는 좀 다릅니다.

클로드 코드의 작동 방식이 저는 마음에 들지 않아요.
토큰 사용량도 너무 많고, 제 마음에 들게 코드를 작성해주지도 않아요.
기능도 너무 많아서 오히려 내가 원했던 기능을 안쓰기도 하구요.
내가 원하는대로 동작하지 않는 경우도 종종 있습니다.

그럼 Codex 라는 선택지도 있지 않냐?
코덱스는 제 입장에서는
“말은 잘 하는데 해놓은걸 보면…” 입니다.
(누군가는 코딩을 잘 해준다는 이야기도 하지만…)

문제가 뭘까 생각해보면
이 녀석들한테는 너무 많은 pre prompt가 준비되어 있다는겁니다.

만.단.지.예 (만물의 단축은 지고의 예술)

그런 점에서 Pi는 모든것을 단축했습니다.
그리고 Pi Web 을 만들기 위해 같이 작업한 JuunAI
단축을 핵심 가치로 만든 하네스죠.
(말이 짧음. 싸가지가 없음)

Codex를 이용해서 GPT-5.5를 쓰는 것 보다
PiJuunAI 를 이용해서 작업하면
제가 원하는대로 작업도 되고 토큰 효율성도 좋았습니다.

JuunAI

JuunAI 에는 제 생각과 의도가 온전히 담겨있는데
대부분의 개발자들은 공감하거나 이해하지 못하는 것들도 담겨있어서
누구에게나 좋다고 추천할 순 없습니다.

다만 제 성격과 특성을 이용해 작업을 할 때
thinking level을 low로 내려도 high 일 때랑 큰 변화를 느끼지 못했습니다.
그래서 100달러짜리 요금제로도 원없이 써도 토큰이 남는 상황입니다.
(누구에게나 해당되는건 아님)

단축이 누구에게나 예술은 아닌데…

알아

우리 회사의 제프와 저는 완벽하게 정 반대의 성격입니다.
제프는 작업을 시작하니 전에 계획을 최대한 꼼꼼하게 세우는 편이고
저는 계획따위 없이 목표를 향해 일단 한 걸음 먼저 가보는 편입니다.

뭐가 더 좋고 뛰어나다고 할 순 없습니다.

제프의 경우엔 계획을 먼저 세우는 편이기에 방향이 잘 흔들리지 않으나, 시작이 늦고
저희 경우엔 시작이 빠르고 미리 여러 시행착오를 겪는 편이지만 방향이 잘 흔들립니다.

그래선지 제프는 JuunAI 를 그리 마음에 들어하진 않았습니다.
JuunAI 는 생각을 짧게 하고 이유는 생략하며 빠른 수행과 결과만을 도출하는 타입인데
제프는 생각을 오래하고 이유를 알아야 하며 결과를 위한 과정도 중요하게 여기죠.

그래서 다른 사람들에게 JuunAI 를 추천하진 않습니다.
그냥 제 개인용 분신이니까요.

본론

눕방

저는 누워서 핸드폰으로 코딩하는걸 좋아합니다.
코딩을 하기 위해 노트북 앞에 앉아야만 하는 상황을 싫어하죠.
밥먹을 때도, 이동중에도, 누워서도 코딩하세요

그래서 만든게 Pi Web 입니다.
노트북에 Pi Web 켜놓고 tailscale 같은 VPN을 이용해 접근해서
핸드폰으로 Pi 를 켜서 코딩을 시키는거죠.

Pi 자체는 마음에 들었는데,
Web UI는 아무리 찾아도 좋은게 없었습니다.
Claude Code나 Codex의 경우엔 Cloud CLI 라는게 있는데 말이죠.

Pi Web 자랑타임

채팅영역

이런걸 직접 만들었습니다.
솔직히 여기까지는 굉장히 기초적인거라 자랑거리는 아니지만
진짜 자랑거리는 그 다음입니다.

디스코드 알림
텔레그램 알림

이런 도구의 가장 큰 문제는 ‘완료 알림’ 이죠.
PWA로 푸시알림을 보내려면 HTTPS 가 필요한데,
로컬 실행 도구인 입장에서 애초에 불가능한 전제라 여겨져서
디스코드와 텔레그램으로 알림을 받을 수 있게 만들었습니다.

파일 트리
깃 커밋 내역

그리고 나름 신경써서 꾸며둔 vscode식 파일 트리와
Git 커밋 내역을 볼 수 있는 부분입니다.

파일 트리의 텍스트 기반 파일은 눌러서 직접 수정도 가능한 에디터 기능도 담고있죠.

쉘 명령어 입력부분

개인적으로 가장 킥으로 여기는 부분입니다.
쉘 명령어를 직접 입력할 수 있는 부분 말이죠.
사람에 따라 다를 수 있지만 저는 굉장히 유용하게 쓰고있습니다.

핸드폰으로 AI한테 일 시키다보면 가끔 직접 쉘 명령어 넣고싶은 답답한 상황이 옵니다.
AI한테 직접 시키면 뭔가 내가 원하는대로 시원하게 안해줄 때도 있구요.
아니면 귀찮게 되물어보거나.

그럴 때에 그냥 직접 넣어버리는겁니다.
sudo systemctl restart 라던가, sudo reboot 라던가, rm -rf 라던가 cp -r 이라던가
그런 것들 말이죠.
버벅거리면 시원하게 sudo reboot 넣어버릴 수 있음

개인적인 사용 요령

저는 라즈베리파이에 올려두고 OpenVPN으로 네트워크에 접근한 뒤
Route53에서 도메인 설정해두고 Caddy로 HTTPS 올려서 Unsafe 상태로 브라우저로 접근해서 씁니다.
디스코드 알림을 설정해둬서 다 되고나면 디스코드로 알림이 오죠.

whisper

키보드로 입력하기 귀찮으면 마이크 기능을 이용해서 말로 시키기도 하구요.
Whisper WASM 이라는 라이브러리를 쓰는데
브라우저에서 돌릴 수 있을만한 가벼운 모델로 STT를 수행해줍니다.
(마이크 기능땜에 굳이 도메인 설정하고 HTTPS 해뒀다능)
WASM과 WebGPU 이용한 음성 모델인데 핸드폰에선 가벼운거밖에 못돌려서 좀 인식률이 안좋지만

여러개 돌려놓고
포켓몬 배틀 한판 하고(?)
디스코드 알림 왔는지 보고
됐으면 확인하고 다음꺼 시키고
또 포켓몬 배틀 한판 하고(?)
그렇게 하면 됩니다 ㅋㅋㅋ

눈과 눈이 마주치면 포켓몬 배틀