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
Related Papers
Show HN: Semble – Code search for agents that uses 98% fewer tokens than grep
AI 에이전트가 코드베이스를 탐색할 때 grep+파일 읽기 대신 자연어로 관련 코드 스니펫만 뽑아주는 검색 라이브러리로, 토큰 사용량을 약 98% 줄여준다.
Δ-Mem: Efficient Online Memory for Large Language Models
LLM의 컨텍스트 윈도우를 늘리지 않고도 과거 정보를 효율적으로 기억할 수 있는 경량 메모리 모듈 δ-mem을 제안한 논문. 모델 자체를 바꾸거나 파인튜닝 없이 기존 LLM에 붙여서 장기 기억 성능을 높일 수 있어 에이전트 시스템 개발자에게 관심을 끌고 있다.
How Claude Code works in large codebases
Anthropic이 수백만 줄짜리 모노레포, 레거시 시스템, 수십 개 마이크로서비스 환경에서 Claude Code를 운영한 패턴을 정리한 글이다. RAG 방식 대신 에이전틱 검색을 쓰는 이유와 실제 현장의 한계를 함께 확인할 수 있다.
Show HN: Needle: We Distilled Gemini Tool Calling into a 26M Model
Gemini의 함수 호출(tool calling) 능력만 뽑아서 26M(2600만) 파라미터짜리 초경량 모델로 만든 프로젝트로, 폰/워치/스마트글라스 같은 엣지 디바이스에서 직접 실행 가능하다.
Show HN: Agentic interface for mainframes and COBOL
수십 년 된 메인프레임(z/OS) 환경을 AI 에이전트로 조작할 수 있게 해주는 개발 도구로, COBOL 코드 작성부터 JCL 실행, 디버깅까지 자연어로 처리할 수 있어 레거시 시스템 유지보수 비용을 크게 줄일 수 있다.
Show HN: Statewright – Visual state machines that make AI agents reliable
AI 에이전트에게 40개 이상의 도구를 주면 오히려 성능이 떨어지는 문제를 State Machine으로 각 단계별 사용 가능한 도구를 제한해 해결하는 오픈소스 프로젝트다. 더 큰 모델 대신 더 작은 문제 공간을 만들어 신뢰성을 높이는 접근이 핵심이다.