zerostack: 메모리 사용을 최소화하도록 Rust로 만든 경량 코딩 에이전트

zerostack 소개

터미널에서 도는 코딩 에이전트는 편리하지만, 상당수가 JavaScript 런타임 위에 올라가 있어 유휴 상태에서도 수백 MB의 메모리를 붙잡고 있습니다. zerostack 은 이 무게를 덜어내는 것을 목표로 Rust로 작성된 경량 코딩 에이전트입니다. 개발자 Giuseppe Della Vedova 가 만들었으며, 터미널 코딩 에이전트인 piopencode에서 영감을 받았다고 밝히고 있습니다.

zerostack 의 출발점은 "필요한 만큼만 쓰는" 자원 사용입니다. 저자가 공개한 측정값에 따르면 핵심 코드는 약 3만 줄, 바이너리 크기는 26MB이며, 평균 메모리 사용량은 약 16MB(최대 약 24MB)입니다. 같은 작업을 JavaScript 기반 에이전트로 하면 평균 약 300MB, 최대 약 700MB에 이른다는 것이 저자의 비교입니다. 가벼운 바이너리 하나로 동작하므로 원격 서버나 사양이 낮은 장비에서도 부담이 적습니다.

가볍다고 기능이 빈약한 것은 아닙니다. zerostack 은 여러 LLM 제공자를 함께 쓸 수 있고, 작업 성격에 맞춰 시스템 프롬프트를 바꾸는 프롬프트 모드, 다섯 단계로 나뉜 권한 시스템, 코드베이스를 병렬로 탐색하는 서브에이전트(subagent), MCP 연동, 세션 저장·복원과 자동 압축까지 갖추고 있습니다. 이 글에서는 zerostack 의 자원 설계와 핵심 기능, 권한 모델, 설치·사용법을 정리합니다.

zerostack의 가벼운 메모리 설계

zerostack 이 내세우는 가장 뚜렷한 차별점은 자원 사용량입니다. 저자는 Intel i5 7세대 환경에서 측정했다고 밝히며, zerostack 은 유휴 상태에서 CPU를 거의 쓰지 않고(0.0%) 도구를 실행할 때도 약 1.5%에 그친다고 설명합니다. 같은 조건에서 opencode 는 유휴 시 약 2%, 작업 시 약 20%를 쓴다는 것이 저자의 비교입니다. 위 화면은 zerostack 이 코드 리뷰를 수행하는 동안 우측 시스템 모니터에 해당 프로세스가 24M 메모리로 잡힌 모습으로, 저자가 제시한 수치와 맞닿아 있습니다.

이런 자원 사용량은 곧 배치 유연성으로 이어집니다. 단일 바이너리로 동작하므로 사양이 낮은 원격 머신이나 여러 세션을 동시에 띄우는 환경에서도 시스템 부하가 작습니다. 다만 저자는 Windows 지원은 전혀 검증되지 않았으니 문제가 있으면 이슈로 알려 달라고 덧붙이고 있습니다.

zerostack의 핵심 기능

zerostack 은 OpenRouter를 기본으로 OpenAI, Anthropic, Gemini, Ollama와 사용자 정의 제공자까지 여러 LLM 백엔드를 함께 쓸 수 있습니다. 여기에 코딩 에이전트가 흔히 노출하는 표준 도구 세트(파일 읽기·쓰기·편집, bash 실행 등)를 제공하고, Exa 검색을 통합해 웹 조회와 검색 도구도 붙어 있습니다.

작업 성격에 따라 에이전트의 행동을 바꾸는 프롬프트 모드도 특징입니다. 실행 중 /prompt 로 전환할 수 있으며, 기본 제공되는 모드에는 코드 작성용 code, 계획만 세우는 plan, 코드 리뷰용 review, 근본 원인부터 찾는 debug, 읽기 전용 ask, 설계 탐색용 brainstorm, 보안 리뷰용 review-security 등이 있습니다. 사용자는 $XDG_CONFIG_HOME/zerostack/prompts/ 에 마크다운 파일을 두어 커스텀 프롬프트를 추가할 수도 있습니다. 또한 brainstorm → plan → code → review 로 이어지는 프롬프트 체이닝을 각 단계가 끝날 때마다 제안하도록 설정할 수 있습니다.

