bautaDocs

The bauta CLI

Every command of the bauta command line, with its flags and their defaults.

bauta is the command line, and the CDP gateway in front of the bauta browser. Run it with no arguments to print its usage text.

Commands

commandwhat it does
bauta setupActivates this machine's free session at once, then, on a terminal, offers an account and a star.
bauta activateGets the first license token for this machine.
bauta browser fetchDownloads the browser for this machine from the latest release, or the one you name.
bauta loginSigns up or in with GitHub, in the terminal.
bauta logoutTakes this machine back to its free session.
bauta statusShows the plan, the sessions in use and across machines, and this install's id.
bauta upgradePrints the pricing page's URL.
bauta serveRuns the gateway.
bauta geo updateUpdates the database that places a proxy's exit IP.
bauta persona newMakes a persona from a built-in persona or a persona file.
bauta persona setGives a persona its settings anew, its profile kept.
bauta persona lsLists the personas.
bauta persona rmRemoves a persona.
bauta openOpens the persona's browser in a window, for a manual login.
bauta inspectPrints a DevTools link for each page of a persona the gateway runs.
bauta statsShows the gateway's active and queued personas, against the license.
bauta versionPrints this bauta's version.
bauta trafficShows what the persona's pages fetched, blocked and found in the cache, by kind.
bauta widevine fetchFetches Google's Widevine CDM, for DRM-protected media.

Setup and account

bauta setup

bauta setup [--non-interactive]

Activates this machine's free session at once, and writes ~/.bauta/license. On a terminal, it then offers a free account with GitHub, and a star.

flagwhat it does
--non-interactiveNever prompts: the free session alone. The installer runs setup this way when it cannot prompt: with no terminal, with CI or BAUTA_NO_PROMPT=1 set, or when /.dockerenv exists.

bauta activate

bauta activate <license key> [--server <url>]

Gets the first license token for this machine with your license key, and prints how many active personas it allows here, and until when. Your key is on your dashboard.

flagdefaultwhat it does
--server <url>BAUTA_SERVER, else https://api.bauta.devThe server to activate with.

bauta login

bauta login

Signs up or in with GitHub, in the terminal. It prints a URL and a code to enter there, on any device, your phone too, and waits. Signing up accepts the Terms. It needs a terminal; in a script, set BAUTA_LICENSE_KEY instead.

When this machine has personas, it asks first, since they can get new fingerprints. While BAUTA_LICENSE_KEY is set, that key still wins over the one bauta login keeps, and it says so. If your GitHub account has no verified email, add one at https://github.com/settings/emails and run it again.

bauta logout

bauta logout

Takes this machine back to its free session: one session, on this machine. While BAUTA_LICENSE_KEY is set it refuses; unset it first. When this machine has personas, it asks first, since they get new fingerprints, and without a terminal it refuses.

bauta status

bauta status

Shows the plan, the sessions in use and across machines, and this install's id. Its output is in sessions and the license.

bauta upgrade

bauta upgrade

Prints the pricing page's URL, https://bauta.dev/pricing?from=cli.

Browser

bauta browser fetch

bauta browser fetch [--version vX.Y.Z]

Downloads the browser for this machine from the latest release, checks it against the release's signed SHA256SUMS, and prints the directory it is in. It downloads from GitHub's releases of BautaBrowser/bauta-browser, and sends nothing to our server.

flagwhat it does
--version vX.Y.ZThat release instead of the latest.

bauta widevine fetch

bauta widevine fetch

Fetches Google's Widevine CDM, for DRM-protected media, the same way Chrome fetches it, and prints the directory it is in. Without it, the browsers take Google Chrome's, if one is installed on this machine.

bauta version

bauta version

Prints this bauta's version: bauta followed by the version number.

Gateway

bauta serve

bauta serve [--listen 127.0.0.1] [--port 9222] [--idle 30] [--per-browser 8] [--server <url>] [--heartbeat 60]
            [--hidden]

Runs the gateway. Connect Playwright to http://127.0.0.1:9222/persona/<name> (connect_over_cdp), and Puppeteer to ws://127.0.0.1:9222/persona/<name>. The flags go in any order.

flagdefaultwhat it does
--listen127.0.0.1The IP address to listen on. --listen 0.0.0.0 lets other machines in, and whoever reaches the port drives the personas.
--port9222The port to listen on.
--idle30A persona's browser closes this many seconds after its last client.
--per-browser8How many personas share one browser. 1 gives each persona a browser of its own.
--serverBAUTA_SERVER, else https://api.bauta.devThe server that renews the license.
--heartbeat60Seconds between license renewals: 60 at least, unless the server is on this machine.
--hiddenoffPuts the browsers' windows where no one sees them. Linux: a virtual display, whatever DISPLAY says. Windows: a desktop of the gateway's own. macOS: Chrome's headless mode.

