Other commands
Setup and identity commands. None of them touch source content — they only manage credentials and project bindings.
lingo login#
Authenticate against Lingo.dev. Two flows:
Browser (default, interactive)#
lingo loginOpens Lingo.dev in your browser, where you sign in and approve the CLI. The CLI stores the session in ~/.lingo/credentials.json and keeps it fresh until you run lingo logout.
If you created an organization in the web app and haven't finished setting it up, login then prints a link to finish it:
Finish setting up Acme Inc in the web app: https://lingo.dev/orgs/org_a8c...Setup in the web app makes the organization's first engine from your website.
API key (CI / non-interactive)#
lingo login --api-key lk_...Stores the API key. Generate keys on the Lingo.dev platform under your organization's API keys settings.
You can also pass --api-key as a global flag on any command, which bypasses stored credentials entirely:
lingo push --api-key lk_...Convenient for one-off CI jobs that shouldn't write credentials to disk.
lingo logout#
lingo logoutClears ~/.lingo/credentials.json. No-op if you weren't logged in.
lingo link#
lingo link
lingo link --org org_a8c... --engine eng_b9d... # skip promptsBind the current project to an organization and a localization engine. Writes orgId + engineId into .lingo/config.json (commit it).
Interactive mode lets you pick from your existing orgs and engines or create new ones inline: link prompts for a name, asks the onboarding survey for a new organization, and creates it through the API before linking.
While an organization you created is still being set up in the web app, link doesn't create engines in it. It shows the link to finish setup and lists the organization's existing engines. If there are none, it exits with that link: finish setup, then run lingo link again. Organizations you were invited to and runs with an API key are not affected.
lingo unlink#
lingo unlinkRemoves orgId and engineId from .lingo/config.json. Doesn't delete the org or the engine — only severs the local binding. Useful before re-linking to a different engine.
lingo whoami#
lingo whoami
lingo whoami --jsonShows three things:
- Identity — the email you're logged in as, or whether you're using an API key.
- Org — the linked organization (resolves the name from the API).
- Engine — the linked engine (resolves the name from the API).
Email: you@company.com
Org: Acme Inc (org_a8c...)
Engine: Production (eng_b9d...)
Auth: sessionIf you're not in a linked project directory, the Org/Engine lines are omitted. --json outputs the same data structured for scripting.
Global --api-key flag#
Every command accepts a --api-key flag that overrides stored credentials for that invocation only. Standard pattern in CI:
env:
LINGO_API_KEY: ${{ secrets.LINGO_API_KEY }}
steps:
- run: lingo push --backfill-missing --yes --wait --api-key "$LINGO_API_KEY"(The CLI also reads LINGO_API_KEY from the environment as a fallback.)
Where to next#
- lingo push — scoped + delta translation.
- lingo pull — fetch the last push's outputs, with conflict detection.
- Configuration —
.lingo/config.json, lockfile, run state.