업데이트로 돌아가기
New releaseJul 23, 2026

libretto v0.6.37

신뢰할 수 있는 브라우저 자동화를 구축하기 위한 AI 툴킷

공유

Libretto

Libretto

npm version License: MIT GitHub Discussions Discord

Libretto는 강력한 웹 통합을 구축하기 위한 툴킷입니다. 코딩 에이전트에게 라이브 브라우저와 토큰 효율적인 CLI를 제공하여 다음을 수행할 수 있습니다:

  • 최소한의 컨텍스트 오버헤드로 라이브 페이지 검사
  • 네트워크 트래픽을 캡처하여 사이트 API 리버스 엔지니어링
  • 사용자 작업을 기록하고 자동화 스크립트로 재생
  • 실제 사이트에서 대화형으로 중단된 워크플로 디버깅

Saffron Health 팀은 일반적인 의료 소프트웨어에 대한 브라우저 통합을 유지 관리하기 위해 Libretto를 구축했습니다. 다른 팀들도 더 쉽게 동일한 작업을 수행할 수 있도록 오픈소스로 공개합니다.

https://github.com/user-attachments/assets/9b9a0ab3-5133-4b20-b3be-459943349d18

빠른 링크

설치

# Add Libretto to your project. Requires Node.js and npm.
npm install libretto

# First-time onboarding: install skills and download Chromium
npx libretto setup

# Check workspace readiness at any time
npx libretto status

setup 명령은 .libretto/ 디렉토리를 생성하고, 에이전트 스킬을 설치하며, --skip-browsers를 전달하지 않는 한 Chromium을 다운로드합니다.

사용 사례

Libretto는 코딩 에이전트를 통해 스킬로 사용되도록 설계되었습니다. 다음은 몇 가지 예시 프롬프트입니다:

일회성 스크립트 생성

Libretto 스킬을 사용하세요. LinkedIn에 접속하여 처음 10개의 게시물에서 콘텐츠, 작성자, 반응 수, 처음 25개의 댓글, 처음 25개의 리포스트를 스크래핑하세요.

코딩 에이전트가 LinkedIn에 로그인할 수 있는 창을 열고 자동으로 탐색을 시작합니다.

대화형 스크립트 구축

eclinicalworks EHR에서 환자의 기본 보험 ID를 가져오는 워크플로를 보여드리겠습니다. Libretto 스킬을 사용하여 환자 이름과 생년월일을 입력으로 받아 보험 ID를 반환하는 Playwright 스크립트로 변환하세요. URL은 ...

Libretto는 브라우저에서 수행하는 작업을 읽을 수 있으므로 워크플로를 수행한 다음 해당 작업을 사용하여 워크플로를 재구성하도록 요청할 수 있습니다.

브라우저 자동화를 네트워크 요청으로 변환

./integration.ts에 Hacker News에 접속하여 처음 10개의 게시물을 가져오는 브라우저 스크립트가 있습니다. 이를 직접 네트워크 스크립트로 변환하세요. Libretto 스킬을 사용하세요.

Libretto는 브라우저에서 네트워크 요청을 읽을 수 있으므로 API를 리버스 엔지니어링하고 해당 요청을 직접 호출하는 스크립트를 만들 수 있습니다. 직접 API 호출은 UI 자동화보다 빠르고 안정적입니다. 또한 Libretto에 요청의 일반적인 보안 쿠키를 분석하는 보안 분석을 요청하여 네트워크 요청 접근 방식이 안전한지 확인할 수 있습니다.

깨진 통합 수정

./integration.ts에 Availity에 접속하여 환자의 자격 확인을 수행하는 브라우저 스크립트가 있습니다. 그런데 실행할 때 선택자가 깨졌다는 오류가 발생합니다. 수정해주세요. Libretto 스킬을 사용하세요.

에이전트는 Libretto를 사용하여 실패를 재현하고, 워크플로를 어느 시점에서든 일시 중지하고, 라이브 페이지를 검사하고, 문제를 모두 자율적으로 수정할 수 있습니다.

CLI 사용법

명령줄에서 직접 Libretto를 사용할 수도 있습니다. 모든 명령은 특정 세션을 대상으로 하기 위해 --session <name>을 허용합니다.

