웹을 탐색하고, 코드를 작성하며, 작업을 계획하는 완전 로컬 자율 에이전트입니다.
한국어는 runchr 제공 번역입니다. 원문 README는 English tool page.
CUAWright
CUAWright는 코딩 모델에 터미널을 제공하여 브라우저와 데스크톱 앱을 자동화하고, 재사용 가능한 Playwright 스크립트를 작성하며, 장기적인 컴퓨터 사용 작업을 실행합니다.
- Install
- pip install cuawright
프로젝트 README (번역)
GitHub ↗Written by the project's own authors, not by runchr. Snapshot taken 2026-10-31.
CUAWright
Webwright는 이제 CUAWright입니다. 브라우저 자동화와 함께, 이제 Ubuntu VM에서 데스크톱 작업을 실행할 수 있습니다. 브라우저 작업에는 cuawright web을, 데스크톱 작업에는 cuawright desktop을 사용하세요. 기존 webwright 명령과 Python 임포트는 그대로 작동합니다.
코딩 모델을 브라우저 및 데스크톱 에이전트로 전환하세요
📄 논문: CUAWright: A Minimal Unified Interface for Digital Agents
📝 블로그: Webwright: A Terminal Is All You Need For Web Agents
🌐 프로젝트 페이지: microsoft.github.io/CUAWright
CUAWright는 코딩 모델에 터미널을 제공하여 브라우저와 데스크톱 애플리케이션을 자동화합니다. Webwright로 웹을 탐색하고 재사용 가능한 Playwright 스크립트를 작성하거나, 직접 데스크톱 작업을 실행하고 Ubuntu VM에서 OSWorld-V2 벤치마크를 재현하세요.
브라우저 빠른 시작 또는 데스크톱 빠른 시작으로 시작하세요.
이미 즐겨 쓰는 에이전트가 있고, Claude Code, Codex, Hermes를 브라우저 작업에서 더 강력하게 만들 방법을 고민 중이신가요? CUAWright 브라우저 플러그인/스킬 추가를 고려해 보세요!
📰 소식
2026-10-03 — Webwright → CUAWright: 브라우저와 데스크톱 에이전트를 통합하기 위해 프로젝트 이름을 변경했습니다. Webwright 브라우저 런타임은 이제 cuawright.webwright이며, OSWorld 데스크톱 지원은 cuawright.desktop에 있습니다. 기존 webwright 명령과 임포트는 호환됩니다. 데스크톱 설정을 참고하세요.
2026-09-01 — 지속적인 단계별 브라우징과 네이티브 run_command 도구 호출로 성능이 향상되어 Online-Mind2Web에서 88.1%, Odysseys에서 77.5%를 기록했습니다.
2026-07-21 — Skill Factory: 모든 solve가 스크립트를 남기고, 이를 재사용 가능하고 검증된 파라미터화된 코드 스킬로 증류하여 모델 없이 독립적으로 재실행할 수 있습니다(~40초, 토큰 제로). WebArena에서 재사용은 held-out 정확도를 55% → 70%(+15 pp)로 끌어올립니다. 선택적 Skill Factory를 참고하세요.
2026-05-11 — Task2UI 모드 지원: Webwright가 작업을 완료하고 작업 결과를 쉽게 보고 재사용할 수 있는 HTML 기반 웹 앱으로 렌더링합니다.
2026-05-06 — Codex 및 Claude Code 플러그인 매니페스트 추가; /plugin install cuawright@cuawright로 설치하세요. Hermes Agent 통합 출시; 동일한 skills/cuawright-web/ 폴더가 이제 Claude Code, Codex, Hermes 전반에서 로드됩니다.
2026-05-04 — 최초 공개 릴리스: ~1.5k LoC, OpenAI / Anthropic / OpenRouter 백엔드, Playwright 환경.
💡 동기: 상태를 가진 브라우저에서의 단계별 웹 상호작용을 넘어서
오늘날 대부분의 웹 에이전트는 브라우저 세션 자체를 작업 공간으로 취급합니다. 각 단계에서 모델은 현재 페이지 상태를 받고 단일 다음 동작 — 클릭, 타이핑, DOM 선택자, 또는 짧은 도구 호출 — 을 예측합니다. 형식이 무엇이든, 에이전트는 미리 정의된 상호작용 루프 안에서 한 번에 하나의 웹 동작을 예측하도록 고정됩니다. 그 하네스는 LLM이 더 약했을 때는 유용했습니다. 모델이 코드 작성과 디버깅에 더 강해짐에 따라, 같은 하네스가 병목이 됩니다.
Webwright는 다른 입장을 취합니다: 에이전트와 브라우저를 분리하고, 브라우저를 에이전트가 프로그램을 개발하는 동안 실행하고, 검사하고, 버릴 수 있는 대상으로 취급합니다. 지속되는 산출물은 브라우저 세션이 아니라 로컬 작업 공간의 코드와 로그입니다.
🧱 웹 환경과의 견고하고 재사용 가능한 상호작용 — 취약한 픽셀 수준 동작 대신, 터미널을 가진 코딩 에이전트가 요소를 조회하고, 조건을 기다리고, 지연 로딩이나 재렌더링 같은 동적 동작을 처리합니다. 결과 스크립트는 처음부터 다시 발견하는 대신 재실행, 적응, 작업 간 공유가 가능합니다.
⚡ 복잡한 워크플로의 효율적인 구성 — 날짜 선택이나 양식 작성 같은 다단계 상호작용이 간결한 프로그램이 됩니다. 루프, 함수, 추상화를 통해 에이전트는 동일한 저수준 시퀀스를 다시 예측하지 않고도 유사한 작업(예: 다른 날짜)에 일반화할 수 있습니다. 더 적은 상호작용 라운드, 더 빠른 실행, 긴 지평에서의 오류 누적 감소.
🧪 브라우저가 아닌 작업 공간을 상태로 — 에이전트는 탐색적 스크립트를 작성하고, 새 브라우저 세션을 생성하고, 스크린샷을 언제 캡처하고 실패를 검사할지 스스로 결정할 수 있습니다. 마치 인간 엔지니어가 RPA 스크립트를 반복 개선하는 것처럼요.
🪄 최소임에도 놀랍도록 효과적 — 이 간소화된 설정은 복잡하고 특히 긴 지평의 웹 작업을 잘 처리합니다(성능 참고).
🌟 Webwright를 선택하는 이유
대부분의 웹 에이전트 프레임워크는 실제 에이전트 루프를 여러 추상화 계층 아래 묻어버립니다. Webwright는 반대 입장을 취합니다:
🪶 읽기 쉬운 코어 — 브라우저 에이전트 루프, 환경, 모델, CLI는 src/cuawright/webwright/ 아래 별도 모듈입니다.
🧩 플러그 가능한 모델 백엔드 — OpenAI, Anthropic, OpenRouter, 각각 ~150–200줄.
🔍 숨겨진 프레임워크 제로 — httpx, pydantic, playwright, typer만 사용.
🔁 평탄한 프롬프트 → 관찰 → 스크립트 실행 루프 — 엔드투엔드로 읽기 쉽고, 디버깅하기 쉽고, 포크하기 쉽습니다.
🧪 실행 산출물 우선 — 모든 실행은 검사를 위해 궤적과 스크린샷을 디스크에 기록합니다.
또 다른 무거운 플랫폼 대신 브라우저를 사용하는 에이전트를 위한 최소한의 디버깅하기 쉬운 출발점을 원한다면, 이것이 바로 그것입니다.
🆚 Webwright가 다른 브라우저 에이전트 저장소와 다른 점
아키텍처 수준에서의 차이:
Stagehand (Browserbase)
agent-browser (Vercel)
browser-use
Webwright
패러다임
하이브리드: 코드 + NL 프리미티브(act / extract / agent)
다른 에이전트(Claude Code, Codex 등)가 호출하는 CLI 도구
DOM/AX 스냅샷에 대한 자율 LLM 에이전트 루프
터미널을 가진 코딩 에이전트; 브라우저는 그저 스폰하는 환경
행동 공간
Playwright 코드, 또는 NL → LLM 변환 Playwright
개별 서브커맨드(open, click @e2, snapshot, eval)
LLM이 선택하는 인덱스 기반 클릭/타이핑 동작
자유 형식 Python(Playwright 스크립트를 스스로 작성)
"상태"란?
브라우저 세션
브라우저 세션(CLI 호출 전반에 걸쳐 데몬이 유지)
브라우저 세션
로컬 작업 공간 — 코드, 스크린샷, 로그. 브라우저는 일회용.
루프 형태
명령형; agent()가 필요 시 다단계 수행
마이크로 스텝당 한 번의 CLI 호출
관찰 → 다음 동작 예측 → 실행 → 반복
코드 작성 → 실행 → 스크린샷 검사 → 수리(코드-행동)
🎥 데모
CUAWright 데모
-M2qh1evLcPzODu80AkBZQ.2.MOV
Webwright 데모
webwright_demo.mp4
📊 성능
CUAWright는 아래 모든 벤치마크에서 동일한 모델을 다른 하네스로 실행한 것보다 뛰어납니다. 데스크톱과 CAD부터 긴 지평의 웹 작업까지. 자세한 내용은 논문을 참고하세요.
🖥️ OSWorld-V2: GPT-5.6 Sol로 67.9% 부분 점수(GPT-5.6 Sol 단독 대비 +5.2), GPT-5.5로 63.2%(공식 GPT-5.5 OSWorld 에이전트 대비 +15.7).
🌐 웹: GPT-5.4로 Online-Mind2Web에서 88.1%, Odysseys에서 77.5% (GPT-5.4 GUI 에이전트는 83.4% 및 33.5%).
📐 CAD: GPT-5.5로 BenchCAD에서 79.0% Vision2Code 평균 IoU, GPT-5.6 Sol로 CADGenBench에서 55.7% 종합 점수.
💰 비용: OSWorld-V2에서 CUAWright는 점수를 높이면서 GPT-5.6 Sol로 작업당 API 비용을 $9.5, GPT-5.5로 작업당 $6.0 절감합니다.
🗺️ 프로젝트 맵
CUAWright/
├── pyproject.toml # 패키지, 의존성 extras, CLI 명령
├── setup.py # wheel 및 소스 아카이브의 데스크톱 출처
├── src/
│ ├── cuawright/
│ │ ├── core/ # 공유 API 헬퍼
│ │ ├── webwright/ # 브라우저 런타임
│ │ │ ├── agents/ # 브라우저 에이전트 루프
│ │ │ ├── environments/ # 브라우저 및 터미널 작업 공간
│ │ │ ├── models/ # OpenAI, Anthropic, OpenRouter 백엔드
│ │ │ ├── tools/ # 브라우저 세션, 이미지, 자기 성찰
│ │ │ ├── config/ # 스택 가능한 브라우저 YAML 설정
│ │ │ ├── run/ # cuawright-web CLI 및 doctor
│ │ │ └── utils/ # 증거, 로깅, 직렬화
│ │ └── desktop/ # 지속적 데스크톱 런타임
│ │ ├── agents/ # 데스크톱 에이전트 루프 및 호출 예산
│ │ ├── environments/osworld/ # VM 명령, 스크린샷, 제출
│ │ ├── models/ # 표준 Responses API 전송 및 도구
│ │ ├── config/prompts.py # 데스크톱 프롬프트
│ │ ├── setup.py # 고정된 OSWorld 설정 및 검증
│ │ ├── run/cli.py # 사용자 정의 및 공식 데스크톱 워크플로
│ │ ├── run/benchmarks/ # 공식 작업 설정 및 평가
│ │ └── utils/ # 산출물 및 출처
│ └── webwright/__init__.py # 레거시 Python 임포트 호환성
├── extensions/skill-factory/ # 선택적 cuawright-skill-factory 배포
│ ├── pyproject.toml # 별도 wheel; 기본 패키지에 의존
│ └── src/cuawright/webwright/ # skill_factory/ 및 tools/skill_use.py
├── skills/cuawright-web/ # 브라우저 스킬, 명령, 참조 가이드
├── .claude-plugin/ # Claude Code 플러그인 및 마켓플레이스 매니페스트
├── .codex-plugin/ # Codex 플러그인 매니페스트
├── docs/ # 데스크톱 설정 및 Skill Factory 가이드
├── tests/ # 브라우저, Skill Factory, 호환성 테스트
├── release/osworld/tests/ # 데스크톱 요청, 라이프사이클, 프라이버시 테스트
├── .github/workflows/ # 런타임 및 Skill Factory CI
├── assets/ # 쇼케이스, 궤적 뷰어, 그림, 로고
├── LICENSE # MIT 브라우저 라이선스
├── licenses/ # Apache-2.0 데스크톱 런타임 라이선스
└── NOTICE # 임포트된 런타임 출처 표시
🚀 브라우저 빠른 시작
Webwright는 코딩 모델이 터미널에서 브라우저를 실행하고, 페이지를 검사하고, 작업을 디버깅할 수 있게 합니다. 스크립트 기반 실행은 재사용 가능한 Python 스크립트를 생성합니다. 라이브 브라우저 모드는 단계 전반에 걸쳐 페이지를 열어두고 스크립트를 생성하지 않고 답변을 반환합니다.
사전 요구 사항
Python 3.10+
Playwright를 통해 설치된 Chromium
선택한 백엔드(OpenAI, Anthropic, OpenRouter)의 API 키
설치
pip install -e .
playwright install chromium
스크립트 기반 실행
설정된 백엔드의 자격 증명을 내보내세요(예: model_openai.yaml과 함께 OPENAI_API_KEY, 또는 model_claude.yaml과 함께 ANTHROPIC_API_KEY). 그런 다음:
python -m cuawright.webwright.run.cli main \
-c base.yaml -c model_openai.yaml \
-t " Report the page title and the destination of its main link. " \
--start-url https://example.com \
--task-id demo_openai \
-o outputs/default
image_qa 및 self_reflection 도구는 실행에 설정된 모델을 사용합니다. 도구를 별도로 실행할 때는 model: 설정을 포함한 비공개 YAML 파일의 절대 경로를 --model-config로 전달하세요. 해당 파일은 체크아웃 및 결과 디렉터리 밖에 두세요.
라이브 브라우저 모드
네이티브 OpenAI run_command 도구 호출로 점진적 브라우징을 하려면 다음을 사용하세요:
cuawright-web main -c best_default_judge_json_persistent_cli.yaml -c model_openai.yaml \
-t " <task> " --start-url " <url> " --task-id example -o outputs/example
이 설정은 명령 전반에 걸쳐 Browserbase 클라우드 세션을 유지합니다. 실행 전에 OPENAI_API_KEY, BROWSERBASE_API_KEY, BROWSERBASE_PROJECT_ID를 설정하세요. 에이전트는 셸 명령을 실행하고, 결과를 검사하고, 완료 전에 작업을 확인합니다. 이미지 읽기 및 궤적 검증은 브라우저 워크플로 가이드를 참고하세요.
🚩 플래그
플래그
설명
-c
src/cuawright/webwright/config/의 설정 파일(스택 가능).
-t
작업 지시.
--start-url
초기 페이지.
--task-id
출력 하위 폴더 이름.
-o
출력 디렉터리.
🖥️ 데스크톱 빠른 시작
cuawright desktop은 OSWorld-V2 Ubuntu VM에서 작업을 실행합니다. 에이전트는 터미널을 사용하여 애플리케이션을 검사하고, 명령을 실행하고, 스크린샷을 보고, 작업을 저장합니다. 직접 작업을 주거나 점수가 있는 공식 벤치마크 작업을 실행할 수 있습니다.
요구 사항 및 설치
Python 3.12+ 및 Responses 호환 모델 API 키.
Docker 및 게이트된 공식 작업 및 자산 스냅샷에 대한 접근.
pip install -e " .[desktop] "
설정 전에 Hugging Face에서 작업 및 자산에 대한 접근을 수락한 다음 로그인하세요:
pip install huggingface_hub
hf auth login
cuawright setup osworld --root ~ /.cache/cuawright/osworld-v2-2026.08.08
cuawright verify osworld \
--setup ~ /.cache/cuawright/osworld-v2-2026.08.08/setup.json
설정은 기본적으로 고정된 소스, 작업 클래스, 자산, VM을 다운로드합니다. 기존 리소스는 복사 없이 등록할 수 있습니다. API 키는 소스, 작업, 자산, 결과 디렉터리 밖의 0600 모드의 사용자 소유 파일에 넣으세요. 부모 디렉터리가 이미 존재하는 새 결과 디렉터리를 선택하세요.
임의의 데스크톱 작업 실행
cuawright desktop run \
--setup /absolute/path/to/setup.json \
--credentials /absolute/path/to/api-key \
--results /absolute/path/to/results/custom \
--model YOUR_MODEL \
--instruction " <task> "
이 워크플로에는 평가자나 점수가 없습니다. …
Other tools that do the same work
Agent stacks with this tool(1)View graph
CUAWright와 Hermes 에이전트 스킬을 활용한 브라우저 및 데스크톱 작업 자동화
From README links이들은 CUAWright(이전 명칭 Webwright)를 터미널 기반 하네스로 구축하여, 코딩 모델이 한 번에 하나의 클릭을 예측하는 대신 Playwright 브라우저 세션을 실행하고 페이지를 검사하며 스크립트를 작성할 수 있도록 했다. 브라우저 작업에는 `cuawright web`을, Ubuntu VM 데스크톱 작업에는
View stack
No comments yet.
to comment.