Claude Code를 쓰면 쓸수록 스킬, MCP 등 설정 관리가 점점 어려워지고 있는 걸 느꼈습니다. 단순하게 모든 개발 환경에 공통적으로 적용되면 좋을 스킬, MCP 설정들만 user 레벨에 넣으면 된다고 생각하고 있었지만, 점차 회사의 FE개발자로서, 사이드프로젝트의 풀스택 개발자로서 설정들이 혼재되어가고 있다는 느낌을 받고있었습니다.

레포지토리별로 프로젝트 설정은 매번 해줘야한다는 불편함이 있었고, 마켓플레이스와 플러그인 기반은 사용여부에 따라 설정을 해줘야한다는 점이 불편했고, 그리고 실험적인 설정을 해보고 지우고 하는 과정도 번거로웠고..

불편함을 넘어, Agent 를 통한 개발을 진행함에 있어 개발자로서 페르소나도 점점 많아지고 있다고 느끼고 있습니다.
내가 할 수 있는 역할이 다양해지면서 페르소나도 다양해지는건 당연하다고 생각하고, 나는 이 페르소나들을 명확히 분리하고 격리할 수 있는 시스템이 필요하다고 생각했습니다.

nvm이나 pyenv처럼 Claude Code 환경도 프로필로 전환하면 안 될까?

그 생각이 clenv가 됐습니다.


핵심 구현: 심볼릭 링크

~/.claude를 실제 디렉토리 대신 심볼릭 링크로 만들고, 링크가 가리키는 대상을 바꾸는 방식입니다. Claude Code는 ~/.claude를 그대로 읽지만, 실제로는 전혀 다른 디렉토리가 됩니다. 각 프로필 디렉토리는 git 저장소로 초기화해 변경 이력을 관리합니다.

Claude Code 환경 자체를 관리하는 도구이기 때문에 Claude Code와 완전히 독립적으로 동작해야 했고, brew 를 통해 설치하고 관리하면 좋겠다고 생각했습니다.

GitHub: https://github.com/Imchaemin/clenv
구현 과정 상세 (삽질 포함): https://blog.chaemin.im/clenv