Wide-Moat/open-computer-use
요약
모든 LLM에 브라우저, 터미널, 코드 실행 능력을 부여하는 오픈 소스 MCP 서버입니다. 격리된 Docker 컨테이너 기반의 Ubuntu 샌드박스를 통해 자율적인 에이전트 환경을 제공하며, 다양한 모델과 호환됩니다.
핵심 포인트
- Docker 기반의 격리된 Ubuntu 샌드박스 제공
- 코드 실행, 문서 생성, 웹 브라우징 등 13개 이상의 스킬 지원
- OpenAI 호환 모델을 포함한 모든 LLM에 플러그인 방식으로 연결 가능
- 셀프 호스팅이 가능하며 Open WebUI, Claude Desktop 등과 연동 가능
모든 LLM(Large Language Model)에 자체 컴퓨터를 부여하는 MCP (Model Context Protocol) 서버 — 라이브 브라우저, 터미널, 코드 실행, 문서 작업 능력 및 자율적인 서브 에이전트(sub-agents)를 갖춘 관리형 Docker 워크스페이스를 제공합니다. 셀프 호스팅이 가능하며, 오픈 소스(open-source)이고, 어떤 모델에도 플러그인(pluggable) 방식으로 연결할 수 있습니다.
온라인 데모: chat.yambr.com — Computer Use가 이미 설정된 Open WebUI입니다. GitHub 또는 Google로 로그인하세요. (아래에서 더 많은 시도 방법을 확인하세요.)
실제 작동 모습 확인: docs.yambr.com의 데모 코스 — 위 채팅에서 캡처한 8가지 라이브 시나리오(피치 덱, Word 문서, Excel, PDF 인보이스, 데이터 차트, 실시간 렌더링 랜딩 페이지, 웹 스크래핑, 커스텀 스킬 구축)를 제공합니다. 실제 프롬프트, 실제 스크린샷, 복사하여 붙여넣기 가능한 형태입니다. 이 내용이 유용하다고 생각되신다면, 저장소(repo)에 ⭐를 눌러주시면 큰 도움이 됩니다 — 감사합니다!
모든 LLM에 격리된 Docker 컨테이너가 포함된 완벽하게 갖춰진 Ubuntu 샌드박스를 제공하는 MCP 서버입니다. 이것을 당신의 AI를 위한 컴퓨터라고 생각하세요 — 개발자가 할 수 있는 모든 것을 할 수 있습니다:
코드 실행 (Execute code) — 격리된 컨테이너 내에서 bash, Python, Node.js, Java 실행
문서 생성 (Create documents) — 스킬(skills)을 통해 전문적인 스타일링이 적용된 Word, Excel, PowerPoint, PDF 생성
웹 브라우징 (Browse the web) — Playwright + 라이브 CDP 브라우저 스트리밍 (AI가 보는 것을 실시간으로 확인 가능)
Claude Code 실행 — 대화형 터미널과 MCP 서버가 자동 구성된 자율적인 서브 에이전트(sub-agent)
13개 이상의 스킬 사용 (Use 13+ skills) — 문서 생성, 웹 테스트, 디자인 등을 위한 검증된 워크플로우(workflows)
프로덕션 환경의 멀티 유저 배포를 위해 구축되었습니다. 1,000명 이상의 MAU(Monthly Active Users)로 테스트되었습니다. 각 채팅 세션은 자체적인 격리된 Docker 컨테이너에서 실행되므로, AI가 패키지를 설치하고, 파일을 생성하고, 서버를 실행할 수 있지만 사용자 간에 데이터가 유출되지 않습니다. MCP 클라이언트 전반에서 원활하게 작동합니다: 오늘 Open WebUI로 시작하여, 내일 Claude Desktop이나 n8n으로 전환하더라도 동일한 백엔드를 사용하며 마이그레이션(migration)이 필요 없습니다.
| 기능 | Open Computer Use | Claude.ai (Claude Code web) | open-terminal | OpenAI Operator |
|---|---|---|---|---|
| 셀프 호스팅 (Self-hosted) | 예 | 아니요 | 예 | 아니요 |
| 모든 LLM 지원 | 예 (OpenAI 호환) | Claude 전용 | 모든 모델 (Open WebUI를 통해) | GPT 전용 |
| 코드 실행 (Code execution) | 전체 Linux 샌드박스 (sandbox) | 샌드박스 (Claude Code web) | 샌드박스 / 베어 메탈 (bare metal) | 아니요 |
| 라이브 브라우저 (Live browser) | CDP 스트리밍 (공유형, 대화형) | 스크린샷 기반 | 아니요 | 스크린샷 기반 |
| 터미널 + Claude Code | ttyd + tmux + Claude Code CLI | Claude Code web (내장) | PTY + WebSocket | 해당 없음 |
| 스킬 시스템 (Skills system) | 13개 내장 (자동 주입) + 커스텀 | 내장 스킬 + 커스텀 지침 (instructions) | Open WebUI 네이티브 (텍스트 전용) | 해당 없음 |
| 컨테이너 격리 (Container isolation) | Docker (runc), 채팅별 격리 | Docker (gVisor) | 공유 컨테이너 (OS 레벨 사용자) | 해당 없음 |
모든 MCP 호환 클라이언트와 함께 작동합니다: Open WebUI, Claude Desktop, LiteLLM, n8n 또는 사용자의 자체 통합 환경. 대안들과의 상세한 비교는 docs/COMPARISON.md를 참조하세요.
복사하여 붙여넣을 수 있는 프롬프트가 포함된 8가지 라이브 시나리오는 **데모 코스 (Demo course)**를 확인하세요. 아키텍처에 대한 자세한 내용은 docs/FEATURES.md를, 모든 스크린샷은 docs/SCREENSHOTS.md를 참조하세요.
전문가 팁: 터미널에서 Claude Code로 스킬을 생성한 다음, 채팅에서 어떤 모델과도 해당 스킬을 사용할 수 있습니다. 스킬은 모델에 구애받지 않습니다(model-agnostic). 한 번 작성하면 어디서든 사용할 수 있습니다.
멀티 CLI 서브 에이전트 런타임 (Multi-CLI sub-agent runtime, v0.9.2.1+): 서브 에이전트 디스패치(dispatch)는 Claude Code (기본값), OpenAI Codex, 그리고 OpenCode (OpenRouter / qwen / DeepSeek / 75개 이상의 제공업체 포함)를 지원합니다. .env 파일에서 SUBAGENT_CLI=claude|codex|opencode를 전환하세요.
— OpenCode + qwen3-coder + OpenRouter 조합의 작동 레시피는 docs/multi-cli.md를 참조하세요.
향후 계획: 객체 스토리지(object-storage) 기반의 사용자 데이터와 squashfs로 패키징된 스킬을 갖춘 Kubernetes 친화적 아키텍처가 docs/future-architecture/에서 설계되고 있습니다. 현재는 Docker Compose가 주요 지원 경로로 유지됩니다.
| 경로 | URL | 필요 사항 | 최적의 용도 |
|---|---|---|---|
| 무료 온라인 데모 — Open WebUI + Computer Use, 모델 포함 | chat.yambr.com | GitHub 또는 Google 로그인 | 30초 만에 엔드투엔드 (end-to-end) 체험 |
| 호스팅된 MCP 엔드포인트 — 도구만 제공, 본인의 LLM 사용 | app.yambr.com에서 키 발급 → https://api.yambr.com/mcp/computer_use에 연결 | GitHub/Google 로그인; 본인의 OpenAI / Anthropic / OpenRouter 키 | Claude Desktop, n8n, OpenAI Agents SDK에 Computer Use 연결 |
| 셀프 호스팅 (Self-host) | 아래 Quick Start 참조 | Docker, 첫 빌드 시 약 15분 소요 | 완전한 제어, 에어갭 (air-gapped) 환경, 헤비 유즈 |
OAuth 전용 — 이메일/비밀번호 없음, SMS 없음. chat.yambr.com에서 제공.
모델은 편의를 위해 무료로 번들링되어 제공되며, 호스팅된 API는 도구(tools)만 제공합니다. 공식 클라우드 문서: docs.yambr.com. 리포지토리 측 가이드: docs/CLOUD.md.
git clone https://github.com/Wide-Moat/open-computer-use.git
cd open-computer-use
cp .env.example .env
...
http://localhost:3000을 엽니다 — Computer Use 기능이 준비된 Open WebUI가 실행됩니다.
참고: 두 개의 별도 docker-compose 파일이 있습니다: docker-compose.yml (Computer Use 서버) 및 docker-compose.webui.yml (Open WebUI). 이들은 localhost:8081을 통해 통신합니다. 이는 서버와 UI가 서로 다른 호스트에서 실행되는 실제 배포 환경을 반영합니다.
Open WebUI에서 모델을 추가한 후, Model Settings로 이동하여 다음과 같이 설정하십시오:
| 설정 | 값 | 이유 |
|---|---|---|
| 함수 호출 (Function Calling) | Native | Computer Use 도구가 작동하기 위해 필수적임 |
| 채팅 응답 스트리밍 (Stream Chat Response) | On | 실시간 출력 스트리밍 활성화 |
Function Calling: Native 설정이 없으면, 모델이 Computer Use 도구를 호출하지 못합니다.
| 카테고리 | 도구 |
|---|---|
| Languages | Python 3.12, Node.js 22, Java 21, Bun |
| Documents | LibreOffice, Pandoc, python-docx, python-pptx, openpyxl |
| pypdf, pdf-lib, reportlab, tabula-py, ghostscript | |
| Images | Pillow, OpenCV, ImageMagick, sharp, librsvg |
| Web | Playwright (Chromium), Mermaid CLI |
| AI | Claude Code CLI, Playwright MCP |
| OCR | Tesseract (설정 가능한 언어) |
| Media | FFmpeg |
| Diagrams | Graphviz, Mermaid |
| Dev | TypeScript, tsx, git |
13개의 내장 공개 스킬 + 14개 예시:
| 스킬 | 설명 |
|---|---|
| pptx | html2pptx를 사용하여 PowerPoint 프레젠테이션 생성/편집 |
| docx | 추적 변경 사항이 포함된 Word 문서 생성/편집 |
| xlsx | 수식이 포함된 Excel 스프레드시트 생성/편집 |
| PDF 생성, 양식 채우기, 추출, 병합 | |
| sub-agent | 복잡한 작업을 Claude Code에 위임 |
| playwright-cli | 브라우저 자동화 및 웹 스크래핑 |
| describe-image | Vision API 이미지 분석 |
| frontend-design | 프로덕션급 UI 구축 |
| webapp-testing | Playwright를 사용하여 웹 애플리케이션 테스트 |
| doc-coauthoring | 구조화된 문서 공동 작성 워크플로우 |
| test-driven-development | TDD 방법론 강제 적용 |
| skill-creator | 사용자 지정 스킬 생성 |
| gitlab-explorer | GitLab 리포지토리 탐색 |
14개 예시 스킬: web-artifacts-builder, copy-editing, social-content, canvas-design, algorithmic-art, theme-factory, mcp-builder 등.
자세한 내용은 docs/SKILLS.md를 참조하세요.
서버는 Streamable HTTP를 통해 표준 MCP(Messaging Communication Protocol)로 통신합니다. 호스팅되거나 자체 호스팅된 모든 MCP 클라이언트를 이 서버에 연결할 수 있습니다.
호스팅됨: https://api.yambr.com/mcp/computer_use
Authorization: Bearer <app.yambr.com의 키>
클라이언트 설정 및 전체 참조는 docs.yambr.com에서 확인하세요.자체 호스팅: http://localhost:8081/mcp
. 빠른 무결성 검사 (Quick sanity check): 전체 자체 호스팅 통합 가이드 (LiteLLM, Claude Desktop, 커스텀 클라이언트): docs/MCP.md. 채팅당 시스템 프롬프트 (system prompt)는 다음의 6가지 중복되는 MCP 네이티브 채널(도구 설명 (tool descriptions), 샌드박스 내 /home/assistant/README.md, InitializeResult.instructions, 업로드된 파일을 위한 resources/list, 그리고 레거시 통합을 위한 HTTP /system-prompt 엔드포인트)을 통해 전달됩니다 — 전체 지도는 docs/system-prompt.md에서 확인하세요.
curl -X POST http://localhost:8081/mcp \ -H "Content-Type: application/json" \ -H "X-Chat-Id: test" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
모든 설정은 .env를 통해 이루어집니다:
| 변수 (Variable) | 기본값 (Default) | 설명 (Description) |
|---|---|---|
OPENAI_API_KEY | — | LLM API 키 (OpenAI 호환 방식이면 무엇이든 가능) |
OPENAI_API_BASE_URL | — | 커스텀 API 베이스 URL (OpenRouter 등) |
MCP_API_KEY | — | MCP 엔드포인트를 위한 Bearer 토큰 |
DOCKER_IMAGE | open-computer-use:latest | 샌드박스 컨테이너 이미지 |
COMMAND_TIMEOUT | 120 | Bash 도구 타임아웃 (초) |
SUB_AGENT_TIMEOUT | 3600 | 서브 에이전트 (Sub-agent) 타임아웃 (초) |
SINGLE_USER_MODE | — | true = 단일 컨테이너, Chat ID 불필요; false = X-Chat-Id 필요; 설정되지 않음 = 관대하게 처리 |
PUBLIC_BASE_URL | http://computer-use-server:8081 | 브라우저에서 접근 가능한 Computer Use 서버의 URL. /system-prompt에 포함되며 X-Public-Base-URL 응답 헤더를 통해 Open WebUI 필터로 반환됩니다 — 공개 URL에 대한 단일 진실 공급원 (single source of truth). Open WebUI 필터 URL 요구 사항 확인 필요. |
CHAT_RESPONSE_MAX_TOOL_CALL_RETRIES, ORCHESTRATOR_URL, TOOL_RESULT_MAX_CHARS, TOOL_RESULT_PREVIEW_CHARS | — | (CU-server가 아닌) 오케스트레이터 (Orchestrator) 관련 설정 |
Open WebUI에 임베딩할 때 필요 — Open WebUI 임베딩 시 필수 설정(Required setup when embedding Open WebUI) 참조 |
open-webui 컨테이너 |
POSTGRES_PASSWORD |
openwebui |
PostgreSQL 비밀번호 |
VISION_API_KEY |
— | Vision API 키 (이미지 설명용) |
ANTHROPIC_AUTH_TOKEN |
— | Anthropic 키 (Claude Code 서브 에이전트용) |
MCP_TOKENS_URL |
— | Settings Wrapper URL (선택 사항, 아래 참조) |
MCP_TOKENS_API_KEY |
— | Settings Wrapper 인증 키 |
기본적으로 13개의 내장 스킬(built-in skills)은 모두에게 제공됩니다. 사용자별 스킬 접근 권한 및 커스텀 스킬을 사용하려면 Settings Wrapper를 배포하세요 — settings-wrapper/README.md를 참조하십시오.
개인 액세스 토큰 (PATs): Settings Wrapper는 외부 서비스(GitLab, Confluence, Jira 등)를 위한 암호화된 사용자별 PAT를 저장할 수도 있습니다. 서버는 사용자 이메일을 통해 토큰을 가져와 샌드박스(sandbox)에 주입합니다. 따라서 각 사용자의 AI는 자격 증명을 공유하지 않고도 자신의 저장소(repos)나 문서(docs)에 접근할 수 있습니다. 토큰 주입을 위한 서버 측 코드는 구현되어 있으나 (docker_manager.py), Open WebUI 도구가 아직 필요한 헤더(headers)를 전달하지 않습니다. 이는 로드맵(roadmap)에 포함되어 있습니다 — PAT 관리가 필요한 경우 이슈(issue)를 생성해 주세요.
Computer Use Server는 표준 **Streamable HTTP 기반 MCP (MCP over Streamable HTTP)**를 사용하므로, MCP 호환 클라이언트라면 무엇이든 연결할 수 있습니다. Open WebUI가 주요 테스트된 프론트엔드이지만, 유일한 옵션은 아닙니다.
| 클라이언트 (Client) | 셀프 호스팅 URL (Self-hosted URL) | 호스팅 URL (Hosted URL) | 상태 (Status) |
|---|---|---|---|
| Open WebUI | Docker Compose 스택 포함, 자동 구성됨 | 해당 없음 — chat.yambr.com을 직접 사용 (자신의 Open WebUI를 호스팅된 API로 연결하는 경로는 문서화되지 않음) | 프로덕션 환경에서 테스트됨 |
| Claude Desktop | http://localhost:8081/mcp — docs/MCP.md 참조 | https://api.yambr.com/mcp/computer_use — docs/CLOUD.md 참조 | 작동함 |
| n8n | MCP Tool 노드 → http://computer-use-server:8081/mcp | MCP Tool 노드 → https://api.yambr.com/mcp/computer_use | 작동함 |
| LiteLLM | MCP 프록시 (proxy) 설정 — docs/MCP.md 참조 | MCP 프록시 → https://api.yambr.com/mcp/computer_use | 작동함 |
| 커스텀 클라이언트 (Custom client) | MCP JSON-RPC를 지원하는 모든 HTTP 클라이언트 — docs/MCP.md의 curl 예제 참조 | 동일함, Authorization: Bearer sk-... (app.yambr.com에서 발급받은 키) 포함 | 작동함 |
Open WebUI는 확장 가능한 셀프 호스팅 AI 인터페이스입니다. 우리는 도구 호출 (tool calling), 함수 필터 (function filters), 그리고 아티팩트 (artifacts)를 지원하기 때문에 이를 주요 프론트엔드로 사용합니다. 이 기능들은 Computer Use에 필요한 모든 요소입니다.
호환성 (Compatibility): 이 빌드는 엄격하게 Open WebUI 0.9.2 버전을 기준으로 빌드 및 검증되었습니다. 우리 빌드 버전의 처음 3개 세그먼트(v0.9.2.X)는 대상이 되는 Open WebUI의 베이스 버전과 항상 일치합니다. 만약 다른 버전의 Open WebUI를 실행 중이라면, 처음 3개 버전 세그먼트가 사용 중인 버전과 일치하는 Open Computer Use 빌드를 선택하십시오. 예를 들어, Open WebUI 0.8.12를 사용하는 경우 v0.8.12.Y 빌드를 사용하십시오.
왜 포크(fork)를 하지 않았나요? 우리는 의도적으로 Open WebUI를 포크하지 않았습니다. 대신, 모든 기능은 공식 플러그인 API (도구 + 함수)와 누락된 기능을 위한 빌드 타임 패치 (build-time patches)를 통해 결합되었습니다. 이는 여러분이 순정(stock) Open WebUI 0.9.2(우리 빌드 버전 v0.9.2.X의 처음 3개 세그먼트와 일치하는 버전)를 그대로 사용하면서 도구와 필터만 설치하면 된다는 것을 의미합니다. 패치는 Docker 빌드 시점에 적용됩니다. 이는 강력히 권장됩니다. 패치 중 4개는 사용자에게 보이는 UX(아티팩트 패널, 미리보기 iframe, 에러 배너, 대용량 도구 결과 처리)에 영향을 미칩니다. ghcr.io/open-webui/open-webui를 풀링(Pulling)...
이들을 모두 직접 건너뜁니다 — Open WebUI를 임베딩할 때의 필수 설정(Required setup)을 참조하여 전체 체크리스트를 확인하세요.
기업용 게이트웨이(LiteLLM, Azure, Bedrock)를 통해 Claude Code를 실행하시나요? 세 가지 경로의 운영 레시피는 docs/claude-code-gateway.md를 참조하세요.
openwebui/ 디렉토리는 다음을 포함합니다:
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기