Skip to main content
Glama

touch-browser

Terminal demo

License: MPL-2.0 Status: pilot-ready

주장을 제시하세요. 페이지 기반 증거, 판정 및 인용을 얻으세요.

touch-browser는 AI 에이전트를 위한 증거 검증 계층입니다. 단순히 페이지를 가져오거나 HTML을 마크다운으로 변환하는 것 이상의 기능을 수행합니다. 페이지를 열고 구조화된 스냅샷을 컴파일하며, 현재 페이지가 주장을 뒷받침하는지, 반박하는지, 아니면 더 많은 브라우징이 필요한지 알려줍니다.

다음과 같은 경우에 사용하세요:

  • 원시 HTML 덤프 대신 소스 링크가 포함된 증거가 필요할 때

  • 에이전트가 답변하기 전에 검토할 수 있는 지원 스니펫과 판정 설명이 필요할 때

  • 모호한 주장에 대해 허풍을 떠는 대신 안전한 미해결 경로를 제공해야 할 때

  • 맹목적인 자동화 대신 정책 기반 브라우징이 필요할 때

  • 재현 가능하고 감사가 가능한 다중 페이지 연구 세션이 필요할 때

사실 확정이 아닌 증거 우선:

  • touch-browser는 AI가 페이지 내 증거를 수집하고 그 출처를 추적하도록 돕습니다.

  • 상위 수준의 모델이나 인간이 페이지 간 또는 더 넓은 세계 전반에 걸쳐 무엇이 진실인지 결정합니다.

extract가 반환하는 것

현재 추출기의 약식 claimOutcome 형태:

{
  "statement": "The Starter plan costs $29 per month.",
  "verdict": "evidence-supported",
  "confidenceBand": "high",
  "reviewRecommended": false,
  "supportSnippets": [
    {
      "blockId": "b4",
      "stableRef": "rmain:table:plan-monthly-price-snapshots-starter-29-10-000-t",
      "snippet": "Starter | $29 | 10,000"
    }
  ],
  "verdictExplanation": "Matched direct support in 3 page block(s). Review the attached snippets before reusing the claim."
}

추출기는 네 가지 판정을 반환합니다:

  • evidence-supported: 현재 페이지에서 사용 가능한 지원 증거를 발견함

  • contradicted: 현재 페이지에서 상충되는 증거를 발견함

  • insufficient-evidence: 현재 페이지가 충분한 직접적 지원을 제공하지 않음

  • needs-more-browsing: 현재 페이지가 아직 충분히 구체적이지 않으므로 다음 단계로 다른 페이지가 필요함

confidenceBand, reviewRecommended, supportSnippets, verdictExplanationmatchSignals가 포함되어 있어 에이전트가 첫 번째 일치 항목을 맹목적으로 신뢰하지 않고 다음에 무엇을 할지 결정할 수 있습니다.

MCP 패키지

기본 로컬 호스트 MCP 경로:

  • npm 패키지: @nangman-infra/touch-browser-mcp

  • 범위: 공개 문서 및 연구 웹

  • MCP 계약: 헤드리스 전용, 자동 검색 엔진 선택, 챌린지/인증/MFA에 대한 감독된 복구 핸드오프

권장 호스트 구성:

{
  "mcpServers": {
    "touch-browser": {
      "command": "npx",
      "args": ["-y", "@nangman-infra/touch-browser-mcp"]
    }
  }
}

최초 실행 시, 패키지는 GitHub Releases에서 일치하는 독립형 런타임 번들을 다운로드하고, 게시된 .sha256을 확인하며, ~/.touch-browser/npm-mcp/versions/ 아래에 설치한 다음 touch-browser mcp를 시작합니다.

Claude Desktop, Cursor 또는 Codex와 같은 로컬 MCP 호스트가 별도의 수동 런타임 설치 없이 연결되기를 원할 때 이 패키지를 사용하세요.

독립형 번들

v* 태그가 지정된 푸시는 이제 Standalone Release 워크플로우에서 독립형 macOS 및 Linux 번들을 빌드합니다. 각 번들에는 다음이 포함됩니다:

  • bin/touch-browser

  • runtime/touch-browser-bin 아래의 최적화된 Rust 바이너리

  • 번들로 제공되는 Node 런타임 및 Playwright 어댑터

  • 기본 의미론적 러너 스크립트 및 모델 캐시

