bailout: 설치해 쓰고 바로 지우는 초소형 코딩 에이전트 하네스

Published · AI Daily — AI-assisted deep research, methodology & disclosure

GitHub 프로젝트 bailout은 스스로를 “삭제되도록 만든 harness”라고 소개합니다. curl 명령 한 줄로 약 0.6MB의 네이티브 바이너리를 설치하며 계정, 로컬 API 키, Git, Node, Python이 필요 없습니다. 새 머신 준비나 망가진 에이전트 설정 복구에 쓰고 bailout uninstall로 지웁니다.

bailout이란 무엇인가

bailout은 GitHub에 공개된 오픈 소스 명령줄 도구입니다(저장소 storozhenko98/bailout). README는 스스로를 "삭제되도록 만든 harness"라고 설명합니다. 상황은 단순합니다. 새 가상 머신이나 새 Mac 앞에 앉았는데 GitHub CLI도, 설정된 코딩 에이전트도, API 키도 없습니다. 또는 평소 쓰던 에이전트가 고장 나서, 그것을 고치려면 동작하는 에이전트가 필요합니다. bailout은 작고 독립적인 harness를 명령 한 줄로 제공합니다. 이 도구로 머신을 준비하거나 설정을 복구한 뒤 평소 쓰던 도구로 돌아가고, 마지막에 bailout을 삭제하면 됩니다.

설치는 두 줄입니다. `curl -fsSL https://bailout.dev/install.sh | bash`를 실행하고 `bailout`을 시작합니다. README에 따르면 계정, 로컬 API 키, Git, Node, Python, 기존 에이전트가 모두 필요 없습니다. 지원 환경은 Apple Silicon macOS, x64 Linux, ARM64 Linux이며, Bash, curl, 인터넷 연결, tar와 SHA-256 유틸리티 같은 기본 도구는 직접 갖춰야 합니다.

README가 밝히는 핵심 사실

README는 세 가지 상황을 듭니다. 첫째는 "깨끗한 출발"입니다. EC2 인스턴스, GCP VM, 새 Mac을 띄우고 bailout에게 머신을 점검하게 하고, 빠진 도구를 설치하고, GitHub 로그인을 돕고, 저장소를 클론하고, Codex, Claude Code, Pi, OpenCode를 쓸 수 있게 준비시킵니다. 둘째는 "망가진 설정"입니다. 설정 파일 형식이 잘못되었거나, 런타임이 옮겨졌거나, 업데이트가 무언가를 깨뜨린 경우입니다. 이때 bailout은 무엇이 바뀌었는지 살피고, 설정을 백업하고, 고치고, 주력 도구가 동작하는지 확인합니다. 셋째는 "빠른 퇴장"입니다. 유용한 결과는 평소 환경이 다시 동작하는 것이므로, bailout에는 데몬도, 계정 설정도, 영구적인 대화 저장소도, 프로젝트 스캐폴딩도 없습니다. 크기는 큰 자랑거리입니다. README는 v0.7.3의 Apple Silicon 빌드가 638.6 KB짜리 네이티브 바이너리 하나이며, 모든 릴리스가 6,000,000바이트 미만이라고 밝힙니다. v0.7.3 자산 표에는 macOS ARM64가 638,592바이트, Linux x64가 844,576바이트, Linux ARM64가 790,784바이트로 나오고, .tar.gz 다운로드는 각각 318,119, 417,262, 397,031바이트입니다. Linux 빌드는 musl로 정적 링크됩니다. 직접 의존하는 Rust 크레이트는 `serde_json`, `libc`, `rustyline` 세 개뿐이고, TLS는 시스템 curl이 처리하며 모델이 하는 모든 일은 Bash가 담당합니다. 모델이 쓰는 도구는 Bash 하나입니다. 명령은 사용자 계정의 권한으로 자동 실행되며, 파일 변경, 패키지 설치, 네트워크 접근도 포함됩니다. README는 이것이 샌드박스가 아니라고 분명히 적습니다. 에이전트는 먼저 점검하고, 동작하는 설정은 보존하고, 복구 전에 설정을 백업하고, 결과를 검증하라는 지시를 받습니다. 세션 안에서는 `/shell`로 로컬 Bash를 열고, `/last`로 마지막 명령 출력을 펼치고, `/new`로 새 대화를 시작하며, `/help`와 `/exit`으로 도움말과 종료를 합니다. Bash 호출마다 새 셸이 시작되므로 셸 상태는 유지되지 않습니다. 일반 명령은 2분, 대화형 명령은 10분 뒤에 시간 초과되고, 모델은 최대 30분까지 요청할 수 있습니다. 기본 모델 단계 한도는 50입니다.

로그인은 언제나 사용자가 직접 합니다. bailout은 자체 무료 추론을 제공하지만, 설정되는 도구는 사용자 본인의 계정과 자격 증명을 씁니다. 로그인, sudo, 키 입력이 필요하면 Bash 도구가 `interactive: true`로 실제 터미널을 넘겨줍니다. 그 명령의 입력과 출력은 모델에 전달되지 않고 종료 상태만 돌아갑니다. 다 끝나면 `bailout uninstall`을 실행합니다. 지워지는 것은 실행 중인 bailout 바이너리뿐이고, 설치한 도구, 클론한 저장소, 복구한 설정은 그대로 남습니다.

무료 추론은 어떻게 작동하는가

