Burrow

문서

Burrow가 하는 모든 일, 각 도구가 건드리는 범위, 그리고 무언가를 지우기 전에 따르는 규칙.

개요

Burrow는 macOS용 네이티브 데스크탑 앱이며, Windows용으로는 WinUI 3 기반 베타가 있습니다. 보통 정리 도구, 삭제 도구, 중복 찾기, 디스크 지도, 메뉴 막대 모니터로 나뉘는 일을 모두 다루고, 그 전부를 MCP로 코딩 에이전트에 열어 줍니다.

열네 가지 도구가 창 하나를 함께 씁니다. 도구마다 화면 전체의 색이 바뀌는데, 색이야말로 그 도구가 무엇을 건드리려 하는지 알려 주는 신호이기 때문입니다. 그중 둘, 장기 기록과 MCP 서버에는 대응하는 명령줄 기능이 전혀 없습니다.

모두 로컬에서 동작합니다. 검사 결과와 지표, 기록은 기기에 남고, MCP 서버는 루프백에만 연결합니다.

설치

macOS에서는 Homebrew가 가장 빠른 길입니다. Developer ID로 서명되고 Apple 공증을 받은, 엔진이 포함된 빌드를 설치하며, 격리 속성도 유지해 Gatekeeper가 티켓을 검증할 수 있게 합니다.

brew install --cask caezium/tap/burrow

직접 다운로드와 Windows 미리보기는 설치 페이지에 있습니다. 업데이트는 서명된 Sparkle 피드를 통해 앱 안에서 도착하며, Homebrew로 설치했다면 brew upgrade.

전체 디스크 접근 권한

권한이 없어도 Burrow는 안전한 검사를 실행합니다. 전체 디스크 접근 권한을 허용하면 macOS가 평소 숨기는 Application Support와 컨테이너의 더 깊은 캐시까지 닿을 수 있습니다. 시스템 설정의 「개인 정보 보호 & 보안」에서 언제든 허용하거나 취소할 수 있습니다.

공간 되찾기

정리

열 가지가 넘는 분류를 검사합니다. 응용 프로그램 캐시, 시스템 캐시, 로그, 개발 도구 캐시, AI 도구 캐시, 브라우저 데이터, 클라우드 저장소 클라이언트, 디자인 도구, 커뮤니케이션 앱, 그 밖의 임시 파일입니다.

확인 목록은 각 항목을 지워도 안전한 정도에 따라 정렬됩니다. 다시 만들어지는 캐시가 먼저 오고, 사용자에게 보이는 상태가 마지막입니다. 크기 계산은 하드링크를 인식하므로, 여러 도구가 공유하는 파일은 경로마다가 아니라 한 번만 셉니다.

심층 정리

개발 작업이 남긴 부스러기입니다. 판단 기준이 다르기에 일반 캐시와 나누어 두었습니다. dist, build, target, .next, .build, DerivedData, __pycache__와 coverage 같은 빌드 산출물은 네트워크 없이 로컬에서 다시 만들어집니다. 반면 node_modules, Pods와 venv 같은 의존성 디렉터리는 다시 받아야 하므로, 그 비용을 함께 표시하고 확인하기 전까지는 선택되지 않은 채로 둡니다.

설치 파일

찾는 대상: .dmg 및 .pkg 파일 가운데, 응용 프로그램을 설치한 지 한참 지나도 다운로드 폴더에 남아 있는 것들입니다. 하나씩은 작지만 몇 해 써 온 기기에서는 합쳐서 수십 기가바이트가 되는 일이 흔합니다.

중복 파일

단계를 나눈 내용 해시를 씁니다. 먼저 크기로 묶고, 후보의 앞부분만 해시한 뒤, 그래도 일치하는 것만 전체를 해시합니다. 하드링크되거나 복제된 파일은 하나의 대상으로 취급하므로, 표시되는 회수 가능 용량이 실제로 되찾는 용량과 같습니다.

비슷한 사진

눈으로는 거의 같지만 바이트 단위로는 다른 이미지, 이를테면 연속 촬영 컷이나 다시 내보낸 사진을 시각적으로 맞춰 봅니다. 내용 해시로는 보이지 않는 것을 이 방식은 찾아냅니다.

응용 프로그램

앱

설치된 모든 응용 프로그램을 크기·이름·최근 사용·출처로 정렬할 수 있습니다. 여러 개를 선택해 삭제하면 번들과 함께 환경설정, Application Support 데이터, 컨테이너, 저장된 상태, 실행 에이전트까지 제거합니다.