태그가 지정된 릴리스가 게시되면 GitHub Releases에서 일치하는 tarball을 다운로드하고 압축을 푼 다음 실행하세요:

./touch-browser-<version>-<platform>-<arch>/install.sh
touch-browser telemetry-summary
touch-browser update --check

동일한 휴대용 번들을 로컬에서 빌드하려면:

pnpm install --frozen-lockfile
pnpm run build:standalone-bundle -- v0.1.0-rc1

# Then install the bundled command into PATH
./dist/standalone/touch-browser-v0.1.0-rc1-<platform>-<arch>/install.sh
touch-browser telemetry-summary
touch-browser update --check

독립형 경로는 여전히 공식 CLI, 운영, 오프라인 및 대체 설치 경로입니다:

  1. 독립형 번들 압축 해제

  2. install.sh 실행

  3. 모든 CLI 및 서비스 작업에 설치된 touch-browser 명령 사용

설치 프로그램은 이제 관리형 설치를 수행합니다:

  • 관리형 버전은 ~/.touch-browser/install/versions/<bundle-name> 아래에 위치함

  • 활성 버전은 ~/.touch-browser/install/current

  • PATH 명령은 ~/.touch-browser/install/current/bin/touch-browser를 가리킴

  • touch-browser updatecurrent를 새로 확인된 릴리스 번들로 교체함

  • touch-browser uninstall --purge-all --yes는 관리형 설치와 모든 저장된 데이터를 제거함

첫 실행

다음은 설치된 사용자 경험과 일치하는 명령 전용 증명 경로입니다:

touch-browser open https://www.iana.org/help/example-domains --browser --session-file /tmp/tb-first-run.json
touch-browser session-read --session-file /tmp/tb-first-run.json --main-only
touch-browser session-extract --session-file /tmp/tb-first-run.json \
  --claim "As described in RFC 2606 and RFC 6761, a number of domains such as example.com and example.org are maintained for documentation purposes."
touch-browser session-synthesize --session-file /tmp/tb-first-run.json --format markdown
touch-browser session-close --session-file /tmp/tb-first-run.json

설치된 검색은 이제 기본적으로 엔진 수준의 지속적인 신뢰 프로필을 유지합니다:

  • Google: ~/.touch-browser/browser-search/profiles/google-default

  • Brave: ~/.touch-browser/browser-search/profiles/brave-default

  • 프로필 상태 메타데이터: ~/.touch-browser/browser-search/<engine>.profile-state.json

소스에서 기여자 빌드

전제 조건: rustup, Node.js 18+, pnpm.

bash scripts/bootstrap-local.sh
cargo build --release -p touch-browser-cli
pnpm run build:standalone-bundle -- local-dev
./dist/standalone/touch-browser-local-dev-<platform>-<arch>/install.sh

소스 체크아웃은 기여자 워크플로우입니다. 릴리스 및 운영 문서는 여전히 독립형 번들에서 설치된 touch-browser 명령을 가정합니다.

bootstrap-local.sh는 다음 위치에 기본 의미론적 모델을 설치합니다:

  • ~/.touch-browser/models/evidence/embedding

  • ~/.touch-browser/models/evidence/nli

해당 기본 위치를 재정의해야 하는 경우에만 TOUCH_BROWSER_EVIDENCE_EMBEDDING_MODEL_PATH 또는 TOUCH_BROWSER_EVIDENCE_NLI_MODEL_PATH를 사용하세요.

왜 마크다운만으로는 안 되나요?

touch-browser는 모든 크롤러나 브라우저 도구를 대체하려는 것이 아닙니다. 이 도구의 작업은 페이지 획득 후에 시작됩니다.

필요 사항

마크다운 전용 가져오기

touch-browser

페이지 읽기

소스 링크된 블록 참조 유지

부분적

페이지가 주장을 뒷받침하는지 판단

아니요

반박 및 미해결 상태 반환

아니요

지원 스니펫 및 판정 설명 제공

아니요

에이전트에게 답변 대신 에스컬레이션 지시

아니요

제품 표면

주요 표면:

  • extract: 현재 페이지에 대해 주장을 검증하고 구조화된 주장 결과를 반환

