AI 기반 코딩 도구인 커서(Cursor)를 사용하는 개발자들 사이에서 오랫동안 지적되어 온 문제가 있었습니다. 바로 보관된(archived) 채팅 기록이 렌더러(renderer) 메모리에 계속 남아있어 앱의 성능을 저하시키는 메모리 누수 현상입니다. 이러한 문제를 해결하기 위해 '커서 버디(Cursor Buddy)'라는 플러그인이 개발되어 공개되었습니다. 이 플러그인은 보관된 채팅 기록을 커서의 렌더러 메모리에서 분리하여 로컬 SQLite 데이터베이스에 저장하고, 필요할 때 검색할 수 있도록 지원합니다.
커서 버디는 커서의 아카이브(Archive) 버튼이 단순히 채팅을 숨기는 것이 아니라, 실제로는 해당 채팅의 데이터가 `state.vscdb` 파일과 렌더러 메모리에 계속 남아있어 시스템 자원을 소모하는 문제에 주목했습니다. 이 플러그너는 커서 플러그인 형태로 작동하며, `rules`, `skills`, `commands` 및 로컬 SQLite 저장소를 검색하는 MCP 서버로 구성됩니다. 사용자가 특정 채팅 기록을 검색하면, 에이전트가 로컬 볼트(vault)에서 관련 스니펫을 찾아주고, 전체 대화 내용을 요청하면 해당 내용을 현재 대화로 불러와 렌더러 메모리에 다시 로드하는 대신 효율적으로 접근할 수 있게 합니다. 개발자는 이 플러그인을 통해 1.97GB에 달하던 렌더러 RSS 메모리를 줄이고, 3.68GB에 이르던 `state.vscdb` 파일 크기를 2.68GB의 검색 가능한 볼트(vault)로 관리할 수 있음을 측정했습니다.
커서 버디의 핵심 기능은 `export-archived` 명령을 통해 새로 보관된 채팅을 로컬 볼트로 복사하고, `prune-from-cursor` 명령으로 커서의 `state.vscdb`에서 해당 기록을 삭제하는 것입니다. 이 과정은 커서 앱이 실행 중일 때 안전하게 내보내기(export)가 가능하며, 앱 종료 후에는 `prune` 작업을 통해 메모리에서 완전히 제거됩니다. 이를 통해 커서 사용자는 앱의 성능을 최적화하고, 과거의 대화 기록을 효율적으로 관리할 수 있게 됩니다. 또한, 검색 기능은 1~10밀리초(ms)의 빠른 속도를 자랑하며, 특정 토큰(3자 이상)을 기반으로 관련 대화 내용을 찾아줍니다. 이는 개발자들이 과거의 코드 관련 논의나 해결책을 빠르게 찾아 생산성을 높이는 데 기여할 것으로 보입니다.