목록으로
5 분 소요

AI 에이전트 코딩을 위한 터미널 설정

Ghostty, Yazi, Fish, LazyGit으로 여러 AI 에이전트를 동시에 실행하는 가벼운 터미널 스택을 소개합니다.

AI 코딩의 병목은 이제 에이전트 자체가 아닙니다. Claude Code, Aider, Codex CLI 같은 도구들은 이미 상당히 뛰어납니다. 진짜 제약은 여러 에이전트를 동시에 돌리면서 출력을 확인하고, 방향이 틀어지면 수정하고, 작업 결과를 병합하는 사람의 능력에 있습니다.

저는 이 문제를 해결하기 위해 터미널 중심 설정을 사용합니다. 가볍고 조합 가능한 네 가지 도구: 터미널은 Ghostty, 파일 탐색은 Yazi, 셸은 Fish, Git 작업은 LazyGit입니다. 각 도구가 왜 필요한지 설명하겠습니다.

왜 터미널인가

AI 코딩 에이전트는 CLI 네이티브입니다. 파일을 읽고, 명령을 실행하고, 터미널에 결과를 출력합니다. 세 개의 에이전트를 동시에 돌리려면 - 하나는 기능 개발, 하나는 버그 수정, 하나는 테스트 작성 - 세 개의 셸 세션이 나란히 필요합니다.

IDE로도 가능하지만 대가가 있습니다. VS Code에 여러 통합 터미널, 확장 프로그램, 언어 서버, 에디터까지 돌리면 쉽게 2~4GB의 RAM을 사용합니다. 그 메모리는 AI 에이전트가 쓸 수 있는 자원입니다. 모든 컨텍스트 토큰, API 호출, 파일 읽기가 같은 시스템 자원을 놓고 경쟁합니다.

가벼운 터미널 설정은 이 구도를 뒤집습니다. 제가 쓰는 도구들을 다 합쳐도 Electron 기반 에디터 하나보다 자원을 훨씬 적게 사용하기 때문에, 실제로 일하는 에이전트에 자원을 집중시킬 수 있습니다.

Ghostty - 기반

Ghostty는 macOS에서는 Metal, Linux에서는 OpenGL을 사용하는 GPU 가속 터미널 에뮬레이터입니다. Zig로 작성되었으며, 벤치마크에서 일반 텍스트 렌더링이 iTerm2와 Kitty보다 약 4배 빠르고, 부하가 심한 상황에서도 약 60fps를 유지합니다.

에이전트 워크플로우에서 핵심 기능은 네이티브 분할과 탭입니다. tmux가 필요 없습니다. Ghostty가 애플리케이션 레벨에서 창 분할을 처리하므로 렌더링이 매끄럽고, 폰트 스케일링이 정확하며, 별도 설정이 불필요합니다. 새 분할을 열고, 에이전트를 시작하면 바로 실행됩니다.

제 기본 레이아웃은 네 개의 패널입니다:

  • 좌상단: 기능 브랜치에서 작업하는 Claude Code
  • 우상단: 별도 작업을 처리하는 두 번째 에이전트
  • 좌하단: 파일 변경을 모니터링하는 Yazi
  • 우하단: 변경사항을 리뷰하고 커밋하는 LazyGit

LLM이 긴 응답을 스트리밍할 때, 빠른 출력에 버벅이는 터미널들이 있습니다. Ghostty의 GPU 렌더링은 프레임 드롭이나 지연 없이 이를 처리하며, 여러 스트림을 동시에 볼 때 특히 중요합니다.

Yazi - 에이전트가 작업하는 동안 탐색하기

세 개의 에이전트가 코드베이스 전반에서 파일을 수정하고 있을 때, 무엇이 바뀌고 있는지 빠르게 확인할 방법이 필요합니다. Yazi는 완전한 비동기 I/O를 갖춘 Rust로 작성된 터미널 파일 매니저입니다. 모든 작업이 논블로킹이어서 대용량 디렉토리를 탐색할 때도 백그라운드에서 파일 미리보기가 로드되는 동안 멈추는 일이 없습니다.

저는 한쪽 패널에 Yazi를 열어두고 다음 용도로 사용합니다:

  • 변경 모니터링 - 에이전트가 실시간으로 파일을 생성하고 수정하는 것을 확인
  • 파일 미리보기 - 에디터를 열지 않고도 구문 강조된 코드, 이미지, PDF까지 인라인으로 확인
  • 일괄 이름 변경 - 에이전트가 생성한 파일의 명명 규칙을 조정할 때
  • 디렉토리 간 빠른 이동 - 북마크와 검색 기능 활용

플러그인 시스템(Lua 기반)으로 워크플로우에 맞게 커스터마이징할 수 있습니다. 저는 Git 상태 표시와 빠른 디렉토리 이동을 위한 몇 가지 플러그인을 사용하지만, 기본 설정만으로도 충분히 쓸 만합니다.

Fish Shell - 인지 부하 줄이기

