Claude Code 및 Codex의 오래된 대화를 휴지통으로 옮기는 CLI 'aiClean' 제작
요약
Rust 기반 CLI 도구인 aiClean을 소개합니다. 이 도구는 Claude Code 및 Codex의 로컬 대화 로그를 관리하며, 단순히 날짜로 삭제하는 대신 최종 메시지를 확인하여 오래된 대화를 OS 휴지통으로 안전하게 이동시킵니다. 사용자는 `check` 명령어로 미리 검토하고, 매월 10일에 자동 실행을 예약할 수 있습니다.
핵심 포인트
- 대화의 최종 메시지를 기반으로 로그를 판별합니다.
- 오래된 대화는 OS 휴지통으로 안전하게 이동됩니다.
- CLI 사용 시 `check`로 사전 확인 후 `run` 명령어로 실행 가능합니다.
- macOS launchd 및 Windows 작업 스케줄러에 자동화를 설정할 수 있습니다.
Claude Code나 Codex의 대화 로그는 계속 늘어납니다. 저장 폴더의 날짜를 기준으로 삭제할 경우, 최근에 다시 시작한 대화까지 지워버릴 수 있습니다.
그래서 대화의 최종 메시지를 확인하고 오래된 대화를 OS의 휴지통으로 옮기는 Rust 기반 CLI인 aiClean을 만들었습니다. v0.1.2는 macOS와 Windows를 지원합니다. 처리는 로컬에서 이루어지며, CLI에 계정 등록이나 로그인이 필요하지 않습니다.
'오래된 대화'의 판별
대상은 Claude Code 및 Codex의 로컬 저장 데이터입니다. ChatGPT 웹 버전 등의 클라우드 기록은 대상이 아닙니다.
기준은 OS의 시간대 기준으로 당월 1일 0시 이전에 마지막 실제 메시지가 있었던 대화입니다. 사용자의 전송과 어시스턴트의 응답 완료를 계산합니다. 파일의 업데이트 날짜나 생성 날짜, 아카이브 날짜, 도구 실행/메타데이터의 일시는 판별에 사용하지 않습니다.
이번 달의 대화, 날짜가 불분명한 경우, 미완료/대기 중인 처리, 유효한 goal, 자식 세션과의 관계 등 안전하게 다룰 수 없는 대화는 건너뜁니다.
먼저 확인만 하기
aiClean check claude codex
check는 읽기 전용입니다. 후보 대화, 건너뛴 대화, 원본 데이터의 용량, 휴지통에서 복원 가능한 용량을 표시합니다. 대화 데이터나 처리 기록을 생성하거나 변경하지 않습니다.
claude와 codex는 명시하여 지정합니다. 한쪽만 지정할 경우 aiClean check codex입니다.
실행 및 매월 예약
정리할 때는 Claude Code 및 Codex, 그리고 그것들을 사용하는 앱이나 에디터를 종료한 후 실행해야 합니다. 실행 중인 앱을 감지하면 처리를 거부하며, aiClean이 임의로 종료하지는 않습니다.
aiClean run claude codex
run은 매월 10일 이후에 실행할 수 있으며, 서비스별로 해당 월의 정리는 한 번만 성공합니다.
자동 실행을 설정하려면 다음 명령어를 사용합니다.
aiClean enable claude codex
aiClean status claude codex
macOS에서는 launchd에, Windows에서는 작업 스케줄러(Task Scheduler)에 매월 10일 03:30, OS의 로컬 시간으로 일정을 등록합니다. Windows는 현재 사용자가 OS에 로그인한 상태에서 실행하며, 비밀번호를 저장하지 않습니다.
예약 시간에 앱이 작동하고 있어도 정리를 거부합니다. 종료한 후 수동으로 run을 실행해 주세요. status로 OS 작업의 상태나 결과를 확인할 수 있습니다.
예약을 중지하려면 다음 명령어를 사용합니다.
aiClean stop claude codex
향후 실행을 비활성화하고, 정리 중이라면 다음 대화로 넘어가기 전에 멈춥니다. 강제 종료하지는 않습니다.
휴지통과 용량의 관계
원본 로그와 필요한 데이터베이스 행을 복원용 묶음에 저장 및 검증한 후, 먼저 묶음을 OS 표준 휴지통으로 옮깁니다. 이동할 위치를 복원 기록에 확실히 저장한 후에 원본 데이터를 제거합니다. aiClean 자체는 휴지통을 비우지 않습니다.
정리에는 OS의 '30일 후 휴지통에서 자동 삭제' 설정이 유효해야 검증할 수 있습니다. macOS는 Finder 설정을 확인하고, Windows는 Storage Sense의 문서화된 정책을 확인하며, 검증할 수 없는 GUI 설정이나 OS 드라이브 이외의 복원 위치에서는 실행을 거부합니다. aiClean이 OS 설정을 변경하지는 않습니다.
휴지통에 있는 동안에도 용량을 사용하므로, 정리 직후에 여유 공간이 늘어난다고 보장할 수는 없습니다. SQLite의 행 삭제도 데이터베이스 내부 영역을 재사용 가능하게 만드는 처리일 뿐입니다. 파일 축소를 보장하지 않으며 큰 임시 영역이 필요한 VACUUM은 자동 실행하지 않습니다.
되돌리고 싶을 때
aiClean undo claude codex
서비스별로 가장 최근의 미복원 배치(batch)를 되돌립니다. 중단된 정리/복원도 이 명령어로 복구할 수 있습니다. 복원 위치에 무관한 파일이나 행이 있으면 덮어쓰지 않고, 충돌로 거부합니다.
OS가 휴지통에서 삭제한 데이터는 되돌릴 수 없습니다. 복원을 위해서는 aiClean의 처리 기록도 필요하므로, 업데이트 시에도 상태 저장소를 남겨주세요.
설치 및 업데이트
배포처는 v0.1.2의 GitHub Releases입니다. OS에 맞는 인스톨러로 정식 릴리스를 받을 수 있습니다.
macOS:
curl -fsSL https://raw.githubusercontent.com/ttokunaga-ja/aiClean/main/install.sh
Windows x64의 PowerShell:
imr https://raw.githubusercontent.com/ttokunaga-ja/aiClean/main/install.ps1 | iex
SHA-256과 버전을 확인하여 배치합니다. macOS에서는 새 터미널을 열어주세요.
aiClean --version
aiClean update
aiClean uninstall
Windows에서 업데이트 전 실행 파일을 종료 시까지 삭제할 수 없는 경우, 해당 임시 저장 위치를 표시하고 유지합니다. 필요하다면 업데이트 프로세스 완료 후, 표시된 임시 파일을 삭제할 수 있습니다.
uninstall은 실행 파일과 aiClean이 등록한 예약(job)을 삭제합니다. 대화 데이터, 처리 기록, 복원을 위한 묶음(bundle)은 남아있습니다.
v0.1.2에서 확인한 범위
macOS에서는 91 테스트와 실제 휴지통을 사용하는 이동/복원 두 가지 테스트를 확인했습니다. 별도로 launchd의 중지/재활성화/상태 확인도 진행했습니다. Windows에서는 90 테스트와 휴지통 왕복, 실행하지 않는 작업 등록 및 전환을 사용하는 두 가지 테스트를 확인하고 있습니다.
Windows 검증기에서는 Storage Sense 정리 조건을 미검증이므로 실제 데이터 정리는 실행하지 않았습니다. Intel Mac용은 빌드되었으나, Rosetta에서의 실행은 미확인입니다. 공개 URL로부터의 온라인 도입을 macOS와 네이티브 Windows PowerShell 5.1 및 7에서 확인했습니다. 두 OS 모두 0.1.0부터 0.1.2로 업데이트하고, 공개 바이너리와의 SHA-256 일치 여부를 확인했습니다.
macOS 버전은 ad-hoc 서명이며, Apple 공증은 진행하지 않았습니다. Windows 버전에도 Authenticode 서명은 없습니다. 터미널의 보안 정책에 따라 실행 시 확인이 필요합니다.
자세한 조건이나 복원 메커니즘은 README에 정리되어 있습니다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기