코드베이스 탐색에는 병렬로 도는 서브에이전트를 사용하고, 세션은 저장·복원·재개가 가능하며 컨텍스트 창을 넘지 않도록 자동 압축(auto-compaction)이 동작합니다. 이 밖에도 컴파일 타임 기능으로 활성화하는 항목이 여러 가지 있습니다. MCP 서버 연동, 세션을 넘어 유지되는 마크다운 기반 영속 메모리, Claude Code의 스키마와 대체로 호환되는 라이프사이클 훅(hooks), 중간에 다른 모델에게 전략적 조언을 구하는 어드바이저(advisor), 이미지·PDF를 붙이는 멀티모달 입력, 그리고 에디터가 ACP(Agent Communication Protocol)로 접속하게 하는 서버 기능 등이 여기에 해당합니다.

zerostack의 권한 시스템

에이전트가 파일을 고치고 명령을 실행하는 만큼, zerostack 은 권한을 다섯 단계 모드로 나눠 통제합니다. 각 모드는 CLI 플래그로 지정하며, 설정 파일에서 도구별 글로브 패턴으로 더 세밀하게 조정할 수 있습니다.

모드 플래그 동작
restrictive -R 모든 작업에 확인을 요청
readonly --read-only 읽기·검색만 허용, 쓰기·편집·bash는 거부
guarded --guarded 읽기는 허용, 쓰기·편집·bash는 확인 요청
standard (기본) (기본값) 현재 디렉토리와 하위 경로의 파일 작업 허용, 안전한 bash 명령 자동 허용, 외부 경로나 미확인 명령은 확인
yolo --yolo 대부분 허용하되 rm·dd·mkfs 같은 파괴적 명령은 확인

세션 동안 승인한 결정은 세션 허용목록(allowlist)에 남아 같은 작업을 반복 확인하지 않아도 됩니다. 또한 동일한 도구 호출이 3회 이상 반복되면 경고를 띄우는 둠 루프(doom-loop) 감지 기능으로 폭주하는 에이전트를 막습니다. bash 명령을 격리 환경에서 실행하는 --sandbox 옵션은 bubblewrap이 설치되어 있어야 동작합니다.

zerostack 설치 및 사용법

가장 간단한 설치는 설치 스크립트입니다.

curl -fsSL https://raw.githubusercontent.com/gi-dellav/zerostack/main/install.sh | bash

Rust 사용자는 cargo 로, macOS 사용자는 Homebrew로도 설치할 수 있습니다.

# Cargo (기본 기능)
cargo install zerostack
# 모든 기능 포함
cargo install zerostack --all-features
# 특정 기능만
cargo install zerostack --features acp,memory,hooks,advisor

# Homebrew
brew tap gi-dellav/tap
brew install zerostack

설치 후에는 API 키를 지정하고 바로 대화형 세션을 시작할 수 있습니다.

# API 키 설정 (기본 제공자는 OpenRouter)
export OPENROUTER_API_KEY="[api_key]"

# 대화형 세션 (기본 프롬프트: code)
zerostack

# 한 번만 실행 (one-shot)
zerostack -p "이 프로젝트를 설명해줘"

# 마지막 세션 이어서
zerostack -c

# 제공자·모델 지정
zerostack --provider openrouter --model deepseek/deepseek-v4-flash

설치 직후 zerostack 안에서 /prompt autoconfig 를 실행하면, 문서를 탐색하고 설정을 대화형으로 도와주는 전용 프롬프트로 초기 구성을 잡을 수 있습니다. 여러 zerostack 에이전트를 터미널에서 함께 오케스트레이션하려면 자매 도구인 multistack을 함께 설치합니다.

zerostack의 라이선스

zerostack 은 GPL-3.0 라이선스로 공개되어 있습니다. 소스를 자유롭게 사용·수정·배포할 수 있지만, 이를 기반으로 한 파생 저작물을 배포할 때는 동일하게 GPL-3.0으로 공개해야 하는 카피레프트(copyleft) 조건이 따르므로, 상업적 통합을 고려한다면 이 점을 확인하는 것이 좋습니다.

:github: zerostack 프로젝트 GitHub 저장소

:house: zerostack 공식 홈페이지

:books: zerostack 시작하기 가이드

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: