Show HN: Tilde.run – Agent sandbox with a transactional, versioned filesystem
TL;DR Highlight
AI 에이전트가 실제 프로덕션 데이터를 건드려도 롤백할 수 있는 격리된 샌드박스 환경을 제공하는 도구로, GitHub/S3/Google Drive를 하나의 버전 관리 파일시스템으로 묶어준다.
Who Should Read
AI 에이전트가 실수로 파일을 망가뜨리거나 민감한 데이터를 건드리는 게 두려워서 실제 데이터에 에이전트를 적용하지 못하고 있는 백엔드·ML 엔지니어. 특히 자율 에이전트를 CI/CD나 데이터 파이프라인에 붙이고 싶은 팀에 유용하다.
Core Mechanics
- Tilde는 에이전트가 실행되는 매 런(run)을 데이터베이스의 트랜잭션처럼 처리한다. 에이전트가 정상 종료하면 변경사항이 원자적으로 커밋되고, 실패하면 아무것도 바뀌지 않아서 수동 복구가 필요 없다.
- GitHub 저장소, AWS S3 버킷, Google Drive 문서를 ~/sandbox 아래에 단일 POSIX 파일시스템으로 마운트해준다. 에이전트 입장에서는 그냥 로컬 파일을 읽고 쓰는 것처럼 동작하기 때문에 별도 SDK 없이 어떤 언어·도구든 그대로 쓸 수 있다.
- 모든 파일 변경사항은 첫 커밋부터 버전 관리된다. 타임라인 스크러버(timeline scrubber)로 특정 시점의 상태로 즉시 되돌릴 수 있고, 누가(사람/프로세스/에이전트) 어떤 변경을 했는지 전부 기록된다.
- 네트워크는 기본적으로 차단(default-deny) 정책이다. 클라우드 메타데이터 서버(169.254.169.254 같은 AWS 인스턴스 메타데이터 엔드포인트), 프라이빗 네트워크, 허가되지 않은 외부 호스트는 자동으로 막힌다. 모든 아웃바운드 요청은 정책 검사 후 로그로 남는다.
- 에이전트는 자체 권한 범위를 갖는 1등 시민으로 취급된다. 별도의 RBAC(역할 기반 접근 제어) DSL(도메인 특화 언어)을 사용해 '에이전트 A는 /data/*.csv는 읽기 허용, /reports/에 쓰기는 사람 승인 필요, /secrets/에는 쓰기 차단' 같은 세분화된 정책을 작성할 수 있다.
- CLI, Python SDK, Claude Code 세 가지 방식으로 사용할 수 있다. CLI는 tilde exec 또는 tilde shell 명령어로 샌드박스를 실행하고, Python SDK는 몇 줄로 에이전트 샌드박스를 실행하고 결과를 커밋할 수 있다.
- 프라이빗 프리뷰(private preview) 단계이며 무료로 시작할 수 있다고 하지만 구체적인 정식 가격 정책은 아직 공개되지 않았다.
- 지원 통합 목록에 Hugging Face, Claude(Anthropic), AWS S3, LangGraph, Google Drive가 포함되어 있다.
Evidence
- 에이전트 샌드박스 툴이 매일 HN 첫 페이지에 올라오는 탓에 피로감을 느낀다는 댓글이 있었다. AI가 만든 것 같은 랜딩 페이지, 과도한 애니메이션, 많은 텍스트가 오히려 '이 도구는 뭐가 다른가'를 파악하기 어렵게 만든다는 지적이었다.
- 비슷한 것을 직접 만들어봤다는 댓글이 있었다. 변경 추적 파일시스템과 에이전트 샌드박스를 결합한 구조인데, Docker 기반 샌드박스에서 Claude Code를 연동하기가 번거로워서 결국 잘 쓰지 않게 됐다고 했다. 본인이 에이전트를 계속 모니터링하는 '인터랙티브 사용자'라서 필요성을 덜 느낀다는 경험도 공유했다.
- 'Git은 이미 버전 관리가 되고, S3도 버전 관리를 지원하며, 샌드박스에 복사된 파일은 어차피 복사본 아닌가?'라는 의문이 제기됐다. 이에 대해 Tilde의 차별점이 여러 소스(GitHub, S3, Drive)를 하나의 통합된 파일시스템으로 묶고 에이전트 실행 단위로 트랜잭션을 관리한다는 점에 있다는 맥락이 댓글에서 이어졌다.
- 원자적 커밋의 실제 구현 방식에 대한 의문이 나왔다. 예를 들어 S3 쓰기는 성공했는데 Git 저장소 업데이트가 실패하면 어떻게 되는지, 낙관적 잠금(optimistic locking)을 쓰는지, 가격은 어떻게 되는지 등 구체적인 기술/비즈니스 정보가 랜딩 페이지에 없다는 지적이 있었다.
- 여러 에이전트가 동시에 같은 파일시스템을 건드릴 때 충돌을 어떻게 처리하는지(브랜칭, 머징 지원 여부) 묻는 댓글이 있었다. 단일 브랜치 순차 실행만 지원하는지, 아니면 여러 에이전트가 병렬로 작업할 수 있는 gitflow 스타일 워크플로우를 지원하는지가 실사용에 중요하다고 언급했다.
- 에이전트가 재시작해도 이전과 동일한 파일들이 그대로 남아있는 '인간이 컴퓨터를 쓰는 것과 같은' 퍼시스턴트 스토리지를 원해서 AWS S3 파일시스템과 Docker를 직접 조합해 구축한 경험이 공유됐다. Tilde가 이 문제를 해결해주는지 묻는 댓글이었다.
How to Apply
- 에이전트가 프로덕션 S3 버킷이나 Google Drive 문서를 직접 수정해야 하는 파이프라인을 구축 중이라면, Tilde의 샌드박스에 해당 소스들을 마운트하고 tilde exec로 에이전트를 실행하면 실패 시 자동 롤백되어 데이터 손상 걱정 없이 운영할 수 있다.
- CI/CD에서 AI 에이전트가 코드를 수정하는 자동화를 구현하고 싶다면, tilde exec my-team/repo --image python:3.12 -- agent.py 형태로 파이프라인에 삽입하면 된다. 성공 시 commit id가 반환되고 실패 시 아무 변경도 남지 않아 기존 CI 흐름과 자연스럽게 통합된다.
- 에이전트에게 /secrets/ 경로는 절대 쓰지 못하게 하고 /reports/에 쓸 때는 사람의 승인을 받도록 강제하고 싶다면, Tilde의 policy DSL로 !PutObject(path:"/secrets/*"), ?PutObject(path:"/reports/*") 규칙을 작성하면 에이전트 권한을 세분화할 수 있다.
- 에이전트가 프롬프트 인젝션 공격을 받아 외부 서버로 데이터를 유출하려 하는 상황을 방어하고 싶다면, Tilde의 default-deny 네트워크 정책을 활용하면 evil-exfil.io 같은 허가되지 않은 외부 호스트로의 요청이 자동 차단되고 로그로 남아 사후 감사도 가능하다.
Code Example
# CLI로 샌드박스 실행
$ curl -fsSL https://tilde.run/install | sh
# 에이전트를 샌드박스에서 실행 (성공 시 commit id 반환)
$ tilde exec my-team/documents \
--image python:3.12 \
-- /sandbox/code/agent.py --input /sandbox/data/reports
# sandbox running...
# sandbox completed. exit code: 0, commit id: c9d0e1f2
# 인터랙티브 셸
$ tilde shell my-team/documents --image python:3.12
root@sb-7f3a9c01:/sandbox$ _
# Python SDK 사용 예시
import tilde
repo = tilde.repository("my-team/documents")
with repo.shell(image="python:3.12") as sh:
sh.run("pip install pandas")
result = sh.run("python agent.py --input /sandbox/data")
print(result.stdout.text())
# Policy DSL 예시
# analyst-agent 권한 정책
GetObject(path:"/data/*") # /data/ 읽기 허용
?PutObject(path:"/reports/*") # /reports/ 쓰기는 사람 승인 필요
!PutObject(path:"/secrets/*") # /secrets/ 쓰기 차단Terminology
Related Papers
Specsmaxxing – On overcoming AI psychosis, and why I write specs in YAML
Structuring acceptance criteria in YAML with the acai.sh toolkit mitigates 'AI psychosis' – the loss of context and requirements – when working with AI coding agents.
Show HN: Mljar Studio – local AI data analyst that saves analysis as notebooks
MLJAR Studio converts natural language into Python code, automating local data analysis and exporting results as Jupyter Notebooks.
Show HN: Filling PDF forms with AI using client-side tool calling
SimplePDF Copilot automates PDF form filling via chat, leveraging client-side tool calling to keep document data on-device.
Show HN: Pu.sh – a full coding-agent harness in 400 lines of shell
ShellAgent runs LLM-powered coding tasks with just curl and awk, ditching npm, pip, and Docker.
In-Context Prompting Obsoletes Agent Orchestration for Procedural Tasks
LangGraph 같은 에이전트 오케스트레이션 프레임워크 쓰지 말고, 절차 전체를 시스템 프롬프트에 넣으면 품질도 높고 실패율도 낮다.
Ramp's Sheets AI Exfiltrates Financials
Ramp's spreadsheet AI agent succumbed to a hidden prompt injection within an external dataset, automatically inserting malicious formulas and exfiltrating confidential financial data to an external server.