# just-bash - 에이전트를 위한 Bash 시뮬레이션 환경

> Clean Markdown view of GeekNews topic #26829. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=26829](https://news.hada.io/topic?id=26829)
- GeekNews Markdown: [https://news.hada.io/topic/26829.md](https://news.hada.io/topic/26829.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2026-02-20T09:31:01+09:00
- Updated: 2026-02-20T09:31:01+09:00
- Original source: [github.com/vercel-labs](https://github.com/vercel-labs/just-bash)
- Points: 14
- Comments: 0

## Summary

Vercel이 개발한 **AI 에이전트를 위한 TypeScript 기반 가상 Bash 환경**으로, 실제 디스크나 네트워크에 접근하지 않는 **완전한 샌드박스 실행**을 제공합니다. 메모리 내 파일시스템 위에서 동작하며, 명령 실행은 `exec()` 단위로 격리되어 안전성과 재현성을 모두 확보합니다. 또한 `defineCommand`로 TypeScript 기반 커스텀 명령을 추가할 수 있어, **AI 모델이 Bash 명령을 안전하게 실험·조합할 수 있는 환경**을 손쉽게 구성할 수 있습니다.

## Topic Body

- Vercel에서 만든 "Bash for Agents"  
- **안전하고 샌드박스 처리된 bash 환경이 필요한 AI 에이전트**를 위해 설계된 **TypeScript 기반 가상 Bash 환경**  
- **메모리 내 가상 파일시스템(InMemoryFs)** 위에서 동작하며, 실제 디스크 접근은 불가능한 **샌드박스 실행 환경**  
- 기본적으로 **네트워크 접근은 차단**되어 있으며, 필요 시 `curl`을 통한 **허용 URL 기반의 안전한 네트워크 요청 지원**  
- 제공된 파일시스템만 접근 가능하며, **무한 루프·재귀 실행 방지** 기능 포함  
  - 바이너리나 WASM 실행은 지원하지 않음    
- **API 사용**시 `exec()` 단위로 격리되어, 환경 변수나 함수, 작업 디렉터리가 호출 간에 유지되지 않음(파일시스템 상태만 지속)  
- **생성 인자**로 초기 파일, 환경 변수, 작업 디렉터리, 실행 제한 등 세밀한 설정  
- **Lazy 파일 로딩** 지원하여, 필요 시점에만 파일 내용을 동기/비동기 방식 함수로 생성 가능  
- **사용자 정의 명령어(defineCommand)** 기능으로 TypeScript 기반 커스텀 명령 추가 가능  
  - `CommandContext`를 통해 `fs`, `cwd`, `env`, `stdin`, `exec` 접근 지원  
- **파일시스템 구현체 4가지 제공**  
  - **InMemoryFs**: 순수 메모리 기반  
  - **OverlayFs**: 읽기는 디스크, 쓰기는 메모리  
  - **ReadWriteFs**: 실제 디스크 읽기·쓰기 가능  
  - **MountableFs**: 여러 파일시스템을 경로별로 마운트해 통합 네임스페이스 구성  
- **AI SDK 통합 도구**로 [`bash-tool`](https://github.com/vercel-labs/bash-tool) 지원  
  - `generateText()`와 결합해 **AI 모델이 Bash 명령을 안전하게 실행**하도록 설계  
- **Vercel Sandbox 호환 API** 제공  
  - `Sandbox` 클래스를 통해 **@vercel/sandbox와 동일한 인터페이스**로 사용 가능  
  - 필요 시 실제 VM 기반 샌드박스로 전환이 용이함  
- **CLI**인 `just-bash` 명령 제공  
  - OverlayFS 기반으로 실행 후 모든 쓰기 내용은 메모리에서 폐기  
  - `--json` 옵션으로 **프로그램적 결과 출력** 지원  
- **대화형 셸 모드**(`pnpm shell`) 제공  
  - 기본적으로 인터넷 접근 허용, `--no-network`로 차단 가능  
- **지원하는 명령어 들**  
  - 파일 조작, 텍스트 처리, 데이터 처리, 압축, 네트워크 등 **표준 Bash 명령 대부분 포함**  
  - `jq`, `sqlite3`, `python3`(Pyodide 기반) 등 데이터 처리 명령도 선택적 지원  
  - **셸 기능**으로 파이프, 리다이렉션, 조건문, 반복문, 함수, 변수, 글롭 패턴 등 **Bash 문법 대부분 구현**  
- **기본 디렉터리 구조**는 `/home/user`, `/bin`, `/usr/bin`, `/tmp` 등 **유닉스 유사 환경 제공**  
- **네트워크 접근 제어**는 URL·HTTP 메서드 기반 화이트리스트 방식  
  - `dangerouslyAllowFullInternetAccess` 옵션으로 전체 허용 가능  
- **Python 및 SQLite 지원**은 선택적 활성화  
  - Pyodide 기반 Python, WASM 기반 SQLite(sql.js)로 **완전한 샌드박스 실행 보장**  
- **실행 보호 기능**으로 함수 깊이, 명령 수, 루프 반복 횟수 등 **실행 한도 설정 가능**  
- Apache-2.0 라이선스

## Comments



_No public comments on this page._
