Claude Code용 웹 UI 'pAInapple Code'를 9개월간 개발해 오늘 공개합니다
I spent 9 months building my own web UI for Claude Code - today I'm finally releasing pAInapple Code
핵심 요약
Claude Code를 위한 웹 UI로, 자동 저널링과 섀도우 Git 기능을 통해 작업 기록을 체계적으로 관리할 수 있습니다.
- 자동 저널링 — 작업 세션마다 AI가 요약본을 생성해 섀도우 Git에 커밋함
- 웹 UI 환경 — 터미널 대신 브라우저에서 멀티 세션 및 파일 미리보기 지원
- 보안 및 격리 — Docker 컨테이너 실행을 권장하며 로컬 환경에서 직접 구동 가능
- 오픈 소스 — AGPL-3.0 라이선스로 공개되어 누구나 설치 및 사용 가능
github.com
원문 사이트로 이동
다들 안녕,
퇴근하고 9개월 동안 틈틈이 갈아 넣은 pAInapple Code를 드디어 공개한다. Claude Code용 웹 UI 클라이언트인데, LLM이 매 턴마다 자동으로 요약한 저널을 기록해 주는 게 핵심이야.
원래는 노트북에 code-server 띄워놓고 아이패드로 작업했는데, 버그 때문에 하도 빡쳐서 그냥 직접 만들기로 했어. 처음엔 VS Code 프로토콜 써서 code-server용 커스텀 클라이언트를 만들까 싶었는데, 나한테 필요한 기능들을 좀 넣고 싶더라고.
이건 내부적으로 Claude Code CLI를 돌리는 방식이라 기존 구독 플랜 그대로 쓸 수 있어. 터미널에서 Claude Code 돌리는 걸 대체한다고 보면 돼. 멀티 세션 탭, 파일 미리보기, 실제 터미널, 프롬프트 기록, 스킬/에이전트 자동 완성 같은 실무에 필요한 기본 기능은 다 들어있고, PWA로 설치도 가능해.
가장 쩌는 기능 중 하나는 섀도우 Git을 활용한 자동 저널(Auto Journal)이야. 매 턴이 끝날 때마다 백그라운드에서 세션 포크를 하나 따서 Haiku가 문제 해결 과정이랑 결정 사항 같은 걸 요약해 줘. 이 요약본이 프로젝트 디렉토리 밖에 따로 저장되는 섀도우 Git 저장소의 커밋 메시지로 들어가는 거지.
덕분에 어떤 변경 사항이든 그 작업을 수행했던 당시의 설명이랑 같이 기록을 쉽게 확인할 수 있어. 변경 사항을 검토하거나 되돌릴 때 쓸 수 있는데, 이걸 완벽한 백업 용도로 쓰기보다는 문맥 파악용 도구로 생각하는 게 좋아.
나도 개발 첫날부터 pAInapple을 써왔고, 자동 저널 기능은 2026년 시작 직전에 추가했어. 그래서 지금은 올해 내가 했던 작업들, 결정 사항, 문맥까지 싹 다 검색 가능한 기록으로 남아있지. 새로운 세션 시작할 때마다 일일이 배경 설명할 필요 없이, 그냥 섀도우 Git 헬퍼(pAInapple에 포함된 에이전트)한테 가져오라고 시키면 끝이야.
프로젝트마다 다르긴 한데, 자동 저널이 토큰 사용량의 5~10% 정도를 차지해. 내 뇌피셜로는 이 오버헤드가 나중에 충분히 상쇄된다고 봐. 나중에 세션 시작할 때 파일 뒤져가면서 뭔 일이 있었는지 파악하는 대신, 정확한 문맥을 바로 불러올 수 있으니까.
참고로 이 프로젝트는 '바이브 코딩'으로 만든 거라, 파이썬 서버가 웹 UI 터미널이랑 파일 시스템에 OS 사용자 권한으로 접근한다는 점을 꼭 기억해. 보안 신경 써서 만들긴 했지만, 어디선가 RCE가 터질 가능성이 아예 없다고는 장담 못 해. 그래서 메인 OS에서 직접 돌리는 건 비추야. 이건 pAInapple뿐만 아니라 쉘이나 파일 시스템 접근 권한이 있는 모든 로컬 AI 코딩 툴에 해당하는 경고니까 알아두고.
PyPI에 올려놨으니까 pipx 깔려있으면 아래 명령어로 바로 설치해:
pipx install painapple-code
프로젝트 여러 개 있는 디렉토리 지정
cd ~/dev/
아니면 특정 프로젝트 하나만 지정
cd ~/dev/my-project/
추천: 컨테이너에서 실행
(Docker나 Podman 필요 — macOS, Linux, WSL2)
painapple --in-docker
아니면 OS에서 바로 실행 (격리 안 됨!)
painapple
--workspace 옵션으로 경로 지정 가능
painapple --workspace ~/dev/
작업 디렉토리는 pAInapple이 프로젝트를 스캔할 경로를 알려주는 용도일 뿐, 그 자체로 격리되는 건 아니야. --in-docker를 쓰면 Claude Code가 세팅된 간단한 개발 컨테이너 안에서 돌아가고, 지정한 디렉토리만 마운트해. (컨테이너가 마운트된 모든 걸 볼 수 있으니까 OS랑 격리되는 거지, 코드랑 격리되는 건 아니라는 점 참고해.)
실행하면 로그인 URL이 뜨는데, 브라우저에서 열면 바로 접속돼. 풀 PWA니까 브라우저에서 바로 독립형 앱으로 설치할 수 있어. (아이패드나 폰으로 접속하는 법은 문서의 모바일 가이드를 확인해.)
