
Claude Code × herdr로 「파일 열어줘」라고 말하는 것만으로 옆 페인에 CUI 에디터를 열게 하기
요약
Claude Code와 터미널 워크스페이스 매니저인 herdr를 연동하여, 자연어 명령만으로 새 페인에 nvim 에디터를 즉시 실행하는 워크플로우를 소개합니다. 셸 함수와 Claude Code의 rules 및 permission 설정을 통해 승인 절차를 최소화하고 개발 생산성을 높이는 방법을 다룹니다.
핵심 포인트
- herdr를 활용한 터미널 페인 제어 및 AI 에이전트 연동
- Claude Code rules 설정을 통한 자연어 기반 파일 열기 구현
- 셸 함수를 사용하여 Claude Code의 반복적인 승인 요청 문제 해결
- nvim과 Claude Code를 결합한 효율적인 CUI 개발 환경 구축
Claude Code로 작업하는 중에, 생성·편집한 파일을 「그 파일 열어줘」라고 말하는 것만으로, 옆 페인(pane)에 CUI 에디터(nvim 등)로 열어주었으면 좋겠다.
필자는 평소 nvim으로 개발하고 있지만, Claude Code와의 대화 중에 파일을 확인하고 싶을 때, 매번 파일 경로를 복사해서 페인 분할을 하고 nvim을 실행하고…… 하는 절차가 번거로웠다. 대화의 흐름 그대로 「열어줘」라는 한마디로 끝내고 싶다.
herdr는 AI 코딩 에이전트 시대를 위해 설계된 터미널 워크스페이스 매니저(terminal workspace manager). tmux처럼 페인 분할이나 세션 관리를 할 수 있지만, CLI에서 페인을 조작하는 API를 갖추고 있는 것이 특징.
이번처럼 외부 프로그램(Claude Code)에서 herdr pane split이나 herdr pane run을 호출하여 페인을 제어할 수 있기 때문에, AI 에이전트와의 연동에 적합하다.
- 터미널 워크스페이스 매니저: herdr
- 에디터: nvim
- AI: Claude Code (CLI)
- jq (셸 함수 내에서 JSON 파싱에 사용)
Claude Code의 rules에 다음과 같이 적으면, herdr의 명령어 2개로 실현할 수 있다.
## 파일 열기
사용자가 「열어줘」, 「파일 열어줘」 등의 지시를 했을 경우, 다음 절차로 대상 파일을 연다.
1. `herdr pane split --current --direction right`로 페인 분할 (응답의 pane_id를 취득)
...
이것만으로도 동작은 하지만, Claude Code는 Bash 명령어를 실행할 때마다 사용자에게 승인을 요청한다. 즉, 「열어줘」라고 말할 때마다 2번의 승인이 필요하다. 이래서는 수고가 줄어들지 않는다.
승인 없이 매끄럽게 작동시키기 위해, 다음 3단계로 설정을 진행한다.
2개의 명령어를 하나의 셸 함수로 묶는다. 이렇게 하면 permission의 allow 패턴을 하나만 작성하면 된다. .zshrc나 .bashrc에서 정의한다.
function herdr-open-nvim() {
if [ $# -eq 0 ]; then
echo "Usage: herdr-open-nvim <file_path>"
...
하고 있는 일:
herdr pane split --current --direction right로 현재 페인을 오른쪽 방향으로 분할 - 응답 JSON에서 새로운 페인의 ID를 취득herdr pane run <pane_id> nvim <file>로 새 페인에 nvim을 실행
rules에 적음으로써, Claude Code는 「열어줘」 계열의 지시를 받았을 때 이 명령어를 사용해야 한다는 것을 이해한다.
~/.claude/rules/open_file.md (경로는 각자의 rules 배치 장소에 맞춤):
## 파일 열기
사용자가 「열어줘」, 「파일 열어줘」 등의 지시를 했을 경우, `herdr-open-nvim` 명령어로 대상 파일을 연다.
```bash
herdr-open-nvim <file_path>
`~/.claude/settings.json`의 `permissions.allow`에 추가:
```json
{
"permissions": {
"allow": [
...
Claude Code는 Bash 명령어 실행 시 기본적으로 사용자 승인을 요청한다. 매번 「허용하시겠습니까?」라고 묻는 것은 번거로우므로, 이 명령어는 사전에 허용해 둔다.
Claude Code와의 대화에서:
나: 이 파일 열어줘
Claude: (오른쪽으로 페인 분할하여 nvim으로 열기)
파일 경로가 문맥상 명확하다면 지정할 필요가 없다. Claude Code가 직전에 다룬 파일을 열어준다.
Claude Code에는 행동을 제어하는 메커니즘이 몇 가지 있다. 이번에 사용한 2가지를 정리:
| 구분 | rules | permission |
|---|---|---|
| 역할 | 무엇을 해야 하는가 | 무엇을 허용할 것인가 |
| 위치 | ~/.claude/rules/ 또는 프로젝트의 .claude/CLAUDE.md | ~/.claude/settings.json |
| 효과 | 매번 반드시 읽힘 | 도구 호출 시 승인을 스킵 |
rules로 "방법"을 가르치고, permission으로 "승인 불필요"로 설정한다. 이 둘을 세트로 사용함으로써 매끄럽게 동작한다.
- herdr의 pane API를 사용하면, Claude Code로부터 터미널 조작이 가능
- 쉘 함수 (shell function)로 묶어서 rules + permission으로 설정하면, 자연어로 조작 가능
- 동일한 수법으로 "브라우저에서 열어줘", "로그를 tail 해줘" 등도 실현 가능
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기