# Mole에 AI 도구 정리와 유지 관리 기능을 만들며

> 소중한 자산이라 남겨 두던 AI 대화, 제 Mac에도 쌓인 오래된 세션과 worktree, 실제 사용 테스트에서 느낀 것과 Mole에서 지키고 싶은 절제에 관한 이야기입니다.

Published: 2026-09-29 | Updated: 2026-10-03

이번 연휴에 Mole에 유용한 기능을 하나 더 만들고 싶었습니다. 더는 필요 없는 AI 캐시, 오래된 세션과 worktree를 정리하고, 예전에 설치해 놓고 오랫동안 쓰지 않은 AI 도구를 제거하는 기능입니다.

앞서 [수백 개의 Mac 앱을 설치하고 제거하며 잔여 파일을 확인](https://mole.fit/ko/blog/testing-mac-apps-one-by-one)할 때도 AI 데이터 정리를 원하는 이야기가 많았습니다. 하지만 당시에는 그 “쓸모없는 파일” 중 상당수가 유용하다고 생각했습니다. AI Coding 대화 기록은 중요한 자산이라 여겼기에, Mole은 주로 실제 캐시와 이전 버전만 정리했습니다.

AI를 계속 쓰다 보니 제 Mac에도 그다지 쓸모없어진 생성물, 세션, worktree가 많이 남았습니다. 이제는 필요한 일이라 생각해 시작했습니다. `opencode.db` 파일 하나가 62 GB까지 커졌다는 사용자도 있었고, 이번에는 데스크톱 앱과 명령줄 도구를 설치하고 로그인해 실제로 사용한 뒤 무엇을 남기는지 확인했습니다.

## 어떻게 테스트했는지

앱을 설치하고 제거하기만 했던 지난번과 달리, 이번에는 사용할 수 있는 도구에 로그인해서 제 프로젝트에서 실제로 사용했습니다. 질문을 하고, 에이전트를 돌리고, 코드 인덱스를 만들고, 예약 작업을 설정했습니다. 많은 데이터가 실제로 써야만 생기기 때문에, 설치만 하고 열지 않은 앱으로는 대부분을 볼 수 없습니다. 도구마다 AI가 설치 전후의 Mac을 비교해 홈 폴더, `~/Library`, `/usr/local/bin`, 셸 설정에 무엇을 썼는지 측정하고 기록부에 적었습니다. 그다음 Mole의 상태 화면에서 프로세스 수와 메모리 사용량을 확인하고, Mole로 제거한 뒤, Mole이 목록에 올리지 않은 것이 있는지 홈 폴더 전체를 이름으로 검색했습니다. 빠진 것은 그날 밤 바로 코드에 추가하고 다시 테스트했습니다.

데스크톱 앱은 13개를 테스트했습니다. Devin, OpenCode, Trae, Trae CN, TRAE SOLO CN, Kiro, Qoder, QoderWork, Qoder CN, Lingma, CodeBuddy CN, WorkBuddy, Doubao Work입니다. 실제로 사용한 것은 12개이고, Lingma는 로그인 후 쓸 수 있는 할당량이 없어 기록된 파일만 측정했습니다. 명령줄에서는 Amp, opencode, Kimi CLI, Kimi Code, Factory Droid, Copilot CLI, Gemini CLI, Qwen Code, iFlow를 설치해 실행했고, 이미 제 Mac에 있던 Claude Code, Codex, Grok, Cursor Agent까지 합치면 13개입니다. CC Switch가 지원하는 목록을 참고해 OpenClaw, Hermes, Pi가 제거 후 무엇을 남기는지도 측정했습니다. Amp는 잘 만들어졌고 자기만의 색깔이 뚜렷했습니다. Qoder CN은 아마 그날 테스트한 중국 AI 제품 중 가장 좋았고, 전체적으로 깔끔하고 명확했습니다. 쓰지 못한 도구도 몇 개 있습니다. 이번 테스트에서 Gemini CLI에 개인 Google 계정으로 로그인하지 못했고, Qwen Code와 iFlow는 둘 다 엔드포인트와 키를 직접 준비해야 합니다.

## 써 봐야 무엇을 쓰는지 보인다

가장 눈에 띈 것은 메모리였습니다. 데스크톱 앱 13개를 함께 열어 두니 모두 약 23 GB를 사용했고, CodeBuddy CN 하나만 41개 프로세스로 4.49 GB를 썼습니다. 대부분 VS Code나 Electron 기반 앱이라 창 하나 뒤에 helper가 줄줄이 붙어 있습니다. 그래서 Mole의 상태 화면은 앱마다 모든 하위 프로세스를 합쳐 한 줄로 보여 줍니다. 일반 프로세스 목록만 봐서는 실제로 누가 메모리를 쓰는지 알기 어렵기 때문입니다.

더 의외였던 것은 시스템에 가하는 작은 변경들입니다. Devin, CodeBuddy, Kiro, Kimi Code는 `~/.zshrc`에 PATH나 셸 통합 줄을 추가하고, Kiro, Trae, Trae CN은 처음 실행할 때 root 소유의 명령 링크를 `/usr/local/bin`에 둡니다. 앱을 지우면 이 링크는 아무것도 가리키지 않게 됩니다. WorkBuddy는 `~/.local/bin`에 `python3.12`를 넣어 두어서, 이후 터미널에서 `python3.12`를 입력하면 그쪽 복사본이 실행됩니다. 127 MB짜리 uv Python도 설치했는데, 당시 제 표현은 생각보다 훨씬 막무가내라는 것이었습니다. 가장 흥미로웠던 것은 Kimi CLI입니다. 한 번 실행하자 더 이상 유지 관리되지 않는다고 알리더니, 묻지도 않고 새 Kimi Code를 내려받아 설치하고 `.zshrc`를 수정한 뒤 기존 명령의 이름을 `kimi-legacy`로 바꿨습니다.

용량 면에서는 TRAE SOLO의 Work 모드가 처음 사용할 때 약 1 GB의 도구를 내려받고, 압축을 풀면 3.1 GB가 됩니다. LibreOffice, FFmpeg, OpenJDK를 함께 묶은 세트입니다. 데스크톱 도구 여섯 개는 각각 작업을 한두 번 했을 뿐인데 모두 합쳐 5.2 GB의 데이터를 썼습니다. 제가 매일 쓰는 `~/.codex`는 이미 24 GB이고 그중 17 GB가 세션이며, Claude 데스크톱 앱의 14 GB 중 12 GB는 Cowork가 쓰는 Linux 가상 머신입니다. opencode의 데이터베이스는 이벤트 단위로 기록하기 때문에 질문 한 번에 메시지 본문의 세 배가 넘는 양을 쓰고, 세션을 삭제해도 파일 크기가 줄지 않습니다. 누군가 62 GB에 이른 것도 아마 이 때문일 겁니다.

스킬도 함정이었습니다. 스킬 설치 도구 상당수는 해당 에이전트가 있든 없든 모든 에이전트의 폴더에 `skills/`를 씁니다. 그래서 Qwen Code, iFlow, Droid를 한 번도 쓴 적이 없는데도 제 Mac에는 `~/.qwen`, `~/.iflow`, `~/.factory`가 있었습니다. Mole의 첫 버전은 이것들을 2.4 MB짜리 도구로 세었고, 제가 설치한 스킬을 잔여 파일로 처리할 뻔했습니다.

## 제거한 뒤에도 남는 것

첫 번째 라운드에서 앱 14개를 제거한 뒤 다시 검색해 보니, Mole이 목록에 올리지 않은 점 폴더가 여전히 열 개 넘게 있었습니다. `~/.kiro`, `~/.qoder`, `~/.qodersec`, `~/.lingma`, `~/.codebuddy` 같은 폴더와 Kiro가 `~/.aws`에 보관하는 로그인 토큰 파일입니다. 이들은 `~/Library` 아래에 있지 않고 이름이 앱과 항상 일치하지도 않아서, 앱 하나하나 찾아보는 수밖에 없었습니다. 여러 제품이 함께 쓰는 폴더도 있습니다. Trae CN과 TRAE SOLO CN은 `~/.trae-cn`을, Qoder와 QoderWork는 `~/.qoder`를 공유하므로, 둘 중 하나를 제거할 때 다른 하나가 아직 쓰는 폴더를 목록에 올리면 안 됩니다. 국제판 Trae를 테스트할 때는 Trae CN의 폴더를 자기 것으로 인식하고 캐시까지 기본으로 선택해 둔다는 것도 발견했습니다. 수정 후 그 목록은 33줄에서 14줄로 줄었습니다.

또 하나 뜻밖이었던 것은 프로세스였습니다. 다음 날 아침 다시 확인해 보니 삭제했던 `~/.kimi-code`와 `~/.factory`가 다시 생겨 있었습니다. 전날 밤 터미널에 열어 둔 `kimi`와 `droid` 세션이 아직 살아 있었기 때문입니다. 프로그램 파일은 이미 휴지통에 있었지만, 프로세스는 그 폴더에 계속 로그를 쓰고 있었습니다. 이어서 `gemini`, `qwen`, `iflow`, `amp` 세션도 아직 실행 중이라는 걸 알게 됐습니다. 명령줄 도구는 창이 없고 터미널 탭을 닫아도 항상 종료되는 것은 아니니, 제거하기 전에 실행 중이 아닌지 확인해 두는 게 좋습니다.

테스트하면서 평소 자주 쓰는 Claude, Codex, Cursor가 절제를 잘 지키고 있다는 생각도 들었습니다. 반면 설치 프로그램을 내려받을 때 설치 경로를 추적하고 통계를 내려고 클립보드에 무언가를 쓰는 제품은 좀 지나치다는 느낌이었습니다. 설치하자마자 이벤트에 참여해 토큰을 받으라는 팝업이 뜨는 도구도 있어, 불편함을 참으며 쓰는 기분이었습니다.

그중 Qoder는 반가운 발견이었습니다. 절제를 지키고 디자인도 좋았으며 불필요한 행동이 없어 제품에 놀랐습니다. 중국에서도 이런 소프트웨어가 더 많이 나왔으면 합니다. 응원합니다.

## 먼저 직접 확인해 볼 수도 있습니다

이 확인에는 Mole이 필요 없습니다. 터미널이면 충분하고, 아래 명령은 모두 읽기만 할 뿐 아무것도 바꾸지 않습니다.

먼저 AI 도구가 셸 설정에 줄을 추가했는지 확인합니다.

```bash
grep -nE "codeium|codebuddy|kiro|kimi|lmstudio|\.local/bin" ~/.zshrc ~/.bashrc ~/.zprofile 2>/dev/null
```

각 줄 앞에는 파일 이름과 줄 번호가 표시됩니다. 그 줄을 추가한 도구가 이미 없다면 텍스트 편집기에서 해당 줄을 지워도 됩니다. 먼저 파일을 복사해 두고, 수정한 뒤에는 새 터미널 창을 열어 모든 것이 정상인지 확인하세요.

다음으로 `/usr/local/bin`에서 앱 내부를 가리키는 명령과 더 이상 작동하지 않는 링크를 찾습니다.

```bash
ls -l /usr/local/bin | grep "\.app/"
find /usr/local/bin -maxdepth 1 -type l ! -exec test -e {} \; -print
```

첫 번째 명령은 앱 내부를 가리키는 명령을, 두 번째는 대상이 사라진 링크를 보여 줍니다. 이런 링크는 대부분 제거된 앱이 남긴 것이고 root 소유라서, 삭제하려면 관리자 암호가 필요합니다.

이미 제거한 명령줄 에이전트가 아직 실행 중인지 확인합니다.

```bash
ps -axo pid,lstart,command | grep -E "kimi|droid|gemini|qwen|iflow|amp|opencode" | grep -v grep
```

이것은 이름으로 하는 텍스트 검색입니다. 전체 명령과 프로세스 ID를 보고 실제 AI 도구인지 확인하세요. `amp`는 관계없는 단어에도 들어갑니다. 확인한 뒤 원래 터미널에서 종료하고, 창을 찾지 못하면 `kill`과 해당 프로세스 ID를 사용합니다.

마지막으로 이 도구들이 차지하는 용량을 측정합니다.

```bash
du -sh ~/.codex ~/.claude ~/.grok ~/.gemini ~/.cursor ~/.local/share/opencode 2>/dev/null
```

이 폴더들에는 세션 기록이 들어 있으니, 삭제하기 전에 나중에 다시 볼 일이 있을지 먼저 정하세요. 사본을 남기지 않고 삭제한 AI 대화는 되살릴 수 없습니다.

## 큰 폴더 안에 무엇이 있는지 확인하기

한 AI 도구의 폴더에도 다시 생성할 수 있는 캐시, 내려받은 모델, 대화, 프로젝트, 다른 도구와 공유하는 설정이 들어 있습니다. 캐시처럼 보이는 이름이 모든 파일을 지워도 된다는 뜻은 아닙니다. 수동으로 정리한다면 다시 만들 수 있는 것부터 보고, 자신의 작업은 제목, 날짜, 백업을 확인합니다. worktree는 커밋하지 않은 변경뿐 아니라 커밋이 보존할 브랜치에 남아 있는지도 확인합니다.

세션을 지워도 `opencode.db`가 줄지 않는다고 삭제 실패는 아닐 수 있습니다. [SQLite 설명](https://sqlite.org/lang_vacuum.html)에 따르면 삭제된 기록의 페이지는 보통 재사용을 위해 남아 파일이 줄지 않습니다. 압축은 빈 페이지를 회수하는 일이지 대화를 한 번 더 지우는 일이 아닙니다. 지울 세션을 먼저 결정한 뒤 데이터베이스를 관리해야 하며 둘을 하나의 큰 삭제 동작으로 합치면 안 됩니다.

## 이제 Mole은 이렇게 처리합니다

AI 페이지는 현재 Preview에 있으며, 다음 릴리스에 앞서 테스트를 계속하고 있습니다. 입구는 정리 화면 저 멀리 떠 있는 달로, AI 도구의 데이터가 발견될 때만 나타나며 원하지 않으면 설정에서 숨길 수 있습니다. 안으로 들어가면 Mole이 도구를 하나씩 살펴보고, 찾은 것을 지웠을 때 후회할 가능성에 따라 세 구간으로 나눕니다. 캐시와 이전 버전은 스스로 다시 만들어지므로 기본으로 선택됩니다. 세션과 worktree는 자동으로 다시 만들어지지 않으므로 직접 확인해서 고릅니다. 오래 쓰지 않은 도구와 유지 관리 항목은 마지막에 있고, 역시 기본으로 선택되지 않습니다.

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/testing-ai-tools-review.webp" width="2400" height="1800" loading="lazy" alt="Mole의 AI 정리 및 관리 화면. 세션과 워크트리에서 90일이 지난 Codex 세션 6개가 펼쳐져 있고 그 아래 작업이 끝난 worktree와 프로젝트가 삭제된 세션이 이어지며, 각 행에 무엇인지, 지우면 어떻게 되는지, 크기가 적혀 있음.">
  <figcaption>실제 AI 정리 화면입니다. 스크린샷의 데이터는 샘플 폴더에서 가져온 것이며 제 Mac의 데이터가 아닙니다.</figcaption>
</figure>

세션 구간에서는 보존 기간이 지난 Codex의 오래된 세션을 15일, 30일, 90일, 120일 기준으로 걸러 볼 수 있고, 펼치면 세션마다 제목과 날짜가 보이며 하나씩 선택을 해제할 수도 있습니다. Mole은 먼저 세션 파일을 휴지통에 복사한 뒤 Codex 자체의 삭제 명령을 호출하므로, Codex의 인덱스가 어긋나지 않습니다. Claude Code는 프로젝트 폴더가 사라진 세션만 보여 줍니다. 작업이 끝난 worktree는 커밋하지 않은 변경 사항이 없다는 것을 git이 증명할 수 있을 때만 나타나며, 작업이 이미 메인 브랜치에 병합됐다면 그 사실도 함께 표시합니다.

이번에 가장 많은 시간을 들인 것은 사용하지 않는 도구 구간입니다. Mole은 npm, pipx, uv, 공식 설치 프로그램, Homebrew가 쓰는 정해진 위치에서 AI 명령줄 도구를 찾고, 30일 동안 사용하지 않았고 실행 중이지도 않은 것만 목록에 올립니다. 제거할 때는 프로그램, 그것을 가리키는 명령 링크, 설정, 세션, 로그인 정보를 함께 처리합니다. 다른 제품이 아직 쓰는 데이터는 남겨 둡니다. Antigravity도 `~/.gemini`에 데이터를 두고, opencode의 데스크톱 앱은 명령줄 버전과 세션 데이터베이스를 공유하기 때문입니다. 사용하지 않는 도구가 네 개를 넘으면 가장 큰 세 개는 각각 한 줄을 차지하고 나머지는 한 줄로 합쳐집니다. Claude Code와 Codex는 이 목록에 없습니다. 이들의 폴더는 데스크톱 앱의 상태이기도 하기 때문입니다.

`sudo npm`으로 시스템 폴더에 설치한 명령줄 도구도 목록에 나오며, 제거할 때 관리자 암호를 한 번만 입력하면 됩니다. 쓸수록 커지는 opencode의 `opencode.db`는 세션을 지운 뒤 빈 공간이 파일의 10%를 넘고 파일이 200 MB보다 크면 이 구간에서 압축을 제안합니다. 세션은 하나도 지우지 않고 빈 공간만 디스크에 돌려주며, 압축하기 전에 opencode를 종료해야 합니다.

앱 제거 쪽에서는 앞에서 말한 점 폴더들이 이제 확인할 항목으로 목록에 오르며, 기본으로 선택되어 있지 않습니다. 여러 제품이 함께 쓰는 폴더는 다른 제품이 아직 설치되어 있는 동안에는 목록에 오르지 않습니다. `/usr/local/bin`에 있는 root 소유의 명령 링크도 제거할 때 함께 표시되며, Mole의 관리자 도우미를 통해 휴지통으로 이동합니다. 일반 파일은 휴지통에 남아 있는 동안 되찾을 수 있습니다. Homebrew로 설치한 프로그램은 Homebrew의 제거 명령을 사용합니다. 데이터베이스 세션은 내보낸 복구 파일과 복원 절차가 필요하므로 모든 동작을 휴지통에서 끌어내는 것만으로 되돌릴 수는 없습니다. 복구 사본도 남아 있어야 합니다.

이 변경 사항은 Mole의 다음 버전에 포함됩니다.

## 아직 하지 못한 것

아직 하지 못한 것도 있습니다. AI 도구가 셸 설정에 추가한 줄을 Mole이 직접 고치지는 않습니다. 대신 제거 세부 정보에서 어느 줄인지 알려 줄 계획입니다. Cursor나 Conductor 같은 도구의 worktree는 아직 제 Mac에 실제 데이터가 없어 포함하지 않았습니다. 이번 테스트 당시에는 opencode와 Devin의 오래된 세션을 기간별로 따로 정리하는 기능이 없었습니다. MiniMax는 이번에 직접 테스트하지 않아 아직 지원하지 않습니다.

## 후속 작업: OpenCode와 Devin의 오래된 세션

10월 1일 OpenCode와 Devin의 오래된 세션을 정리하는 기능을 소스에 추가했습니다. 보존 기간으로 걸러내거나 작업 폴더가 확실히 사라졌는지 확인합니다. 오프라인 디스크나 읽을 권한이 없는 폴더는 삭제된 것으로 보지 않습니다. 먼저 복구 사본을 저장한 뒤 도구의 삭제 경로를 사용하고 결과를 확인합니다. OpenCode는 내보낸 JSON을, Devin은 선택한 세션과 관련 기록의 복구 파일을 남기며 복원 설명도 제공합니다. 도구가 실행 중이거나 확인에 실패하면 정리하지 않습니다. 다음 Preview를 위한 변경으로 당시 공개 다운로드에는 없었습니다. 사용자의 실제 데이터베이스에서 확보할 공간도 측정하지 않았습니다.

앞서 700개가 넘는 소프트웨어를 테스트한 일까지 합쳐 보면, 개발의 기본 원칙을 지키지 않는 제품이 꽤 많았습니다. 생각만큼 전문적이고 깔끔하지는 않았습니다. 그래서 Mole은 지금의 단순함을 유지하고, 하는 일을 더 깊이 다듬고, 필요 없는 데이터를 가져오지 않고, 로컬 파일과 대화 내용을 업로드하지 않아야겠다는 마음이 더 커졌습니다. 사용 통계조차 넣지 않고, 계속 이렇게 꼼꼼하게 만들고 싶습니다.

Mole이 맡아 주었으면 하는 AI 도구가 Mac에 있거나 가장 골치 아픈 정리 상황이 있다면 [토론 스레드](https://github.com/tw93/Mole/discussions/1604)에 알려 주세요. 지금까지 테스트한 앱은 모두 [테스트한 앱 목록](https://mole.fit/tested-apps)에 있고, 직접 정리하고 싶다면 [AI 코딩 도구 정리 가이드](https://mole.fit/ko/blog/how-to-clean-up-ai-coding-tools-mac)에서 방법을 볼 수 있습니다.

테스트에 넣고, 정리해도 된다고 확인한 항목을 기능에 추가하겠습니다. 이 부분은 오래 유지 관리하게 될 것 같습니다.

---

Canonical HTML page: https://mole.fit/ko/blog/testing-ai-tools-for-mole
Blog index for agents: https://mole.fit/ko/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
