Roost: 클로드 코드용 단일 Go 바이너리 사이드바 - 클릭 가능한 프롬프트 히스토리, 파일 트리 및 알림

한 개발자가 tmux를 통해 SSH로 Claude Code를 사용할 때 세 가지 문제를 해결하기 위해 Roost를 만들었습니다: 클릭 가능한 프롬프트 기록, cat으로 파일을 열지 않아도 되는 파일 트리, Claude가 대기 중일 때의 푸시 알림입니다. Roost는 SSH 터널링을 위해 설계된 127.0.0.1:8080에서 웹 인터페이스를 제공하는 단일 Go 바이너리입니다.
주요 기능
- tmux로 구동되는 xterm.js 터미널: WebSocket 연결 끊김, 절전 모드, 서버 재시작에도 견딥니다. 모든 세션은
tmux new-session -A -s {id}로 시작됩니다. - 파일 트리: 파일 미리보기, 드래그 앤 드롭 업로드, tmux의
pane_current_path를 읽어 현재 디렉토리를 자동으로 따라갑니다 — 셸 통합이 필요하지 않습니다. - 활동 패널:
~/.claude/projects/*.jsonl을 읽어 모든 프롬프트를 표시합니다. 프롬프트를 클릭하면 터미널이 해당 턴으로 스크롤됩니다. - 상단 바 칩: 활성 모델과 최신 컨텍스트 토큰을 표시합니다.
- 푸시 알림: Claude Code의
Stop훅을 사용하여 Claude가 유휴 상태가 되면 탭이 백그라운드에 있어도 노트북에 알림을 보냅니다.
설계 결정
- 지속성 계층으로서의 tmux: tmux가 세션 지속성을 처리하므로 셸은 연결 끊김과 재시작에도 견딥니다. Roost는 WebSocket 브리지와 추가 전용 디스크 로그만 소유합니다.
- 인스턴스당 단일 사용자: 계정이나 RBAC가 없습니다. 호스트를 공유하는 두 사람은 각자 다른 포트에서
roost serve를 실행합니다. UNIX UID가 격리를 처리하고, 리버스 프록시가 다중 사용자 인증을 처리합니다. - 바닐라 JS, 빌드 단계 없음: 프론트엔드는
//go:embed all:web를 통해 임베드된 일반<script>파일입니다. 번들러가 없어 디버깅과 배포가 더 쉽습니다.
주목할 만한 버그 수정
tmux의 display-message -p '#{x}\x1f#{y}'는 UTF-8 로케일 없이 실행될 때 (예: systemd 유닛에서) 0x1f를 리터럴 밑줄로 반환합니다. 한 줄 수정: tmux -u. 필드 구분자로 tmux를 파이프할 경우 로케일을 고정하세요.
호환성
SSH 터널을 통한 Linux 서버 + Windows Chrome에서 테스트 완료. macOS 서버는 작동하지만 미흡한 부분이 있습니다. Codex 세션은 에이전트를 교체하면 작동합니다. 저장소: github.com/liamsysmind/roost. v0.1.0 tarball: github.com/liamsysmind/roost/releases/tag/v0.1.0.
📖 전체 소스 읽기: r/ClaudeAI
👀 See Also

오픈소스 AI 에이전트 파이프라인용 구조적 환각 검사기
새로운 오픈소스 도구는 AI 에이전트 파이프라인의 구조적 실패를 포착하기 위한 네 가지 억제기를 제공합니다. 여기에는 근거 강화, 프롬프트 주입 탐지, JSON 검증 및 도구 응답 확인이 포함됩니다. REST API와 MCP 서버로 모두 이용 가능하며, 월 500회 요청의 무료 티어를 제공합니다.

클로드 코드 템플릿을 위한 맞춤형 음성 추출 과정
개발자가 LLM-ism 금지 목록, 반-퍼포먼스 규칙, 형식별 음성 모드를 포함한 510줄의 SKILL.md 파일로 결과를 낸 Claude Code용 맞춤형 음성 스킬을 만들기 위한 3단계 추출 과정을 공유합니다. 이 오픈소스 템플릿은 10개 이상의 글 샘플을 사용하여 모든 언어에서 작동합니다.
TextGen (text-generation-webui)가 포터블 빌드로 네이티브 데스크톱 앱이 되다
LM Studio의 오픈소스 대안인 TextGen이 웹 UI에서 설치 없는 데스크톱 앱으로 발전했습니다. Windows, Linux, macOS용 휴대용 빌드, 완전한 프라이버시, 고급 양자화 지원을 제공합니다.

TypeScript 프로젝트용 MCP 서버, Claude Code의 Grep 패턴을 인덱싱된 심볼 조회로 대체
한 개발자가 TypeScript 프로젝트에서 Claude Code의 grep-and-guess 패턴을 인덱싱된 심볼 조회로 대체하는 MCP 서버를 구축했습니다. 이 도구는 심볼, 호출 위치, 임포트, 클래스 계층 구조의 실시간 SQLite 인덱스를 유지하여 테스트에서 토큰 사용량을 63-79% 줄였습니다.