charmbracelet/crush
Glamourous agentic coding for all 💘
Crush – 터미널용 LLM 기반 코딩 보조 도구
무엇인가요 – Crush는 어떤 터미널에서도 대규모 언어 모델(LLM)과 직접 대화할 수 있는 명령줄 애플리케이션입니다. 이는 "코딩 파트너"와 같습니다: 코드 작성, 편집, 설명 요청, 도구 실행, 프로젝트 파일과 상호작용할 수 있으며, 이미 사용 중인 쉘 환경에서 그대로 작업을 이어갈 수 있습니다.
왜 중요한가요 – 대부분의 AI 코드 보조 도구는 IDE 플러그인이나 웹 UI에 의존합니다. Crush는 같은 기능을 터미널에 가져와, Vim/Emacs, 원격 쉘, CI 파이프라인에서 대부분의 시간을 보내는 개발자에게 유용합니다. 또한 여러 LLM 제공자(OpenAI, Anthropic, Gemini, Bedrock, 로컬 Ollama 등)를 지원하며, 컨텍스트를 잃지 않고 모델을 즉시 전환할 수 있습니다.
핵심 기능 (README에 설명됨)
- 다중 모델 지원 – OpenAI 또는 Anthropic 호환 API를 선택하거나, 사용자 정의 제공자를 추가하거나 Ollama를 통해 로컬 모델을 실행할 수 있습니다.
- 세션 기반 워크플로우 – 프로젝트별로 별도의 대화를 유지하며, 동시에 여러 세션을 열 수 있습니다.
- LSP 통합 –
gopls,nil,typescript-language-server등의 언어 서버 프로토콜 서버를 시작하여 모델이 코드에 대해 깊이 있는 이해를 할 수 있도록 합니다. - MCP를 통한 확장성 –
stdio,http,sse를 통해 MCP 서버를 추가하여 사용자 정의 도구, 데이터, 실시간 업데이트를 제공할 수 있습니다. - 크로스플랫폼 – macOS, Linux, Windows(PowerShell/WSL), Android, BSD 계열에서 작동합니다.
crushrc로 설정 가능 – 프로젝트별 또는 전역에 배치 가능한 Bash 스타일 설정 파일로, 제공자, 모델, LSP, MCP, 권한 등을 추가할 수 있습니다.- 글로벌 컨텍스트 파일 – 마크다운 파일(
CRUSH.md,AGENTS.md)이 시스템 프롬프트에 자동으로 삽입되어 개인 지침을 반영합니다. - 권한 시스템 –
ls,grep, GitHub 액션 등의 도구는 명시적인 허용/거부가 필요하여 원치 않는 부작용을 방지합니다. - 워크스페이스 공유 – 동일한 작업 디렉터리를 가리키는 여러 TUI 클라이언트가 SSE를 통해 동일한 세션 목록, 기록, 도구 상태를 공유합니다.
시작하기 (빠른 시작 단계)
- 설치 – Homebrew, NPM, Arch의 AUR, Nix, Winget, Scoop, 또는 OS용 바이너리/패키지를 사용하세요. Go 도구체인이 있는 경우
go install도 가능합니다. - 모델 선택 – Ctrl + L을 눌러 모델 선택기 열고, 제공자(예: 내장된 Hyper 서비스, OpenAI, Anthropic 등)를 선택하고 API 키를 붙여넣거나 적절한 환경 변수(
OPENAI_API_KEY,ANTHROPIC_API_KEY, ...)를 설정하세요. - 세션 시작 – 프로젝트 디렉터리에서
crush를 실행하세요. TUI가 나타나면 자연어 프롬프트를 입력하거나 코드 생성을 요청하거나 도구 실행을 요청할 수 있습니다. - 설정 (선택 사항) –
crushrc(Bash 구문) 또는 JSON 설정 파일을 만들어 LSP, MCP 서버, 사전 승인된 도구를 추가하세요. README에 예제 스니펫이 제공됩니다.
설정 요약
- 제공자 정의 –
crushrc또는 JSON에서provider add <name> --type <type> --base-url <url>로 제공자를 추가하고, 모델을 등록(model add …)할 수 있습니다. - LSP –
lsp add go --command "gopls" --enabled true로 Go 언어 서버를 모델이 사용할 수 있도록 합니다. - MCP 서버 – 사용자 정의 도구 백엔드를 추가할 수 있습니다. 예: 로컬 Node 스크립트(
mcp add filesystem --command node …) 또는 GitHub 기반 MCP(mcp add github --type http …). - 권한 –
permissions allow view edit로 안전한 도구를 사전 승인하고,permissions deny bash로 위험한 도구를 차단합니다. - 글로벌 컨텍스트 – 개인 지침 마크다운을
~/.config/crush/CRUSH.md(또는option global-context-path로 커스텀 경로)에 배치하세요. - 환경 오버라이드 –
CRUSH_GLOBAL_CONFIG또는CRUSH_GLOBAL_DATA를 설정하여 설정/상태 디렉터리의 위치를 변경할 수 있습니다.
누가 사용할 수 있을까?
- 쉘을 벗어나지 않고 AI 지원을 원하는 터미널 중심 개발자.
- 다양한 OS와 CI 환경에서 일관성 있고 설정 가능한 AI 보조 도구가 필요한 팀.
- 자가 호스팅 LLM(Ollama, 로컬 Hugging Face 추론)을 사용하고 단순한 프론트엔드를 원하는 사용자.
- LLM을 통해 도구 호출을 스크립트화하거나 자동화하면서도 세밀한 권한 제어를 유지하고 싶은 사람.
README에서 링크된 자료
- 릴리스 페이지 – https://github.com/charmbracelet/crush/releases
- 모델 카탈로그 (Catwalk) – https://github.com/charmbracelet/catwalk
- 공식 제공자 (Hyper) – https://hyper.charm.land
- 커뮤니티 채팅 – Slack / Discord 링크 (경고 박스에 언급됨)
결론
Crush는 기존 개발 도구(LSP, 버전 관리, 사용자 정의 MCP 서비스)와 통합되며, 거의 모든 LLM 백엔드와 호환되는 완전 기능의 터미널 기반 LLM 보조 도구입니다. 명령줄을 선호하고 설정 가능하며 권한 인식이 가능한 AI 파트너가 필요한 개발자를 위해 설계되었습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트