cli-anything-browser은(는) 무엇을 하나요?
DOMShell의 MCP 서버를 사용한 브라우저 자동화 명령줄 인터페이스입니다. ls, cd, cat, grep, click과 같은 파일 시스템 명령어로 웹 페이지를 탐색합니다.
설치
사전 요구 사항
-
Node.js 및 npx (DOMShell MCP 서버용):
# https://nodejs.org/ 에서 Node.js 설치 npx --version -
Chrome/Chromium 및 DOMShell 확장 프로그램:
- Chrome에 확장 프로그램 설치
- CLI 사용 전에 Chrome이 실행 중인지 확인
-
Python 3.10+
CLI 설치
cd browser/agent-harness
pip install -e .
명령어 그룹
page — 페이지 탐색
page open <url>— URL로 이동page reload— 현재 페이지 새로 고침page back— 이전 페이지로 돌아가기page forward— 앞 페이지로 이동page info— 현재 페이지 정보 표시
fs — 파일 시스템 명령어 (접근성 트리)
fs ls [path]— 경로의 요소 나열fs cd <path>— 디렉토리 변경fs cat [path]— 요소 내용 읽기fs grep <pattern> [path]— 텍스트 패턴 검색fs pwd— 현재 작업 디렉토리 출력
act — 동작 명령어
act click <path>— 요소 클릭act type <path> <text>— 입력 필드에 텍스트 입력
session — 세션 관리
session status— 세션 상태 표시session daemon-start— 지속적인 데몬 모드 시작session daemon-stop— 데몬 모드 중지
사용 예제
기본 탐색
# 페이지 열기
cli-anything-browser page open https://example.com
# 구조 탐색
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
cli-anything-browser fs ls
# 루트로 돌아가기
cli-anything-browser fs cd /
검색 및 클릭
cli-anything-browser fs grep "Login"
cli-anything-browser act click /main/button[0]
양식 작성
cli-anything-browser act type /main/input[0] "[email protected]"
cli-anything-browser act click /main/button[0]
JSON 출력
cli-anything-browser --json fs ls /
데몬 모드 (더 빠른 대화형 사용)
# 지속적인 연결 시작
cli-anything-browser session daemon-start
# 명령 실행 (지속적 연결 사용)
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
# 작업 완료 후 데몬 중지
cli-anything-browser session daemon-stop
대화형 REPL
cli-anything-browser
경로 구문
DOMShell은 접근성 트리에 대해 파일 시스템과 유사한 경로를 사용합니다:
/ — 루트 (문서)
/main — 주요 랜드마크
/main/div[0] — main의 첫 번째 div
/main/div[0]/button[2] — 첫 번째 div의 세 번째 버튼
- 배열 인덱스는 0부터 시작:
button[0]은 첫 번째 버튼 ..를 사용하여 한 단계 위로 이동/를 사용하여 루트로 이동
에이전트별 안내
파싱을 위한 JSON 출력
모든 명령어는 기계가 읽을 수 있는 출력을 위해 --json 플래그를 지원합니다:
cli-anything-browser --json fs ls /
반환:
{
"path": "/",
"entries": [
{"name": "main", "role": "landmark", "path": "/main"}
]
}
오류 처리
CLI는 일반적인 문제에 대해 명확한 오류 메시지를 제공합니다:
- npx를 찾을 수 없음: https://nodejs.org/ 에서 Node.js 설치
- DOMShell을 찾을 수 없음:
npx @apireno/domshell --version실행 - MCP 호출 실패: DOMShell Chrome 확장 프로그램 설치
명령어를 실행하기 전에 is_available()의 반환 값을 확인하세요.
효율성을 위한 데몬 모드
여러 명령어를 실행하는 에이전트 워크플로우의 경우 데몬 모드를 사용하세요:
- 데몬 시작:
cli-anything-browser session daemon-start - 명령 실행: 각 명령어가 MCP 연결을 재사용
- 데몬 중지:
cli-anything-browser session daemon-stop
이렇게 하면 각 명령어마다 1~3초의 콜드 스타트 시간이 발생하지 않습니다.
링크
보안 고려 사항
중요: AI 에이전트와 함께 이 CLI를 사용할 때는 다음 보안 고려 사항을 숙지하세요:
URL 제한
브라우저 하네스는 탐색 전에 모든 URL을 검증합니다:
- 명시적 스킴 필요: URL에
http://또는https://스킴이 포함되어야 함 (스킴이 없는example.com같은 URL은 거부됨) - 차단된 스킴:
file://,javascript://,data://,vbscript://,about://,chrome://및 브라우저 내부 스킴 - 허용된 스킴:
http://및https://만 허용 (CLI_ANYTHING_BROWSER_ALLOWED_SCHEMES로 구성 가능) - 프라이빗 네트워크 차단: 선택 사항 (
CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true— 기본적으로 비활성화됨)
DOM 콘텐츠 위험
접근성 트리에는 페이지의 보이는 요소와 숨겨진 요소가 모두 포함됩니다. 악성 웹사이트는 다음을 시도할 수 있습니다:
- 조작적인 텍스트(예: "이전 지침 무시")가 포함된 ARIA 레이블 제작
- 사용자에게 보이지 않는 콘텐츠를 주입하기 위해 aria-hidden 요소 사용
- 탐색을 혼란스럽게 하는 복잡한 DOM 구조 생성
완화 조치: 신뢰할 수 없는 웹사이트와 상호작용할 때는 다음을 고려하세요:
- 안전하게 파싱하기 쉬운 구조화된 출력을 위해
--json플래그 사용 - 프롬프트에 포함하기 전에 DOM 콘텐츠를 정리하거나 필터링
- 신뢰할 수 있는 도메인으로 탐색 제한
프라이빗 네트워크 접근
기본적으로 브라우저는 localhost 및 프라이빗 네트워크(192.168.x.x, 10.x.x.x 등)에 접근할 수 있습니다. 차단하려면:
export CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true
cli-anything-browser page open http://localhost:8080 # 차단됨
세션 격리
여러 브라우저 세션이 동일한 Chrome 인스턴스를 공유합니다. 쿠키와 인증 상태는 세션 간에 유지될 수 있습니다. 민감한 작업의 경우 다음을 고려하세요:
- Chrome의 게스트 모드 또는 시크릿 모드 사용
- 세션 간 쿠키 지우기
- 보안 컨텍스트별로 별도의 Chrome 프로필 사용