
libretto v0.6.40
Das KI-Toolkit für den Aufbau zuverlässiger Browser-Automatisierungen
Libretto
Libretto ist ein Toolkit zum Erstellen robuster Web-Integrationen. Es gibt Ihrem Coding-Agenten einen Live-Browser und eine token-effiziente CLI, um:
- Live-Seiten mit minimalem Kontext-Overhead zu inspizieren
- Netzwerkverkehr zu erfassen, um Site-APIs zu reverse-engineeren
- Benutzeraktionen aufzuzeichnen und als Automatisierungsskripte wiederzugeben
- Defekte Workflows interaktiv gegen die reale Site zu debuggen
Wir bei Saffron Health haben Libretto entwickelt, um unsere Browser-Integrationen für gängige Gesundheitssoftware zu warten. Wir machen es Open-Source, damit andere Teams es leichter haben, dasselbe zu tun.
https://github.com/user-attachments/assets/9b9a0ab3-5133-4b20-b3be-459943349d18
Schnellzugriff
- Website: libretto.sh
- Dokumentation: libretto.sh/docs
- Repository: github.com/saffron-health/libretto
- Discord: discord.gg/NYrG56hVDt
Installation
# Fügen Sie Libretto zu Ihrem Projekt hinzu. Erfordert Node.js und npm.
npm install libretto
# Erstmaliges Onboarding: Skills installieren und Chromium herunterladen
npx libretto setup
# Jederzeit den Workspace-Status prüfen
npx libretto status
setup erstellt das Verzeichnis .libretto/, installiert Agent-Skills und lädt Chromium herunter, es sei denn, Sie übergeben --skip-browsers.
Anwendungsfälle
Libretto ist so konzipiert, dass es als Skill über Ihren Coding-Agenten verwendet wird. Hier sind einige Beispiel-Prompts:
Einmalige Skripterstellung
Verwenden Sie den Libretto-Skill. Gehen Sie auf LinkedIn und scrapen Sie die ersten 10 Beiträge nach Inhalt, wer sie gepostet hat, der Anzahl der Reaktionen, den ersten 25 Kommentaren und den ersten 25 Reposts.
Ihr Coding-Agent öffnet ein Fenster, in dem Sie sich bei LinkedIn anmelden können, und beginnt dann automatisch mit der Erkundung.
Interaktive Skripterstellung
Ich zeige Ihnen einen Workflow im eClinicalWorks EHR, um die primäre Versicherungs-ID eines Patienten zu erhalten. Verwenden Sie den Libretto-Skill, um daraus ein Playwright-Skript zu machen, das Patientenname und Geburtsdatum als Eingabe nimmt, um die Versicherungs-ID zurückzugeben. Die URL ist ...
Libretto kann Ihre Aktionen im Browser auslesen, sodass Sie einen Workflow ausführen und dann bitten können, Ihre Aktionen zu nutzen, um den Workflow nachzubauen.
Browser-Automatisierung in Netzwerkanfragen umwandeln
Wir haben ein Browser-Skript unter ./integration.ts, das automatisch zu Hacker News geht und die ersten 10 Beiträge holt. Wandeln Sie es in ein direktes Netzwerkskript um. Verwenden Sie den Libretto-Skill.
Libretto kann Netzwerkanfragen aus dem Browser auslesen, um die API zu reverse-engineeren und ein Skript zu erstellen, das diese Anfragen direkt aufruft. Direkte API-Aufrufe sind schneller und zuverlässiger als UI-Automatisierung. Sie können Libretto auch bitten, eine Sicherheitsanalyse durchzuführen, die die Anfragen auf gängige Sicherheitscookies überprüft, damit Sie verstehen können, ob ein Netzwerkanfrage-Ansatz sicher ist.
Defekte Integrationen reparieren
Wir haben ein Browser-Skript unter ./integration.ts, das zu Availity gehen und einen Anspruchs-Check für einen Patienten durchführen soll. Aber ich bekomme einen Fehler wegen eines defekten Selektors, wenn ich es ausführe. Reparieren Sie es. Verwenden Sie den Libretto-Skill.
Agenten können Libretto verwenden, um den Fehler zu reproduzieren, den Workflow an beliebiger Stelle anzuhalten, die Live-Seite zu inspizieren und Probleme zu beheben – alles autonom.
CLI-Nutzung
Sie können Libretto auch direkt über die Befehlszeile verwenden. Alle Befehle akzeptieren --session <name>, um eine bestimmte Sitzung anzusprechen.
npx libretto open <url> # Browser starten und eine URL öffnen
npx libretto run ./integration.ts --headless # Workflow ausführen und bei Erfolg schließen
npx libretto run ./integration.ts --headless --stay-open-on-success # erfolgreichen Durchlauf inspizierbar halten
npx libretto snapshot --session <name> # Screenshot und kompakten Accessibility-Tree erfassen
npx libretto exec "<code>" # Playwright TypeScript gegen die geöffnete Seite ausführen
npx libretto close # Browser schließen
run-Sitzungen sind über dieselben daemon-gestützten Befehle wie open-Sitzungen inspizierbar. Erfolgreiche Durchläufe schließen den Browser standardmäßig; übergeben Sie --stay-open-on-success, um den Browser für pages, snapshot und exec geöffnet zu lassen. Fehlgeschlagene oder angehaltene Workflows lassen den Browser geöffnet, damit Sie den genauen Seitenzustand vor der Behebung oder Fortsetzung inspizieren können.
Führen Sie npx libretto help für die vollständige Liste der Befehle aus.
Konfiguration
Der gesamte Libretto-Zustand befindet sich in einem Verzeichnis .libretto/ im Projektstamm. Details zu Konfigurationsdateien, Sitzungen und Profilen finden Sie in der Konfigurationsdokumentation.
Telemetrie
Libretto zeichnet CLI-Telemetrie auf, um die CLI-Nutzung zu verstehen und uns bei der Priorisierung von Verbesserungen zu helfen. Jeder ausgeführte Befehl kann nur eine Installations-ID, einen Zeitstempel, einen Befehlserignisnamen wie libretto run, einen Fehler-Boolean, die Paketversion, den Build-Kanal (node_modules, source oder unknown) und, wenn bei Libretto Cloud angemeldet, die konfigurierte Cloud-Benutzer-ID senden. Libretto sendet keine Befehlsargumente, URLs, Projektpfade, Sitzungs-Cookies, API-Schlüssel, Fehlermeldungen oder -details sowie E‑Mails.
Die Installations-ID wird in der Telemetriedatei unter ~/.libretto/telemetry.json gespeichert. Die Implementierung befindet sich in packages/libretto/src/cli/core/telemetry.ts.
Um Telemetrie zu deaktivieren, setzen Sie LIBRETTO_TELEMETRY_DISABLED=1, setzen Sie DO_NOT_TRACK=1, führen Sie mit CI=1 aus oder bearbeiten Sie ~/.libretto/telemetry.json und setzen Sie "enabled": false.
Treten Sie der Community bei
Treten Sie unserem Discord bei, um mit anderen Entwicklern in Kontakt zu treten, Hilfe zu erhalten und Ihre Projekte zu teilen:
Für längere Diskussionen besuchen Sie GitHub Discussions. Einen Fehler gefunden? Eröffnen Sie ein Issue.
Lizenz
MIT License – darf frei in kommerziellen und Open-Source-Projekten verwendet werden.
Entwicklung
Für die lokale Entwicklung in diesem Repository:
pnpm i
pnpm build
pnpm type-check
pnpm test
Quellverzeichnis:
packages/libretto/src/cli/– CLI-Befehlepackages/libretto/src/runtime/– Browser-Laufzeit (Netzwerk, Wiederherstellung, Downloads)packages/libretto/src/shared/– gemeinsame Hilfsprogramme (Konfiguration, LLM-Client, Logging, Zustand)packages/libretto/test/– Testdateien (*.spec.ts)packages/libretto/README.template.md– Quelle der Wahrheit für die Repository- und Paket-READMEspackages/libretto/skills/libretto/– Quelle der Wahrheit für den Libretto-Skill
Führen Sie pnpm sync:mirrors aus, nachdem Sie packages/libretto/README.template.md oder etwas unter packages/libretto/skills/libretto/ bearbeitet haben.
Um zu überprüfen, ob generierte READMEs, Skill-Spiegel und Skill-Versionsmetadaten synchron sind, ohne sie zu korrigieren, führen Sie pnpm check:mirrors aus. Zum Veröffentlichen führen Sie pnpm prepare-release aus.
[!NOTE] Dies ist ein frühes Projekt in aktiver Entwicklung. APIs können sich vor Version 1.0 ändern. Wir empfehlen, in der Produktion auf bestimmte Versionen zu fixieren.
Erstellt vom Team bei Saffron Health.