AI 코딩 에이전트(AI coding agents)를 길들이기 위한 오픈 소스 워크스페이스를 구축했습니다
요약
AgentGrove는 Claude Code, opencode 등 다양한 AI 코딩 CLI를 하나의 UI에서 통합 관리할 수 있는 오픈 소스 로컬 개발 워크스페이스입니다. Git 워크트리를 활용한 격리된 환경 제공, 프롬프트 대기열, 멀티 프로바이더 지원 등 에이전트 기반 개발의 효율성을 높이는 기능을 갖추고 있습니다.
핵심 포인트
- 다양한 AI 코딩 CLI를 하나의 UI로 통합 관리
- Git 워크트리를 활용한 에이전트별 격리된 작업 환경 제공
- 프롬프트 대기열 및 세션 재개 기능 지원
- 사용자 API 키를 직접 노출하지 않는 안전한 인증 방식
- Rust와 SolidJS 기반의 고성능 단일 바이너리 구조
문제점
모든 AI 코딩 CLI는 제각각입니다. 서로 다른 플래그(flags), 서로 다른 세션 모델(session models)을 사용하며, 이들 모두가 사용자의 단일 작업 복사본(working copy)을 수정합니다. 저는 API 키를 또 다른 앱에 넘겨주지 않으면서도, 격리된 브랜치(isolated branches)에서 에이전트를 병렬로 실행하고, 에이전트가 작업하는 동안 프롬프트(prompts)를 대기열에 넣으며, 실제 UI를 가질 수 있기를 원했습니다.
AgentGrove란 무엇인가
AgentGrove는 오픈 소스 (MIT) 로컬 개발자 워크스페이스(workspace)입니다. 이 도구는 사용자의 머신에 이미 설치된 에이전트 CLI(Claude Code, opencode, Kimi)를 실행하고, 그들의 이벤트 스트림(event streams)을 하나의 UI로 변환하며, 모든 채팅을 git 워크트리(worktree)로 범위 지정(scope)합니다.
기능 투어
- 멀티 프로바이더 에이전트 (Multi-provider agents) — Claude, opencode, Kimi; 실시간 모델 목록, 세션 재개(session resume), 채팅별 모델/노력(effort) 설정
- 어디서나 워크트리 (Worktrees everywhere) — 각 채팅은 자체 워크트리(worktree)에 존재할 수 있습니다; UI에서 생성/복구 가능,
pnpm install등을 위한 사전 스크립트(pre-scripts), 이동 경로를 보여주는 은하계 지도와 함께 천체 브랜치(celestial branch) 이름 사용 - 실제 채팅 UX (Real chat UX) — 병합(coalescing) 기능이 포함된 스트리밍, 사고 블록(thinking blocks), 도구 활동 레일(tool activity rail), 재시도(retry), 포킹(forking), 프롬프트 되돌리기(prompt-revert, 프롬프트가 수정한 파일들을 실행 취소)
- 프롬프트 대기열 (Prompt queue) — 에이전트가 작업하는 동안 메시지가 대기열에 쌓입니다; 자동 배출(auto-drain) 또는 수동 모드
- Postgres DB 에디터 (Postgres DB editor) — 인라인 테스트가 포함된 저장된 연결, 필터 + 페이지네이션이 있는 테이블 브라우저, 스키마 자동 완성(schema autocomplete)이 지원되는 SQL 에디터
- 제대로 구현된 기본 기능 (The basics done right) — PTY 터미널, 자동 저장 기능이 있는 CodeMirror 에디터, 10만 개 이상의 파일에 대해 10ms 미만의 퍼지 파일 검색(fuzzy file search), 메모장(notes scratchpad), 팀 채팅
- Rust + SolidJS — 단일 바이너리 백엔드(single-binary backend), 낮은 메모리 점유율(low memory footprint), 핫 리로드(hot-reload) 개발
작동 방식
벤더 SDK(vendor SDKs)를 사용하지 않습니다. 각 프로바이더(provider)는 JSON 스트림 플래그와 함께 CLI를 실행하고 이벤트를 공통 열거형(common enum: Token, Thinking, ToolCall, ToolResult, Done, Error)으로 변환하는 작은 서브프로세스 어댑터(subprocess adapter, 약 400줄의 Rust 코드)입니다. 인증(Auth)은 사용자의 로컬 CLI에 유지되며, 앱은 키를 절대 볼 수 없습니다. 프로바이더를 추가하는 것은 하나의 변환기(translator)를 작성하고 이를 등록하는 것을 의미합니다.
테스트
두 가지 계층이 이 과정의 정직함을 유지합니다. 하나는 dispatch/queue/resume E2E (end-to-end) 테스트를 위한 결정론적 가짜 프로바이더(deterministic fake provider)이고, 다른 하나는 실제 CLI를 대상으로 하는 실제 모델 기반의 Playwright 실행입니다. README에 있는 데모 영상은 연출된 스크린샷이 아니라, 격리된 Docker 스택(DB 에디터 데모를 위한 시드된 Postgres 포함) 내에서 Playwright를 통해 녹화된 것입니다.
사용해 보기
git clone https://github.com/arnabk/agentgrove.git
cd agentgrove && just dev
데모 영상은 README에서 확인할 수 있습니다. 이슈(Issues)와 PR(Pull Requests)을 환영합니다. 다음에 어떤 프로바이더를 원하는지 꼭 듣고 싶습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기