Show HN: Libretto – Making AI browser automations deterministic
TL;DR Highlight
Libretto, open-sourced by Saffron Health, provides AI coding agents with a real-time browser and token-efficient CLI, enabling the creation and maintenance of robust browser automation scripts.
Who Should Read
Developers who are struggling with maintaining browser automation tools like Playwright or Puppeteer due to frequent site structure changes. It's particularly useful for teams looking to leverage AI agents to create self-healing automation workflows.
Core Mechanics
- Libretto equips AI coding agents (Claude, GPT, etc.) with a functioning Chromium browser and a CLI tool for analyzing pages efficiently in terms of tokens. This allows agents to write or modify automation scripts while observing real websites.
- The four core features are 'Live page inspection with minimal context,' 'Reverse engineering of site internal APIs through network traffic capture,' 'Recording user actions and replaying them as automation scripts,' and 'Interactive debugging on real sites.'
- Saffron Health developed this tool to maintain browser integration with healthcare software and open-sourced it under the MIT license for other teams facing similar challenges.
- Installation is completed with a single command: `npm install libretto`. Running `npx libretto setup` automatically downloads Chromium, detects AI providers (detecting environment variables like OPENAI_API_KEY), and sets up the default model.
- It supports four AI providers – OpenAI, Anthropic, Gemini, and Vertex – and allows you to switch between them at any time using the command `npx libretto ai configure <provider>`.
- The design philosophy is interesting. It views automation code itself as a 'means of optimization' and aims for a 'self-healing' structure where AI agents repeatedly fix broken code to make it work the next time.
- Teams currently using Playwright can adopt Libretto by replacing their internal implementation. User experience suggests it can handle complex structures like iframe mazes and referrer links.
Evidence
- A developer who had already invested weeks in building a similar internal tool noted that the timing of discovering Libretto coincided with their internal presentation, and they are considering replacing their Playwright-based automation of complex platforms like iframe mazes with Libretto.
- Another developer who built a similar internal tool commented that Libretto aligns with their philosophy that 'automation code is just a means to an end, and maintenance is the agent's responsibility,' and expressed willingness to test a replacement.
- Concerns were raised regarding healthcare data (PHI, Protected Health Information). A comment asked if Claude's demo used an Anthropic BAA (Business Associate Agreement, a contract for HIPAA compliance). It was pointed out that this must be verified for use in the healthcare field.
- A question was asked about the differences between Libretto and Playwright CLI, but there hasn't been an official response yet. Libretto is specialized in the workflow of agents 'writing and self-repairing' scripts, differentiating it from Playwright CLI, which is a simple automation execution tool.
- A question was raised about the license, and while the website confirmed it was MIT, it was pointed out that the LICENSE.md file was missing from the repository. Teams considering open-source adoption should take note.
How to Apply
- If you're experiencing issues with automation scripts breaking with every site update, you can adopt Libretto to build a self-healing pipeline where an AI agent automatically detects and fixes broken scripts. Set up the environment with `npx libretto setup`, attach a real browser to the agent, and run a repetitive modification loop.
- When you need to integrate with third-party services (e.g., healthcare software, legacy enterprise portals) that don't have directly documented APIs, you can use Libretto's network traffic capture feature to analyze requests during actual browser operation and reverse engineer the APIs.
- When you need to create new automation scripts from scratch, you can use Libretto's 'user action recording' feature to perform the desired actions directly in the browser and then automatically generate a script that can be replayed. This can significantly reduce manual coding time.
- If you're already running Playwright-based automation, you can introduce Libretto as a maintenance layer without immediately replacing existing scripts. Libretto's AI analysis can serve as a complement in cases that are difficult to handle with Playwright alone, such as nested iframes or referrer-based routing.
Code Example
snippet
# Installation
npm install libretto
# Initial setup: Chromium download + AI provider auto-detection + default model fixing
npx libretto setup
# Workspace status check
npx libretto status
# Explicitly switch AI provider (advanced settings)
npx libretto ai configure openai
npx libretto ai configure anthropic
npx libretto ai configure gemini
npx libretto ai configure vertexTerminology
결정론적(deterministic)Producing the same result given the same input. AI automation tends to yield varying results, but Libretto aims to make it stable and predictable.
PHIAbbreviation for Protected Health Information. Sensitive medical information, such as patient names and diagnoses, protected by HIPAA (the US Health Insurance Portability and Accountability Act).
BAABusiness Associate Agreement. A contract guaranteeing that a third-party service provider will handle PHI securely in a HIPAA environment. Failure to have one can result in HIPAA violations.
역공학(reverse engineering)Disassembling a finished product to understand its internal structure. In this context, it refers to analyzing network requests to discover undocumented API structures.
자가 복구(self-healing)A method where AI agents automatically detect and fix problems instead of manual correction by humans. It's a core concept for keeping automation running even when site structures change.
토큰 효율(token efficiency)Reducing the amount of text (tokens) sent to an AI model. More tokens increase costs and processing time, so it's important to filter and transmit only the necessary information during page analysis.