The CDP gateway explains each of them.

bauta stats

bauta stats [--port 9222]

Prints, as JSON, the gateway's active and queued personas, against the license. It asks the gateway on this machine; --port names its port, 9222 by default.

bauta inspect

bauta inspect <name> [--port 9222]

Prints a DevTools link for each page of a persona the gateway runs, with the page's URL. --port names the gateway's port, 9222 by default.

bauta open

bauta open <name>

Opens the persona's browser in a window, for a manual login, and waits until you close it. It needs a display.

bauta traffic

bauta traffic <name>

Prints, as JSON, what the persona's pages fetched, blocked and found in the cache, by kind. See bandwidth.

Personas

bauta persona new

bauta persona new <name> --from <a built-in persona's name, or a persona file>

Makes a persona, and prints its directory.

bauta persona set

bauta persona set <name> --from <the same>

Gives the persona its settings anew, from a built-in persona's name or a persona file, and keeps its profile. A browser running it keeps the old ones until it closes: a persona never changes under a page.

bauta persona ls

bauta persona ls

Prints the personas' names, one per line.

bauta persona rm

bauta persona rm <name>

Removes the persona.

IP database

bauta geo update

bauta geo update

Updates the database that places a proxy's exit IP, DB-IP's IP to City Lite, and prints where it keeps it, with DB-IP's attribution. bauta serve uses it to set a persona's timezone and locale from where its proxy exits. IP geolocation by DB-IP, under CC BY 4.0.

Environment

The usage text ends with the variables bauta reads:

variablewhat it doesdefault
BAUTA_HOMEHolds personas/, license and fonts/.~/.bauta
BAUTA_CHROMEThe browser.chrome beside bauta
BAUTA_SERVEROur server.https://api.bauta.dev
BAUTA_LICENSE_KEYWhen set, wins over the kept key.unset

Environment variables lists every variable.

Exit status

statuswhen
0The command succeeded.
1The command failed. bauta prints bauta: and the reason on stderr.
2bauta did not recognize the command, and printed its usage text on stderr.

Usage text

usage:
  bauta setup [--non-interactive]     the free session at once, then (on a terminal) an account and a star
  bauta activate <license key> [--server <url>]
                                      the first license token for this machine
  bauta browser fetch [--version vX.Y.Z]
                                      the browser for this machine from the latest release (or that one), checked
                                      against the release's signed SHA256SUMS
  bauta login                         sign up or in with GitHub, in the terminal (a code to enter on any device)
  bauta logout                        back to this machine's free session
  bauta status                        the plan, the sessions in use and across machines, and this install's id
  bauta upgrade                       prints the pricing page's URL
  bauta serve [--listen 127.0.0.1] [--port 9222] [--idle 30] [--per-browser 8] [--server <url>] [--heartbeat 60]
              [--hidden]
                                      the gateway: connect Playwright to http://127.0.0.1:9222/persona/<name>
                                      (connect_over_cdp), Puppeteer to ws://127.0.0.1:9222/persona/<name>;
                                      a persona's browser closes <idle> seconds after its last client;
                                      personas share browsers, <per-browser> to one (1: a browser each);
                                      with a server (or BAUTA_SERVER), the license is renewed every <heartbeat> s
                                      (60 at least, unless the server is on this machine); --listen 0.0.0.0
                                      lets other machines in, and whoever reaches the port drives the personas;
                                      --hidden: the browsers' windows where no one sees them (Linux: a virtual
                                      display, whatever DISPLAY says; Windows: a desktop of the gateway's own;
                                      macOS: Chrome's headless)
  bauta geo update                    the database that places a proxy's exit IP (DB-IP's IP to City Lite)
  bauta persona new <name> --from <a built-in persona's name, or a persona file>
  bauta persona set <name> --from <the same>
                                      its settings anew, its profile kept; a browser running it keeps the old
                                      ones until it closes (a persona never changes under a page)
  bauta persona ls
  bauta persona rm <name>
  bauta open <name>                   the persona's browser in a window, for a manual login
  bauta inspect <name> [--port 9222]  a DevTools link for each page of a persona the gateway runs
  bauta stats [--port 9222]           the gateway's active and queued personas, against the license
  bauta version                       this bauta's version
  bauta traffic <name>                what the persona's pages fetched, blocked and found in the cache, by kind
  bauta widevine fetch                Google's Widevine CDM, for DRM-protected media (Chrome fetches it the same way);
                                      without it the browsers take Google Chrome's, if one is installed here

  BAUTA_HOME (~/.bauta) holds personas/, license and fonts/; BAUTA_CHROME is the browser (default: chrome
  beside bauta). BAUTA_SERVER is our server (default https://api.bauta.dev); BAUTA_LICENSE_KEY, when set, wins
  over the kept key.

Next

On this page