- 로컬 LLM 실행과 코드 샌드박스 환경을 이용해 클라우드 의존성 없이 AI 워크스페이스를 구성하는 방법
- Ollama로 로컬 LLM을 구동하고, Apple Container를 이용해 격리된 VM에서 코드를 실행하며, Playwright로 헤드리스 브라우저를 통한 자동화와 인터넷 접근을 가능하게 함
- UI는
assistant-ui를 기반으로 하되 모델 선택 드롭다운과 ai-sdk 통합, MCP(Model Context Protocol) 를 통한 안전한 코드 실행 환경을 구현함 - MCP로 연결된 Coderunner VM 안에서 Jupyter 서버와 브라우저를 실행해, 차트 생성·이미지/영상 편집·GitHub 툴 설치·웹 검색 등을 프라이버시 보호 상태에서 처리 가능
- 현재는 Apple Silicon 전용이며, UI 개선과 브라우저 탐지 회피, 툴 관리 기능 강화가 향후 과제
요구 사항 및 배경
- 목표: 클라우드 및 원격 코드 실행 없이 모든 것을 로컬에서 실행하기
- 기존의 LLM 챗앱(예: ChatGPT, Claude)은 클라우드 기반 LLM 채팅, 클라우드/로컬 코드 실행, 인터넷 접근 기능을 제공함
- 오픈 소스 LLM 사용 확대로 인해 이 모든 기능을 완전히 로컬에서 수행할 수 있는지 고민
- 로컬 LLM만으로는 부족하므로, 격리된 환경에서 코드가 실행되어야 하며, 브라우저를 통한 컨텐츠 접근도 필요함
아이디어 구상
- LLM을 완전히 로컬 환경에서 실행
- 경량 VM(가상머신) 내에서만 코드 실행을 처리하여 호스트 시스템의 위험을 차단
- 헤드리스 브라우저를 추가해 자동화 및 새로운 정보, 도구 탐색을 지원함
- AI 기획부터 코드 실행까지 완전히 로컬에서 이루어지는 프라이버시 보호 중심의 워크플로우 구성
- 외부 서비스에 데이터를 제공하지 않고 로컬에서 사진, 동영상 편집 등 다양한 작업 가능
기술 스택
- LLM: Ollama (로컬 모델 및 일부 외부 모델 지원)
- UI:
assistant-ui+ ai-sdk (모델 선택 기능 추가) - VM 런타임: Apple
container(격리된 VM 환경 제공) - 오케스트레이션:
instavm/coderunner(MCP로 Jupyter 서버 연결) - 브라우저 자동화: Playwright (MCP 툴로 노출)
Mac 앱 시도와 전환
a0.dev를 이용해 네이티브 Mac 앱 개발을 시도했으나 iOS 위주라 어려움 발생- Electron + NextJS 래핑도 시도했지만 복잡성 문제로 포기
- 최종적으로 로컬 웹 기반
assistant-ui로 전환
Assistant-UI 커스터마이징
- 모델 선택 드롭다운 등 다양한 LLM 지원 기능을 제공할 것으로 기대됐으나, 제한적이었음
- 예제 참고 후 ai-sdk를 통해 다중 모델 선택 기능 직접 구현
- 초기에는 오픈AI/Anthropic처럼 클라우드 모델도 지원, 점진적으로 로컬 전환 유도 전략
Tool-calling 및 모델 지원 이슈
- Tool-calling을 지원하는 모델이 필요했으나, Ollama 등 일부는 실제로 미지원
- 공식 문서에는 툴 지원 명시되어 있으나 실 구현이 부족한 경우가 많음
- 오픈소스 생태계의 빠른 변화로 인해 툴 지원 현황 및 토큰 가격 등 변동성이 큼
컨테이너 기반 격리 코드 실행
- Apple의 Container 도구를 이용, Docker 대비 컨테이너마다 완전한 격리 VM 환경을 제공하므로 AI로 생성된 코드를 더 안전하게 실행할 수 있음
- VM 환경에 Jupyter 서버를 배포, Model Context Protocol(MCP)로 노출하여 다양한 툴(Claude Desktop, Gemini CLI 등)에서 곧바로 활용 가능
coderunnerMCP 서버 코드를 공개, 외부 툴과 연동 예시 제공- Apple Container 도구는 아직 불안정하여 빌드/이미지 문제 시 반복적 재시움 필요
- 실제 영상 편집 테스트 등에서 UI + LLM + 코드러너 조합의 정상 동작 확인
헤드리스 브라우저 통합
- 컨테이너 내에 Playwright 기반 헤드리스 브라우저를 배포 및 MCP 툴로 노출
- 신규 툴/정보 탐색, Github 사용법 검색, 리서치 자동화 등의 활용 기대
- 기본 워크플로우: 로컬 LLM + 샌드박스 코드 실행 + 헤드리스 브라우저 조합 구축 완료
가능한 작업 예시
- 특정 주제 리서치 및 요약
- 자연어 명령으로 CSV 차트 생성 및 렌더링
- ffmpeg를 이용한 동영상 편집(구간 자르기 등)
- 이미지 리사이즈, 자르기, 포맷 변환
- Github 도구의 컨테이너 내 설치
- 헤드리스 브라우저로 웹페이지 크롤링 및 요약 등
파일 볼륨 마운트 및 격리
- 호스트의
~/.coderunner/assets를 컨테이너/app/uploads에 매핑, 파일은 안전하게 공유 공간에 보관 - 실행된 코드는 호스트 시스템에 직접 접근불가로 보안성 확보
한계 및 향후 과제
- Apple Silicon 환경에서만 동작, macOS 26은 선택 사항
- 툴 관리, 출력 스트리밍 등 UI 개선 필요
- 헤드리스 브라우저가 일부 사이트에서 봇 감지로 차단되는 문제 존재
결론
- 본 프로젝트는 단순한 실험을 넘어 컴퓨팅 주권 및 프라이버시 보호에 초점을 맞춘 모델임
- 클라우드, 원격서버 의존성 없이 개인 로컬 머신에서 데이터를 안전하게 처리하는 경험 제공
- 최고의 LLM은 대형 클라우드에 머무를 수 있지만, 개인 프라이버시를 지킬 수 있는 로컬 AI 도구의 발전을 지향함
- 오픈소스
coderunner-ui는 Github에서 사용 가능, 피드백 및 협업을 환영함