Homebrew 탭에서 어떤 cask와 formula가 오래되었는지 확인하고 그 자리에서 업데이트할 수 있습니다. Burrow는 표시 이름이 아니라 cask 토큰으로 판별하는데, 널리 쓰이는 앱 중 열 개 남짓이 스스로 부르는 이름과 다른 토큰을 쓰기 때문입니다.

잔여 파일

반대 방향입니다. 이미 사라진 응용 프로그램에 속한 관련 파일, 환경설정, 실행 에이전트를 다룹니다. Burrow는 남겨진 각 항목을 그것을 두고 간 앱과 이어 줍니다. 그래서 승인하는 대상이 경로 목록이 아니라 이름 있는 앱의 잔여물이 됩니다.

가장 먼저 치울 가치가 있는 것은 지워진 앱의 실행 에이전트입니다. launchd 는 더 이상 없는 실행 파일을 계속 띄우려 하고, 그 탓에 부팅할 때마다 로그가 지저분해집니다.

유지 관리

최적화

늘 하는 잡일을 확인 한 번 뒤에 모았습니다. 훑어보기 재구성, 캐시와 메타데이터 복구, DNS 비우기, 로그인 항목 점검입니다.

정비

한 번에 전체를 손봅니다. 대부분 해당하지도 않는 고정 목록을 내미는 대신, Burrow가 지금 이 기기에 실제로 필요한 유지 관리만 골라 끝까지 실행합니다.

디스크 파악하기

분석

볼륨 전체를 실제로 할당된 바이트 크기대로 그린 트리맵입니다. 어떤 가지든 파고들면 한 단계 아래의 같은 구성이 보이고, 그 자리 메뉴에서 Finder로 열거나 휴지통으로 옮길 수 있습니다.

「무엇이 내 디스크를 쓰고 있나」라는 물음에는 정렬된 목록보다 트리맵이 잘 답합니다. 가장 많이 쓰는 것이, 스크롤해서 찾아야 하는 첫 줄이 아니라 가장 큰 도형으로 보이기 때문입니다.

큰 파일을 지웠는데도 여유 공간이 늘지 않는다면, 대개 로컬 Time Machine 스냅샷이 붙잡고 있는 것입니다. 디스크가 비었는데도 가득 찼다고 하는 이유.

기기 지켜보기

상태

CPU·메모리·GPU·디스크·네트워크·배터리를 각각의 소형 그래프와 함께 한 화면에 놓습니다. 프로세스 표는 어떤 열로도 정렬되고, 계속 보고 싶은 행은 고정할 수 있습니다. Apple 실리콘에서는 팬 속도와 다이 온도를 SMC에서 네이티브로 읽습니다.

기록

상태 화면이 가져오는 모든 표본은 로컬 SQLite 파일에 쌓입니다. 5분 전부터 90일 전까지 되짚어 볼 수 있고, 팬이 실제로 돌았던 순간에 대해서는 프로세스별 최고치 표도 있습니다. 어디로도 전송하지 않습니다.

포트

대기 중인 모든 포트와 해당 프로세스, 실행 파일 경로, 소유 사용자를 실시간으로 표시합니다. lsof를 실행하지 않아도 3000번 포트를 사용하는 프로세스를 알 수 있습니다.

네트워크

인터페이스별·프로세스별 실시간 처리량입니다. 활성 상태 보기의 누적값과 달리 이것은 속도이므로, 지금 회선을 가득 채우고 있는 프로세스가 곧 맨 위에 옵니다.

연결 복구

연결이 끊겼을 때 지상으로 돌아가는 안내 경로입니다. 인터페이스 상태, DNS 확인, 게이트웨이 도달 여부, 인증 페이지 감지를 순서대로 점검합니다.

앱을 열지 않아도 메뉴 막대에서 전체 그림이 내려옵니다. 실시간 지표, 상위 프로세스, 그리고 필요한 도구로 바로 가는 길입니다.

에이전트와 MCP

Burrow는 MCP 서버 역할도 하므로, 코딩 에이전트가 소스 코드에서 추측하는 대신 기기에 직접 물어볼 수 있습니다. 스물여섯 가지 도구가 열려 있습니다. 그중 열넷은 읽기 전용이라 곧바로 쓸 수 있고, 기기를 바꾸는 도구는 설정에서 각각 명시적으로 켜야 에이전트가 호출조차 할 수 있습니다.

Claude Code를 이 앱으로 향하게 합니다:

{
  "mcpServers": {
    "burrow": {
      "command": "/Applications/Burrow.app/Contents/MacOS/Burrow",
      "args": ["--mcp"]
    }
  }
}

읽기 전용 도구

burrow_snapshot, burrow_history, burrow_top_processes, burrow_process_usage, burrow_info, burrow_analyze, burrow_dupes, burrow_orphans, burrow_photos, burrow_ports, burrow_net, burrow_doctor, burrow_disk_forecast와 burrow_list_apps.