지원 읽기 표면:

  • read-view: 인간 검토자 또는 검증자 모델을 위한 읽기 쉬운 마크다운

  • compact-view: 에이전트 루프를 위한 저토큰 의미론적 상태

  • search: 후보 페이지를 열기 전 구조화된 발견

안전 및 감사 표면:

  • policy: 페이지 및 작업을 허용, 검토 또는 차단으로 분류

  • session-synthesize: 다중 페이지 세션을 인용이 포함된 JSON 또는 마크다운으로 변환

  • serve: MCP 또는 에이전트 통합을 위해 stdio JSON-RPC를 통해 런타임 노출

touch-browser란 무엇인가

  • 증거 우선 추출기

  • 선택적 예측 표면

  • 검증자 친화적인 라우팅 계층

touch-browser가 아닌 것

  • 보편적 진실 오라클

  • 범용 크롤러 대체품

  • 뒷받침되지 않는 모든 주장이 거짓이라는 보장

MCP 예시

로컬 호스트를 위한 권장 MCP 설정:

{
  "mcpServers": {
    "touch-browser": {
      "command": "npx",
      "args": ["-y", "@nangman-infra/touch-browser-mcp"]
    }
  }
}

MCP 패키지는 전체 CLI보다 의도적으로 더 좁은 범위를 가집니다:

  • 범위는 공개 문서 및 연구 웹으로 제한됨

  • 권장 루프는 tb_search -> tb_search_open_top -> tb_read_view -> tb_extract

  • engine은 MCP를 통해 노출되지 않음

  • headed는 MCP를 통해 노출되지 않음

  • 페이지가 챌린지, 인증, MFA 또는 기타 감독된 복구를 나타내는 경우, 다른 브라우저 설정으로 재시도하는 대신 중단하고 인간에게 넘김

설치된 독립형 명령을 위한 대체 MCP 브리지 설정:

{
  "mcpServers": {
    "touch-browser": {
      "command": "touch-browser",
      "args": ["mcp"]
    }
  }
}

브리지는 내부적으로 touch-browser serve를 시작하고 tb_search, tb_search_open_top, tb_open, tb_read_view, tb_extract, tb_tab_opentb_session_synthesize와 같은 도구를 노출합니다.

저장소 체크아웃 통합 자산:

{
  "mcpServers": {
    "touch-browser": {
      "command": "node",
      "args": ["integrations/mcp/bridge/index.mjs"]
    }
  }
}

독립형 번들은 touch-browser mcptouch-browser serve를 제공합니다. 체크인된 Node 런처는 저장소 체크아웃 또는 컨테이너 이미지를 위한 저장소 통합 자산으로 유지됩니다.

기본적으로 브리지는 명시적인 TOUCH_BROWSER_SERVE_COMMAND, 그 다음 명시적인 바이너리 경로, 그 다음 설치되거나 패키징된 touch-browser 바이너리, 그 다음 저장소 로컬 target/{release,debug} 바이너리를 선호합니다. 아무것도 사용할 수 없는 경우 cargo run으로 돌아가는 대신 설치/빌드 지침과 함께 빠르게 실패합니다.

특정 빌드된 바이너리나 래퍼 명령을 강제하려면 TOUCH_BROWSER_SERVE_COMMAND를 사용하세요.

아키텍처

Query / URL / fixture / browser tab
  -> browser-first search result parsing
  -> Acquisition
  -> Observation compiler
  -> read-view / compact-view
  -> extract (evidence + citations + optional verifier)
  -> policy
  -> session synthesis / replay
  -> CLI / JSON-RPC serve / MCP

문서 및 증명

라이선스

이 저장소는 이제 MPL-2.0을 사용합니다.

  • 상업적 및 비상업적 사용이 허용됩니다.

  • 수정된 MPL 적용 파일을 배포하는 경우, 해당 적용 파일은 MPL-2.0 하에 유지됩니다.

  • 더 큰 작업 내의 별도 파일은 다른 약관을 사용할 수 있습니다.

  • 전체 법적 텍스트: LICENSE

  • 평이한 언어 정책: LICENSE-POLICY.md

Install Server
A
security – no known vulnerabilities
A
license - permissive license
B
quality - B tier

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nangman-infra/touch-browser'

If you have feedback or need assistance with the MCP directory API, please join our Discord server