프로그래밍 가능한 Windows 브라우저
WebView2 브라우저 워크플로를 스크립트화하고, MCP 지원 AI 도구를 연결하며, Remote Ops를 통해 headed 원격 executor를 실행합니다. 브라우저 작업은 검사 가능한 상태로 유지되고, 도구 호출은 기록되며, 인증 정보는 사용자의 컴퓨터를 떠나지 않습니다.
Guida는 실제 브라우저, 로컬 프로젝트 상태, AI용 도구를 결합해 실용적인 자동화 워크플로를 지원합니다.
JavaScript, Lua, Janet으로 페이지를 이동하고, 요소를 클릭하고, 콘텐츠를 추출하고, 결과를 저장할 수 있습니다.
MCP 지원 도구를 연결하면 AI가 탭을 검사하고, 작업을 요청하고, 감독하에 스크립트를 실행할 수 있습니다.
URL이나 레코드를 큐에 넣고, 워커 풀을 실행하며, 여러 브라우저 탭에서 항목을 병렬 처리할 수 있습니다.
워크스페이스 저장소, 큐, 검색 인덱스, PostgreSQL, MongoDB, S3 호환 스토리지, Elasticsearch에 쓸 수 있습니다.
도메인 제어, 도구 승인, 감사 로그, 인증 정보 분리를 통해 자동화를 검토 가능한 상태로 유지합니다.
코딩 어시스턴트에 일반 테스트 도구와 함께 사용할 수 있는 보이는 브라우저 화면을 제공해 렌더링된 페이지 확인, UI 조사, 증적 수집을 돕습니다.
앱은 보이고 검사 가능하며, 실행 중에도 검토할 수 있는 워크플로를 중심으로 설계되었습니다.
데모 보기 Codex가 Guida로 렌더링된 채용 사이트를 검사하고, 페이지 동작을 비교하며, 결과를 기록하는 2화면 데스크톱 워크플로를 볼 수 있습니다. Guida는 코딩 어시스턴트가 Playwright나 Puppeteer 검사와 함께 승인 기반의 보이는 브라우저를 필요로 할 때 유용합니다.
페이지를 스크립트화하고, AI 도구를 연결하고, 큐를 처리하며, 민감한 작업을 검토 가능한 상태로 유지합니다.
스크립트로 WebView2 브라우저 탭을 조작합니다. 페이지 이동, 요소 클릭, 양식 입력, 콘텐츠 추출, 스크린샷 캡처를 지원합니다.
MCP 지원 도구를 연결하면 AI 에이전트가 탭을 검사하고, 브라우저 작업을 요청하고, 사용자의 감독하에 스크립트를 실행할 수 있습니다.
전체 운영자 UI에는 Guida Complete, headed 원격 실행에는 Guida Node, JSON-RPC 제어 평면에는 Remote Ops를 사용합니다. Remote Ops는 향후 브라우저 또는 데스크톱 제어 표면의 기반도 마련합니다.
JavaScript, Lua, Janet과 160개 이상의 API 메서드, IntelliSense, 디버깅, 워크스페이스 인식 실행을 제공합니다.
워크스페이스 저장소, 큐, 전체 텍스트 검색, PostgreSQL, MongoDB, S3 호환 스토리지, Elasticsearch에 데이터를 영구 저장할 수 있습니다.
전체 워크스페이스 아카이브나 Guida 관리 데이터만 포함하는 작은 백업을 만들 수 있습니다. 큐와 워크플로 원장 기록에는 일관된 SQLite 스냅샷을 사용합니다.
AI가 요청한 작업을 실행 전에 검토하고, 한 번만 또는 세션 동안 승인하며, 탐색을 허용된 도메인으로 제한할 수 있습니다.
MCP 작업은 기록되고, 인증 정보는 DPAPI로 암호화되며, MCP에서 시작된 스크립트는 복호화된 인증 정보 값을 읽을 수 없습니다.
Guida에 포함된 워크플로에서 시작한 뒤 자신의 워크스페이스에 맞게 조정할 수 있습니다.
연결부터 자동화까지 세 단계입니다.
MCP 호환 AI를 Guida 서버에 연결합니다. 앱 안에서 Ollama와 LlamaSharp를 직접 사용할 수도 있습니다.
AI가 무엇을 하려는지 실행 전에 정확히 볼 수 있습니다. 한 번만 승인하거나, 세션 동안 신뢰하거나, 그대로 실행하도록 둘 수 있습니다. 결정은 사용자가 합니다.
검토된 스크립트는 무인으로 실행됩니다. 워크스페이스는 데이터를 영구 저장하고, 큐 워커는 항목을 병렬 처리합니다.
명확한 Scripting API로 이동, 추출, 저장을 수행합니다. 직접 스크립트를 작성하거나 AI가 생성하게 할 수 있습니다.
async function main() { try { await g.nav.navigateToUrl("https://example.com/products"); await g.dom.waitForDomStable(); // 각 상품 카드에서 이름과 가격을 추출합니다 const products = await g.dom.getElements( ".product", ["innerText", "data-price"] ); // 각 상품을 워크스페이스에 저장합니다 for (const p of products) { g.store.put("products", p.innerText, p); } g.log("저장한 상품 수: " + products.length); } catch (e) { g.log("오류: " + e.message); } }
g.nav.navigateToUrl("https://example.com/products") g.dom.waitForDomStable() -- 각 상품 카드에서 이름과 가격을 추출합니다 local products, err = g.dom.getElements( ".product", "innerText,data-price" ) if err then g.log("오류: " .. err) return end -- 각 상품을 워크스페이스에 저장합니다 for i, p in ipairs(products) do g.store.put("products", p.innerText, p) end g.log("저장한 상품 수: " .. #products)
(g.nav.navigateToUrl "https://example.com/products") (g.dom.waitForDomStable) # 각 상품 카드에서 이름과 가격을 추출합니다 (def products (g.dom.getElements ".product" "innerText,data-price")) # 각 상품을 워크스페이스에 저장합니다 (each p products (g.store.put "products" (get p "innerText") p)) (g.log (string "저장한 상품 수: " (length products)))
Guida를 다운로드하고 AI를 연결한 뒤, 모든 작업을 볼 수 있는 상태로 자동화를 시작하세요.