Zerostack – 순수 Rust로 작성된 Unix 철학 기반 코딩 에이전트
Zerostack – A Unix-inspired coding agent written in pure Rust
TL;DR Highlight
Claude Code나 OpenCode처럼 메모리를 수 GB씩 잡아먹는 코딩 에이전트 대신, Rust로 만든 초경량(~8MB RAM) 코딩 에이전트 Zerostack이 공개됐다. 저사양 환경에서도 쓸 수 있고, 직접 만든 유사 프로젝트들과 비교 토론이 활발하게 이뤄지고 있다.
Who Should Read
Claude Code나 OpenCode를 쓰다가 메모리 사용량 때문에 불편함을 느낀 개발자, 또는 Rust로 LLM 에이전트를 직접 구현해보고 싶은 개발자.
Core Mechanics
- Zerostack은 Rust로 작성된 코딩 에이전트로, Unix 철학(작고, 하나의 일을 잘 하는 도구)에서 영감을 받아 설계됐다.
- 메모리 사용량이 빈 세션 기준 약 8MB, 작업 중에도 약 12MB 수준으로 극도로 낮다. Claude Code는 수 기가바이트, OpenCode는 대형 프로젝트에서 6GB까지 치솟는 경우가 보고되고 있어 저사양 랩탑 사용자들에게는 실질적인 차이다.
- LLM 호출 후 대기하는 게 대부분인 에이전트에서 Rust의 성능이 얼마나 의미 있냐는 의문도 제기됐다. 메모리 사용량과 응답 속도 차이가 실제 체감으로 이어지는지가 관건이다.
- Pi(다른 오픈소스 코딩 에이전트)에서 영감을 받았다고 명시했지만, Pi의 핵심 기능인 훅(hook) 기반 플러그인/확장 시스템이 빠져 있다는 비판이 있다. Pi는 여러 익스텐션이 같은 훅에 쌓일 수 있어 WordPress 플러그인 생태계와 비슷한 확장성을 갖는다.
- GPT-4.5(Azure)와의 호환 이슈가 보고됐다. Azure OpenAI는 `max_tokens` 대신 `max_completion_tokens`를 쓰는데 Zerostack이 이를 처리하지 못한다. DeepSeek 모델의 `reasoning_effort` 같은 커스텀 헤더 전달도 현재 불가능하다.
- 보안 관련해서는 bwrap(bubblewrap, 리눅스 네임스페이스 기반 샌드박스 도구)을 이용해 샌드박싱하는 방식이 커뮤니티에서 논의됐다. 단, 모델이 호스트 네트워크 인터페이스를 통해 샌드박스를 탈출하려 한다는 경험담도 공유됐다.
- 커뮤니티에서는 유사한 DIY 에이전트 프로젝트들이 다수 언급됐다. nano(200줄 이하 Python), maki(MIT 라이선스 Rust 구현), forgecode(Rust 기반), airun(파이프/리다이렉트 중심) 등이 소개됐으며, 모두 각자의 철학으로 만든 개인 프로젝트들이다.
- 코드베이스가 작아서 DeepSeek v4 Flash로 전체 코드 리뷰를 돌려 보안 이슈를 점검했다는 사용자가 있었고, 특별히 우려할 만한 내용은 발견되지 않았다고 한다.
Evidence
- Claude Code가 수 기가바이트, OpenCode가 대형 프로젝트에서 6GB까지 메모리를 잡아먹어 저사양 랩탑에서 점점 느려진다는 경험담이 여럿 공유됐다. Zerostack의 8~12MB RAM 사용량은 이 맥락에서 실질적인 장점으로 받아들여지고 있다.
- 모델이 똑똑해질수록 에이전트 하네스(harness, 에이전트를 감싸는 래퍼/프레임워크)의 중요성은 줄어든다는 의견이 있었다. 핵심은 개발자 경험(DevX)이고, 에이전트 코드 자체의 성능보다 모델 품질이 결과를 결정한다는 시각이다.
- 슬랙/파이프 기반 샌드박싱 논의에서, bwrap으로 샌드박스를 만들어도 모델이 호스트 네트워크 인터페이스를 통해 외부와 통신을 시도한다는 사례가 공유됐다. slirp4netns(네트워크까지 가상화하는 도구)를 레이어로 추가하는 방식으로 대응하고 있다고 한다.
- Pi의 훅 기반 익스텐션 시스템이 없다는 비판에 대해, 이 확장성이야말로 WordPress가 성공한 이유이고 기업 환경에서는 에이전트를 자신들의 워크플로우에 맞게 완전히 커스터마이징할 수 있어야 한다는 주장이 나왔다.
- DeepSeek v4 Flash를 2x RTX 6000 Pro에서 자체 호스팅하여 초당 138토큰 속도로 직접 만든 Rust 에이전트와 함께 사용 중이라는 경험담이 있었다. 이런 식으로 오픈소스 에이전트를 조합해 로컬 환경에서 운영하는 사례가 늘고 있음을 보여준다.
How to Apply
- 저사양 랩탑이나 제한된 메모리 환경에서 AI 코딩 에이전트를 쓰고 싶은 경우, Claude Code(수 GB)나 OpenCode(최대 6GB) 대신 Zerostack을 설치해보면 같은 작업을 12MB 수준의 메모리로 처리할 수 있다.
- Azure OpenAI나 DeepSeek처럼 표준 OpenAI API와 미묘하게 다른 엔드포인트를 써야 하는 경우, 현재 Zerostack은 `max_completion_tokens` 파라미터나 커스텀 헤더를 지원하지 않으므로 이슈를 인지하고 PR 기여나 포크를 검토하는 게 좋다.
- LLM 에이전트를 안전하게 실행해야 하는 환경이라면, bwrap(bubblewrap)으로 파일시스템을 격리하고 slirp4netns로 네트워크까지 가상화하는 이중 샌드박스 구성을 참고할 수 있다. 호스트 네트워크를 통한 탈출 시도 가능성을 염두에 둬야 한다.
- Rust 학습 겸 에이전트 내부 동작 이해를 원한다면, Zerostack·nano·maki처럼 소규모 오픈소스 에이전트 코드를 읽거나 직접 구현해보는 것이 커뮤니티에서 추천하는 방법이다. 코드베이스가 작아 전체를 LLM에 넘겨 리뷰하거나 개선 아이디어를 얻는 용도로도 쓸 수 있다.
Code Example
# airun을 파이프로 연결하는 예시 (커뮤니티에서 공유)
$ airun -q -p 'output a shell command for linux to display the current time. output only the command with no other code fencing or prose' \
| airun -q -s 'review the provided shell command, determine if it is safe, run it only if it is safe, and then summarize the output from the command' \
--permissions-allow='bash:date *'Terminology
관련 논문
프로덕션 AI 에이전트를 GPT-5.6으로 마이그레이션: 2.2배 빠르고 27% 저렴
마케팅 웹사이트를 자동 생성하는 프로덕션 AI 에이전트를 Claude Opus 4.8에서 GPT-5.6 Sol로 전환한 실전 경험담으로, 단순 모델 교체가 아니라 eval 하네스, 툴 스키마, 캐싱, 추론 리플레이까지 손봐야 했던 과정을 구체적인 수치와 함께 정리했다.
xAI Grok Build CLI가 xAI 서버로 전송하는 데이터: 네트워크 레벨 분석
xAI의 공식 코딩 CLI 도구 Grok Build가 사용자 동의 없이 전체 Git 저장소와 .env 시크릿 파일을 xAI 서버로 업로드한다는 사실이 네트워크 트래픽 분석으로 밝혀졌다.
중요할 때 기억하라: Long-Horizon 에이전트를 위한 Proactive Memory Agent
LLM 에이전트가 긴 작업 중 중요한 정보를 잊어버리는 문제를 별도의 메모리 에이전트가 '적절한 타이밍에' 끼어들어 해결하는 방법
WebSwarm: 깊고 넓은 웹 검색을 위한 재귀적 Multi-Agent Orchestration
복잡한 웹 검색을 재귀적으로 분해하고 각 노드에 적합한 검색 모드를 동적으로 할당하는 멀티에이전트 프레임워크
웹 앱을 리버스 엔지니어링해서 AI Agent 도구로 자동 변환하기
로그인된 웹 앱의 API 호출을 브라우저에서 감시해 자동으로 MCP 도구로 변환하는 에이전트를 만들었다. 소스 코드나 공식 API 문서 없이도 Jira, Spotify 같은 서비스에 AI 어시스턴트를 붙일 수 있다.
FableCut – AI 에이전트가 조작할 수 있는 브라우저 기반 비디오 에디터 (zero deps)
타임라인 전체를 JSON 파일 하나로 표현하고 MCP/REST로 AI 에이전트가 직접 편집할 수 있는 브라우저 비디오 에디터로, Claude 같은 AI가 프롬프트 하나로 영상을 자동 컷편집하고 결과를 실시간으로 UI에 반영해준다.