README의 상당 부분은 "무료는 곧 0원"이라는 주장을 설명하는 데 쓰입니다. Cloudflare Python Workers 위의 FastAPI 서비스가 공급자 키를 보관하고, 클라이언트는 키를 받지 못합니다. 모델 요청마다 OpenRouter 어댑터는 새 카탈로그를 가져와 명시적인 `:free` 모델, 네이티브 도구 지원, 모든 가격 필드가 0일 것을 요구합니다. 이어서 엔드포인트 가격이 0이고 30분 동안 보고된 가동률이 95% 이상인지 확인한 뒤, 검증된 엔드포인트에만 `allow_fallbacks: false`와 엄격한 0의 `max_price`를 붙여 요청을 보냅니다. 임의의 라우팅 재정의, 공급자 키, 플러그인, 멀티모달 콘텐츠, Bash 이외의 도구는 거부됩니다. README는 유료 추론 폴백이 없다고 하면서도, 앱이 OpenRouter가 공개한 가격과 라우팅 규약을 지키는 데 의존한다고 인정합니다.

모델이 프로덕션에 들어가려면 프로젝트 자체의 설정·복구 벤치마크에서 10개 과제 전체 실행에 80% 이상 성공하고, 네이티브 Bash 호출을 쓰며, 치명적 실패가 없어야 합니다. Groq, Mistral, Z.AI, Vercel AI Gateway 어댑터도 있으며 각각 무료 자격 규칙이 있습니다. 공개 게이트웨이는 IP당 분당 60회, 시간당 600회, 하루 2,000회로 제한하고 전역 공유 한도도 따로 있습니다. README는 무료 용량이 공유되며 최선 노력 방식이라고 말합니다.

우리의 분석

이 설계는 흔한 에이전트 제품의 발상을 의도적으로 뒤집습니다. 대부분의 코딩 에이전트는 일상 도구가 되려 하지만, bailout은 일상 도구가 없거나 망가졌을 때 손을 뻗는 도구가 되려 합니다. 에이전트를 고치려면 에이전트가 필요하다는 실제 닭과 달걀 문제입니다. 바이너리를 1 MB 아래로 줄이고, 계정을 요구하지 않고, 호스팅된 무료 추론을 쓰면 고장 난 머신이 충족할 수 없는 전제 조건이 사라집니다. 우리가 읽기에 작은 크기는 과시가 아니라 "쓰고 나서 지운다"는 약속에 봉사합니다. 작은 결과물은 믿고, 내려받고, 버리기 쉽기 때문입니다.

대가는 신뢰입니다. 추론이 호스팅 방식이므로 README에 따르면 프롬프트, 모델이 고른 파일 내용, 캡처된 Bash 출력이 호스팅된 Worker를 거쳐 선택된 공급자로 전송됩니다. 무료가 데이터 보존 없음을 뜻하지 않으며 공급자의 데이터 정책이 적용된다고 적혀 있습니다. Worker는 대화를 저장하거나 요청 본문을 로그로 남기지 않지만, 게이트웨이는 단기 일일 IP 해시, 할당량 예약, 쿨다운을 보관합니다. 자격 증명을 채팅에 붙여 넣지 말고 에이전트에게 비밀 파일을 출력시키지 말라는 경고도 있습니다.

위험과 남은 질문

눈여겨볼 한계는 세 가지입니다. 첫째, README 스스로 명령이 자동 실행되며 샌드박스가 아니라고 하므로, 모델의 실수가 실제 머신을 바꿀 수 있습니다. 둘째, 설치 방식은 네트워크의 스크립트를 Bash로 파이프합니다. README는 체크섬 검증, 원자적 설치, 크기 확인, sudo 미사용을 설명하지만, 프로젝트와 도메인을 신뢰할지는 사용자가 정해야 합니다. 셋째, v0.4.0부터 실행할 때마다 새 안정 릴리스를 확인해 자동으로 업데이트하며, `BAILOUT_NO_UPDATE=1`을 설정하지 않으면 실행 사이에 바이너리가 바뀔 수 있습니다. 우리는 README만 읽었을 뿐 도구를 실행하지 않았으므로, 동작과 벤치마크에 관한 모든 서술은 작성자의 주장입니다.

독자를 위한 실용적 조언

일회용 클라우드 머신을 다룬다면 부트스트랩 단계로 살펴볼 만합니다. README의 예처럼 설정을 바꾼 뒤 도구가 실행되지 않는다는 좁은 요청으로 시작하세요. 로그인에는 `/shell`이나 대화형 넘겨주기를 쓰고, 비밀은 채팅에 입력하지 마세요. 민감한 내용을 보내기 전에 개인정보 항목을 읽고, 작업이 끝나면 `bailout uninstall`을 실행하세요. 별도의 할당량이 필요하다면 README가 `BAILOUT_API_URL`로 직접 라우터를 호스팅하는 방법을 설명하며, Python API에는 Cloudflare Workers Paid가 필요하거나 자체 서버에서 Uvicorn으로 실행할 수 있습니다.

Sources

FAQ

bailout을 실행하려면 머신에 무엇이 필요한가요?

README에 따르면 계정, 로컬 API 키, Git, Node, Python, 기존 에이전트가 필요 없습니다. Bash, curl, 인터넷, tar와 SHA-256 도구 같은 기본 유틸리티만 있으면 Apple Silicon macOS, x64·ARM64 Linux에서 동작합니다.

bailout은 샌드박스인가요?

아닙니다. README는 모델의 도구가 Bash뿐이고, 명령이 사용자 권한으로 자동 실행되며, 샌드박스가 아니라고 명시합니다. 에이전트는 점검, 설정 백업, 결과 검증을 지시받을 뿐입니다.

bailout uninstall은 무엇을 지우나요?

실행 중인 bailout 바이너리만 지웁니다. 설치한 도구, 클론한 저장소, 복구한 설정은 남으며 같은 curl 명령으로 다시 설치할 수 있습니다.