어떤 도구인가요
Claude Code, Codex, OpenCode 같은 코딩 에이전트를 여러 프로젝트에서 쓰다 보면 홈 디렉터리에
세션과 연결 데이터가 계속 쌓입니다. 각 도구의 세션 선택기는 과거 세션을 다시 여는 데는 좋지만,
여러 프로젝트의 불필요한 세션을 골라 한꺼번에 정리하는 흐름은 없습니다. sclean은 이 빈틈을
채우는 에이전트 세션 정리 전용 로컬 TUI입니다 — 왼쪽에 프로젝트, 오른쪽에 세션을 놓고
왜 추천하는지를 한 줄로 보여주며, 휴지통을 거쳐 안전하게 정리합니다.
v0.1은 Claude Code(~/.claude)를 지원하며, Codex·OpenCode 등 다른 에이전트 지원을 이어서
추가할 계획입니다. 어떤 에이전트를 지원하든 제품명과 실행 명령은 sclean 하나로 유지합니다.
npx session-clean # 한 번 써보기
npm i -g session-clean && sclean
주요 기능
- 한눈에 보기 — 프로젝트별 세션 수·추천 수·선택 수를 왼쪽 패널에, 선택한 프로젝트의 세션을 오른쪽 패널에 표시합니다. 터미널이 좁으면 현재 패널만 전체 폭으로 보여줍니다.
- 설명 가능한 추천 — 오래된 세션(기본 30일), 사라진 프로젝트 경로, 메시지 1개짜리 짧은 세션, 종료된 하위 에이전트, 고아 데이터 등 5가지 규칙으로 정리 후보를 골라 이유를 함께 보여줍니다. 규칙은
F 화면에서 켜고 끌 수 있습니다.
- 안전한 정리 — 실행 중인 세션, 분석할 수 없는 형식, 스캔 이후 바뀐 파일은 정리를 차단합니다. 기본은 휴지통 이동이며 완전 삭제는
DELETE를 직접 입력해야 실행됩니다.
- 휴지통과 복원 — 옮긴 파일은
manifest.json과 함께 보관하고 R로 복원합니다. 원래 경로에 파일이 있으면 덮어쓰지 않고 충돌로 표시합니다.
- 색에 의존하지 않는 UI —
[x] 선택 · ★ 추천 · ! 분석 불가 · ▶ 실행 중처럼 기호만으로 상태를 구분할 수 있습니다.
어떻게 만들었나
- 언어/프레임워크: Rust (edition 2024) + ratatui + crossterm. 세션 스캔은 rayon으로 병렬화해 2,000개 세션 기준 성능 테스트를 둡니다.
- 데이터 안전성: 모든 대상 경로가 에이전트 데이터 디렉터리(현재
~/.claude) 안에 있는지 확인하고 심볼릭 링크는 따라가지 않습니다. 파일을 옮기기 전에 매니페스트를 먼저 기록해 도중에 강제 종료돼도 다음 실행에서 복구를 제안하고, history.jsonl 같은 공유 파일은 백업 → 임시 파일 → 원자적 교체로 수정합니다.
- 테스트: 실제
~/.claude를 건드리지 않고 임시 디렉터리 fixture만 쓰는 테스트 182개. 렌더 결과를 스냅샷으로 검증합니다.
- 배포: npm에 플랫폼별 네이티브 바이너리(
session-clean-darwin-arm64 등 4종)를 optionalDependencies로 올리고, 얇은 JS 런처가 os/cpu에 맞는 것을 찾아 실행합니다. 태그를 밀면 GitHub Actions가 네 플랫폼을 빌드·테스트해 npm과 GitHub Release에 올립니다.
출시
- npm
session-clean v0.1.0 (2026-08-26) — 실행 명령은 sclean
- 지원 에이전트: Claude Code (v0.1) · Codex, OpenCode 지원 예정
- 지원 플랫폼: macOS arm64/x64, Linux x64/arm64 (Windows는 WSL)