네 개의 터미널 패널을 오가며 작업할 때, 인지 부하가 빠르게 누적됩니다. 패널을 힐끗 보고 무슨 작업 중이었는지 기억해내고, 상황을 파악하고, 명령을 입력하고, 다음으로 넘어가야 합니다.

Fish는 별도 설정 없이 바로 작동하는 기능으로 이 마찰을 줄여줍니다:

  • 자동 제안: Fish가 히스토리 기반으로 나머지 명령을 회색 텍스트로 제안합니다. 오른쪽 화살표를 누르면 수락됩니다. 플러그인이 필요 없습니다.
  • 구문 강조: 유효한 명령은 한 색상, 잘못된 명령은 다른 색상으로 표시됩니다. 엔터를 누르기 전에 오타를 잡을 수 있습니다.
  • 탭 완성: Fish가 man 페이지를 파싱해서 자동으로 완성 목록을 생성합니다. 명령을 입력하고 탭을 누르면 상황에 맞는 옵션이 나타납니다.

zsh와의 핵심 차이는 설정이 전혀 필요 없다는 점입니다. oh-my-zsh를 설치할 필요도, .zshrc를 관리할 필요도, 플러그인 매니저를 업데이트할 필요도 없습니다. Fish는 설치 직후 바로 동작합니다. 에이전트 관리에 집중하고 있을 때, 셸 설정을 디버깅하는 것은 가장 하고 싶지 않은 일입니다.

LazyGit - 워크트리 기반 병렬 개발

여기서 이 설정이 병렬 에이전트 작업에서 진가를 발휘합니다. LazyGit은 Git용 터미널 UI이며, 워크트리 지원이 멀티 에이전트 개발을 실용적으로 만들어줍니다.

패턴은 간단합니다: 각 에이전트가 별도의 Git 워크트리에서 작업합니다. 워크트리는 다른 브랜치를 다른 디렉토리에 체크아웃한 저장소의 연결된 사본입니다. 에이전트 A는 ./feature-auth/에서 feat/auth 브랜치를, 에이전트 B는 ./fix-perf/에서 fix/performance 브랜치를 작업합니다. 서로의 파일을 건드리지 않으므로 병렬 작업 중 머지 충돌이 발생하지 않습니다.

LazyGit은 이 워크플로우 관리를 시각적이고 빠르게 만들어줍니다:

  • 워크트리 생성 - 키 하나(w)로 생성
  • 워크트리 간 전환 - 각 에이전트의 작업 결과를 리뷰
  • 인터랙티브 리베이스 - 병합 전 에이전트의 커밋 히스토리 정리
  • 시각적 diff - 브랜치 간 변경사항을 나란히 비교
  • 실행 취소/다시 실행 - reflog 통합으로, 에이전트가 예상치 못한 결과를 만들면 z를 눌러 되돌리기

시각적 Git 도구 없이 여러 워크트리를 관리하려면 cd 명령과 git log 출력을 디렉토리마다 오가야 합니다. LazyGit은 이 모든 것을 하나의 탐색 가능한 인터페이스로 압축합니다.

모든 것을 합치면

일반적인 세션은 이렇게 진행됩니다: Ghostty를 열고 네 개의 패널로 분할합니다. LazyGit으로 두 개의 워크트리를 만듭니다 - 하나는 기능 개발용, 하나는 버그 수정용. 좌상단 패널에서 기능 워크트리를 가리키는 Claude Code를 시작하고, 우상단 패널에서 버그 수정 워크트리를 가리키는 두 번째 에이전트를 시작합니다. 좌하단은 Yazi로 두 워크트리 디렉토리를 탐색하고 변경사항을 실시간으로 미리봅니다. 우하단은 LazyGit으로 diff를 리뷰하고, 변경사항을 스테이징하고, 최종적으로 두 브랜치를 병합합니다.

핵심은 이 도구들 중 어느 것도 자원을 놓고 경쟁하지 않는다는 것입니다. Ghostty, Yazi, Fish, LazyGit 모두 컴파일된 네이티브 프로그램입니다. Electron 런타임도, JVM도, 백그라운드에서 메모리를 소비하는 Python 인터프리터도 없습니다. 실제 컴퓨팅이 이루어지는 AI 에이전트에 시스템 자원이 온전히 남아있습니다.

마치며

최고의 AI 에이전트 코딩 설정은 어떤 AI 모델을 쓰느냐가 아니라, 사람의 역할에 달려 있습니다. 여러 에이전트를 실행하고, 출력을 모니터링하고, 방향이 틀어지면 수정하고, 작업을 깔끔하게 병합하는 능력이 실제 생산성을 결정합니다.

이 스택은 의견이 강하지만 최소한입니다. 렌더링은 Ghostty, 파일은 Yazi, 셸은 Fish, Git은 LazyGit. 각 도구는 빠르고, 가볍고, 조합 가능합니다. AI 코딩 에이전트를 사용하면서 병렬 터미널 워크플로우를 아직 시도해보지 않았다면, 이 중 하나를 골라서 어떻게 달라지는지 확인해보세요.

뉴스레터 구독하기

최신 프로젝트, 아티클, AI와 웹 개발 실험에 대한 소식을 받아보세요.