ANUS
무엇인가
ANUS는 터미널에서 동작하는 코딩 에이전트로, 저장소의 파일을 읽고 수정하며 셸 명령을 실행한다. CLI 코딩 에이전트 계열에 속하며, 유료 모델 구독이나 종량제 API 키를 요구하는 상용 도구가 차지하는 자리를 무료 모델 라우팅으로 대체한다. 내부 이름은 Autonomous Networked Utility System이다.
어떻게 동작하나
핵심은 무료 모델 라우터다. anus.dev/free-models.json에서 하루 두 번 갱신되는 무료 모델 순위 목록을 받아, 사용자가 키를 가진 모델 중 가장 똑똑하고 최근 핑에 응답한 모델로 요청을 보낸다. 레이트 리밋에 걸린 모델은 1분간, 일일 한도에 걸린 모델은 한도가 초기화될 때까지 쉬고, 요청은 기다리지 않고 다음 모델로 넘어간다. 응답 도중 끊긴 모델도 쉬게 하고 같은 턴을 다음 모델에서 재시도한다. 상태·세션·키·캐시한 모델 목록은 ~/.anus/agent에 저장되고, 키는 auth.json에 소유자만 읽을 수 있는 권한으로 들어간다. 엔진은 Earendil Works의 pi(MIT)를 의존성으로 설치해 쓰며, 그 위에 라우터와 키 설정, 이름과 화면을 얹는다.
무엇과 다른가
상용 코딩 에이전트는 보통 한 제공자의 모델에 묶여 있고 그 제공자가 응답하지 않으면 작업이 멈춘다. ANUS는 여러 제공자의 무료 등급을 폴백 체인으로 엮어 한 곳이 막혀도 같은 요청을 다음 모델로 넘긴다. 셸 환경변수의 유료 키(OPENROUTER_API_KEY 등)는 무시하고 anus setup으로 등록한 키만 쓰므로, 무료 에이전트가 사용자 계정에 과금하는 경로가 없다. 커밋을 만들면 Aider나 OpenCode처럼 Co-Authored-By: ANUS 한 줄을 덧붙인다.
어떻게 쓰나
Node.js 22.19 이상이 필요하다. 첫 실행에서 최소 하나의 무료 API 키를 요구하며 OpenRouter부터 시작하는 구성이 권장되고, 키가 많을수록 하루 무료 요청 수와 폴백 모델이 늘어난다. 키는 언제든 anus setup으로 바꾼다. 대화 중에는 /help로 기본 명령을, /free로 모델별 상태(응답 중·휴식 중·키 없음)를, /model로 모델을 직접 고르고(anus/free가 자동 선택), /compact로 긴 대화를 줄이고, !ls처럼 느낌표를 붙여 셸 명령을 실행한다. 설정은 ~/.anus/agent/settings.json에 두고, 커밋 공동 저자 줄은 anusCoauthor: false나 ANUS_COAUTHOR=0으로 끈다. ANUS_DEBUG=1을 켜면 모든 라우팅 결정이 ~/.anus/agent/anus-debug.log에 기록된다.
전제와 한계
무료 등급은 제공자 정책에 따라 수시로 바뀌므로 모델 목록과 한도는 보장되지 않는다. Google과 Mistral의 무료 플랜, 무료 OpenRouter 모델 뒤의 제공자는 보낸 데이터를 모델 개선에 쓸 수 있으므로 ANUS를 실행하는 폴더에 비밀 정보를 두면 안 된다. 라우팅은 네트워크에서 받아온 목록에 의존하므로 목록을 갱신하지 못하면 폴백 범위가 줄어든다. 셸 환경변수의 유료 키를 쓰려면 ANUS_ENV_KEYS=1을 설정해야 한다.