허용이 필요한 도구

burrow_clean, burrow_purge, burrow_uninstall, burrow_optimize와 burrow_installer 는 기기를 바꾸므로, 켜기 전까지는 쓸 수 없습니다.

HTTP API

루프백 HTTP API를 127.0.0.1:9277 에서 제공합니다. MCP 대신 HTTP를 쓰는 도구에 같은 읽기 전용 데이터를 돌려줍니다. 기본은 켜짐이며 설정에서 끌 수 있습니다. 루프백에만 연결하므로 다른 기기에서는 결코 닿을 수 없습니다.

안전 원칙

Burrow는 실수했을 때 잃는 것이 데이터가 아니라 다시 만드는 수고이도록 설계했습니다. 네 가지 규칙이 앱 전체에서 지켜집니다.

  • 지우기 전에 보여 줍니다. 모든 작업이 무언가 움직이기 전에 파일과 용량을 나열합니다. 사용자가 확인해야 Burrow가 움직입니다.
  • 결과의 무게로 정렬합니다. 분류는 지워도 안전한 정도에 따라 정렬되며, 다시 만드는 데 실제로 비용이 드는 것은 직접 체크하기 전까지 선택되지 않습니다.
  • 백그라운드 root 도우미를 두지 않습니다. 관리자 권한이 필요할 때는 macOS 자체 인증 대화상자가 묻고, Burrow는 그 명령 하나만 실행한 뒤 프로세스를 끝냅니다. 권한을 가진 데몬이 남아 도는 일은 없습니다.
  • 직접 읽을 수 있는 보호 목록. 결코 삭제 대상이 되지 않는 경로는 관례가 아니라 코드로 강제되며, 그 소스는 공개되어 있습니다.

서명과 공증

0.11.0과 그 이후의 모든 macOS 릴리스는 Developer ID로 서명되고 Apple 공증을 받았으며, 서명·공증·티켓 스테이플링·Gatekeeper 검사가 모두 성공하지 않으면 태그에서 배포될 수 없습니다. 보관된 0.10.5 이하 빌드는 이 약속 이전의 것이니, Gatekeeper가 막으면 마우스 오른쪽 버튼을 눌러 「열기」를 선택하세요.

개인 정보와 수집 데이터

파일, 경로, URL, 지표는 기기를 벗어나지 않습니다. 검사와 기록, MCP 서버는 전부 로컬에서 완결됩니다.

다만 Burrow는 익명이며 끌 수 있는 사용 및 진단 정보를 보냅니다. 충돌과 멈춤 보고, 실행과 업데이트 결과, 이름이 고정된 성능 구간의 표본입니다. 화면을 녹화하지 않고, 사용자의 파일이나 그 내용을 보내지도 않습니다. 설정의 스위치 하나로 두 서비스가 모두 멈추며, 소스에서 빌드한 경우에는 처음부터 꺼져 있습니다.

모든 항목은 TELEMETRY.md에 적어 두었습니다. 이 웹사이트는 별도로 쿠키를 쓰지 않는 분석을 사용합니다. 개인 프로필을 만들지 않고, 브라우저 식별자를 저장하지 않으며, URL의 질의와 프래그먼트를 제거하고, Do Not Track을 존중합니다.

문제 해결

Gatekeeper가 앱을 막을 때

0.11.0 이후에는 일어나지 않아야 합니다. 그래도 발생한다면 내려받는 도중에 변조되었을 가능성이 높으니 GitHub에서 다시 받으세요. 보관된 빌드라면 앱을 마우스 오른쪽 버튼으로 눌러 「열기」를 선택하세요.

전체 디스크 접근 권한을 준 것 같은데 검사가 얕을 때

macOS는 이 권한을 앱의 코드 서명에 묶어 둡니다. 서명이 다른 빌드로 앱을 바꾸면 권한이 무효가 됩니다. 전체 디스크 접근 권한 목록에서 Burrow를 지운 다음 다시 추가하세요.

여유 공간이 늘지 않을 때

파일을 지워도 로컬 Time Machine 스냅샷이 아직 참조하는 블록은 풀리지 않습니다. macOS는 공간이 부족해지면 스냅샷을 자동으로 솎아 냅니다. tmutil listlocalsnapshots / 로 무엇이 있는지 확인할 수 있습니다.

에이전트에 허용이 필요한 도구가 보이지 않을 때

정리와 삭제를 비롯해 실제로 손을 대는 도구는 설정에서 에이전트 동작을 켜기 전까지 숨겨져 있습니다. 의도한 바입니다. 사용자가 따로 허용하지 않은 것을 에이전트가 지울 수 있어서는 안 되기 때문입니다.