AI 에이전트가 GUI 대신 CLI를 선호하는 현상, 그리고 에이전트가 쓰기 좋게 CLI를 재설계하는 움직임. 구조화된 출력과 조합성이 에이전트 시대에 CLI를 다시 부활시켰다.
GUI는 사람에게 편하지만 AI 에이전트에게는 불편하다. 버튼을 찾아 클릭하고, 화면 상태를 해석해야 한다. 반면 CLI는 텍스트를 입력하면 텍스트가 나온다. LLM이 가장 잘하는 게 텍스트 처리인 만큼, CLI는 에이전트에게 가장 자연스러운 인터페이스다. Claude Code, Codex CLI, Gemini CLI가 연달아 출시되면서 CLI 기반 에이전트 도구가 하나의 카테고리로 자리잡았다.
에이전트가 CLI를 선호하는 이유는 두 가지다. 첫째, 구조화된 출력이다. --json 플래그 하나면 에이전트가 파싱하기 쉬운 형태로 결과를 받는다. 둘째, 조합성(composability)이다. 작은 명령을 파이프로 연결해 복잡한 워크플로우를 만드는 Unix 철학이 에이전트의 작업 방식과 정확히 맞아떨어진다.
Claude Code에서 에이전트가 git log --oneline, npm test, grep -r "TODO" 같은 CLI 명령을 직접 실행하는 것 자체가 에이전트 CLI의 전형적인 사용이다. MCP 서버 없이도 셸 접근만 있으면 대부분의 로컬 작업을 처리할 수 있는 이유다.
에이전트용으로 CLI를 새로 설계할 때는 모든 명령에 --json 출력을 지원하고, 에러 메시지를 구조화하고, 명령 하나가 하나의 기능만 담당하게 쪼갠다.
CLI가 만능은 아니다. OAuth 인증이 필요한 SaaS API나 실시간 양방향 통신이 필요한 경우에는 MCP가 더 적합하다. 로컬=CLI, 원격=MCP 하이브리드가 프로덕션 합의다.