CLI referenceverbatra studio

verbatra studio

Start Verbatra Studio, the local translation dashboard.

Start Verbatra Studio, a local web dashboard over your verbatra project: translation status, the needs-review queue, run activity, and your resolved settings, all live over the files on disk. Editing your own locale files works out of the box; only provider spend is opt-in, behind --allow-spend. Before it starts, studio loads .env.local and then .env from the working directory and resolves your config once; a config error exits 2 before any server starts.

Synopsis

verbatra studio [flags]

Flags

FlagArgumentDefaultEffect
--cwd<path>current directoryresolve config and locale files from this directory
--config<path>search for oneload this config file instead of searching for one
--port<n>5849listen on this port; must be an integer from 1 to 65535
--allow-spendnoneoffallow Studio to call a translation provider (retranslate a key, translate pending changes)
--expose-agent-toolsnoneoffregister Studio's review actions as WebMCP tools so a browser AI agent can operate them

When the --allow-spend flag is absent, Studio reads the VERBATRA_STUDIO_ALLOW_SPEND environment variable instead: 1, true, yes, or on (case-insensitive) counts as on. The CLI flag always wins over the environment variable. Without either, Studio never contacts a provider; local editing needs no flag.

--expose-agent-tools resolves the same way from VERBATRA_STUDIO_AGENT_TOOLS, with the same truthy set and the same flag-wins-over-variable rule. It is off by default. Spend from an agent requires both this flag and --allow-spend; neither implies the other. See Operate Studio with a browser agent for the tool catalog and the security model.

The printed URL

Studio binds to 127.0.0.1 only. Once it is listening, it prints one line to stdout:

Verbatra Studio running at http://127.0.0.1:5849/?token=<token>

Open that exact URL: the token in the query string bootstraps your browser session, and every request without it is rejected. Nothing is printed before the port is successfully bound, so a failed startup never leaks a URL or a token.

Installation

@verbatra/studio is its own package, reached through a dynamic import so the rest of the CLI works without it. If it is not installed, verbatra studio exits 2 with:

Verbatra Studio requires @verbatra/studio. Install it with: pnpm add -D @verbatra/studio

Examples

# start Verbatra Studio on the default port
verbatra studio

# enable the provider-calling actions, on a specific port
verbatra studio --allow-spend --port 6000

Exit codes

CodeMeaning
0stopped cleanly by a single interrupt (Ctrl-C, or SIGTERM)
1stopping failed: closing the server threw during shutdown
2could not start: a config error, @verbatra/studio not installed, the port in use, or a usage error (an out-of-range or non-integer --port)
130force-stopped by a second interrupt while shutdown was in flight
Edit on GitHub