
Emacs에서 AI 에이전트를 사용할 수 있게 하는 agent-shell 0.87이 버그 수정과 사용성 개선을 중심으로 업데이트됐다. Junie와 OpenClaw를 새로 지원하고, 대기 중인 프롬프트를 기본적으로 하나의 요청으로 합친다.
agent-shell은 ACP(Agent Client Protocol)를 통해 AI 에이전트를 Emacs 버퍼와 키 바인딩에서 사용할 수 있게 하는 도구다. 이번 업데이트로 지원 에이전트는 23종이 됐다. 자세한 변경 사항은 전체 변경 목록에서 볼 수 있다.
새로 지원하는 에이전트는 JetBrains의 Junie와 OpenClaw다. Emacs에서 M-x agent-shell-junie-start-agent 또는 M-x agent-shell-openclaw-start-agent를 실행해 시작한다.
기본 설정에서 대기 중인 프롬프트는 빈 줄로 구분해 하나의 요청으로 합쳐 전송한다. 이전 동작을 선호하면 다음 설정으로 병합을 끌 수 있다.
(setopt agent-shell-prompt-queue-merge nil)
요청을 취소할 때 대기열의 작업을 이어서 진행할지 선택할 수 있게 됐고, 셸을 종료할 때는 대기 중인 작업이 사라진다는 경고도 표시한다. 프롬프트와 헤더의 작업 중 표시도 사용자 설정을 지원한다. 예를 들어 정적인 표시 문구를 지정할 수 있다.
(setopt agent-shell-busy-indicator-frames "(busy)")
@ 파일 완성과 / 명령 완성은 완성 기능과 입력 중 팝업 표시 여부를 따로 설정하도록 바뀌었다. 완성 기능은 completion-at-point, corfu, company에서 사용할 수 있으며, 입력 중 파일 목록을 자동으로 띄우지 않으려면 다음처럼 설정한다.
(setopt agent-shell-file-completion-enabled nil)
이 밖에 대화에서 자신과 에이전트의 이름표를 직접 꾸미는 기능, 대화 기록에 YAML 메타데이터를 넣는 기능이 추가됐다. M-x yank-media로 시스템 클립보드의 이미지를 붙여넣을 수 있으며, Codex 세션 시작 시 추론 강도 등 설정값을 지정할 수도 있다. 도구 출력이 긴 한 줄 때문에 버퍼를 느리게 만드는 문제와 큰 접힌 출력에서 커서가 지연되는 문제도 수정했다.
패키지 제작자를 위한 기능으로는 셸 초기화 완료 여부를 확인하는 agent-shell-initialized-p, 에이전트 설정을 읽고 변경하는 함수가 추가됐다. 세션의 ACP 통신 내용을 .traffic 파일로 저장하는 M-x agent-shell-save-traffic 명령도 제공한다. 새로 공개된 agent-shell-gc는 버퍼를 자동으로 종료하는 기능을 추가하는 서드파티 패키지다.
업데이트에는 렌더링과 응답성 개선, 원격 환경 관련 수정도 포함됐다. TRAMP 사용자를 위해 셸 명령 출력이 셸의 디렉터리에서 처리되며, README에는 TRAMP에서 에이전트가 ‘Loading…’ 상태로 멈춰 보이는 경우의 안내가 추가됐다. 해당 현상은 버그가 아니라 tramp-remote-path와 직접 비동기 프로세스 설정과 관련된 것으로 설명됐다. 이전 업데이트는 0.78 업데이트 글에서 확인할 수 있다.
부록: 원문 예시
(setopt agent-shell-busy-indicator-frames
(lambda ()
(if (agent-shell-session-id)
"(busy)"
"(connecting)")))
---
agent: "Claude"
started: "2026-10-11T09:30:12+01:00"
working_directory: "~/stuff/active/code/agent-shell"
session_id: "0f3c9a1e-5b7d-4e2a-9c81-6d4f2b8e7a35"
model: "claude-opus-4-5"
---
(setopt agent-shell-openai-default-config-options
'(("reasoning_effort" . "high")))
(agent-shell-config-options)
(agent-shell-config-option :category "thought_level")
(agent-shell-config-option-value :id "effort")
(agent-shell-set-config-option-value :id "effort" :value "high"
:on-success (lambda (_) (message "Set")))
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요