npx libretto open <url>                    # launch browser and open a URL
npx libretto run ./integration.ts --headless # run a workflow and close on success
npx libretto run ./integration.ts --headless --stay-open-on-success # keep a successful run inspectable
npx libretto snapshot --session <name>     # capture a screenshot and compact accessibility tree
npx libretto exec "<code>"                 # execute Playwright TypeScript against the open page
npx libretto close                         # close the browser

run 세션은 open 세션과 동일한 데몬 기반 명령을 통해 검사할 수 있습니다. 성공적인 실행은 기본적으로 브라우저를 닫습니다. --stay-open-on-success를 전달하면 pages, snapshotexec 명령을 위해 브라우저를 열어 둡니다. 실패하거나 일시 중지된 워크플로는 브라우저를 열어 두어 워크플로를 수정하거나 재개하기 전에 정확한 페이지 상태를 검사할 수 있습니다.

전체 명령 목록은 npx libretto help를 실행하세요.

구성

모든 Libretto 상태는 프로젝트 루트의 .libretto/ 디렉토리에 저장됩니다. 구성 파일, 세션 및 프로필에 대한 자세한 내용은 구성 문서를 참조하세요.

텔레메트리

Libretto는 CLI 사용을 이해하고 개선 사항의 우선 순위를 정하는 데 도움을 주기 위해 CLI 텔레메트리를 기록합니다. 각 해결된 명령은 설치 ID, 타임스탬프, libretto run과 같은 명령 이벤트 이름, 오류 부울, 패키지 버전, 빌드 채널(node_modules, source 또는 unknown), 그리고 Libretto Cloud에 로그인한 경우 구성된 클라우드 사용자 ID만 전송할 수 있습니다. Libretto는 명령 인수, URL, 프로젝트 경로, 세션 쿠키, API 키, 오류 메시지나 세부 정보, 이메일을 전송하지 않습니다.

설치 ID는 ~/.libretto/telemetry.json 텔레메트리 파일에 저장됩니다. 구현은 packages/libretto/src/cli/core/telemetry.ts에 있습니다.

텔레메트리를 비활성화하려면 LIBRETTO_TELEMETRY_DISABLED=1을 설정하고, DO_NOT_TRACK=1을 설정하고, CI=1로 실행하거나, ~/.libretto/telemetry.json을 편집하여 "enabled": false로 설정하세요.

커뮤니티 참여

다른 개발자와 연결하고, 도움을 받고, 구축한 내용을 공유하려면 Discord에 가입하세요:

Discord

더 긴 형식의 스레드는 GitHub Discussions를 방문하세요. 버그를 찾으셨나요? 이슈를 열어주세요.

라이선스

MIT License — 상업 및 오픈소스 프로젝트에서 자유롭게 사용하세요.

개발

이 저장소에서 로컬 개발을 수행하려면:

pnpm i
pnpm build
pnpm type-check
pnpm test

소스 구조:

  • packages/libretto/src/cli/ — CLI 명령
  • packages/libretto/src/runtime/ — 브라우저 런타임 (네트워크, 복구, 다운로드)
  • packages/libretto/src/shared/ — 공유 유틸리티 (구성, LLM 클라이언트, 로깅, 상태)
  • packages/libretto/test/ — 테스트 파일 (*.spec.ts)
  • packages/libretto/README.template.md — 저장소 및 패키지 README의 소스 진실
  • packages/libretto/skills/libretto/ — Libretto 스킬의 소스 진실

packages/libretto/README.template.md 또는 packages/libretto/skills/libretto/ 아래의 모든 항목을 편집한 후 pnpm sync:mirrors를 실행하세요.

생성된 README, 스킬 미러 및 스킬 버전 메타데이터가 수정 없이 동기화되었는지 확인하려면 pnpm check:mirrors를 실행하세요. 릴리즈하려면 pnpm prepare-release를 실행하세요.


[!NOTE] 이 프로젝트는 활발히 개발 중인 초기 단계 프로젝트입니다. 버전 1.0 이전에 API가 변경될 수 있습니다. 프로덕션에서는 특정 버전에 고정하는 것을 권장합니다.

Saffron Health 팀이 만들었습니다.

카테고리