Save and reuse authenticated browser state across runs.
save command saves the current browser session's cookies, localStorage, and IndexedDB as a named local auth profile. Workflows load it by declaring authProfile.1npx libretto save linkedin --session app-login --sites linkedin.com
savesave when you want to save or reuse authenticated browser state. A typical flow:1npx libretto open https://linkedin.com --headed --session app-login
1npx libretto save linkedin --session app-login --sites linkedin.com
.libretto/profiles/linkedin.json.authProfile: "linkedin" in the workflow, then run it normally:1npx libretto run ./integration.ts
path profileNamestringrequiredlinkedin, twitter, or twitter2.path --sessionstringrequirednpx libretto open --session.path --sitesstringrequiredlinkedin.com,auth.linkedin.com.linkedin.com captures cookies for
www.linkedin.com and auth.linkedin.com. Add multiple sites when the login
uses separate parent domains, such as example.com,example-login.com.save command creates a Playwright storage-state profile. It preserves
cookies, localStorage, and IndexedDB, which is sufficient for most websites. It
does not preserve sessionStorage, service-worker memory, or authentication that
the server binds to a specific browser process.--user-data-dir, keep that browser process running, and attach Libretto with
connect.import-chrome-profiles command imports cookies, localStorage, and IndexedDB
from an existing Chrome DevTools Protocol session into a named local profile.
The profile name is the local Libretto profile you want to create. The --sites
list decides which signed-in sites are copied from Chrome.1npx libretto import-chrome-profiles twitter --cdp-url http://127.0.0.1:9222 --sites x.com,twitter.com
--remote-debugging-port; for example, port 9222 gives
http://127.0.0.1:9222. The profile is saved under
.libretto/profiles/<profileName>.json.--yes only when the
user has already consented.1npx libretto cloud profiles list
libretto cloud deploy automatically registers any authProfile names declared
by deployed workflows. Hosted runs use the browser provider's native profile API;
local profile files are not uploaded..libretto/profiles/. Local profiles are Playwright storage-state JSON for
local runs; cloud profiles are provider-native browser profiles managed by the
hosted browser provider.1npx libretto cloud profiles delete twitter
.libretto/profiles/<profileName>.json. They are:.libretto/ directory is already git-ignored, but double-check your
.gitignore if you're storing Libretto state in a non-standard location.