CLI

Push, pull and run any op from a terminal or CI with the Glossa CLI.

The CLI is @meterapp/glossa on npm. It needs Node 20 or later and no install: run it with npx. It reads the op catalog from the API at runtime, so every op the API has is a command, including ones added after your version was published.

npx @meterapp/glossa --help

Authentication

Run npx @meterapp/glossa login and paste a workspace API key (dashboard → Settings → API keys). In CI and scripts, set GLOSSA_API_KEY instead. GLOSSA_HOST overrides the API origin (default https://glossa-meterapp.vercel.app).

Commands

CommandWhat it does
glossa login [--key gls_…]Save a workspace API key to your user config and check it.
glossa push [files…] [--project p] [--locale l]Push files (or directories). Without arguments, pushes the files in .glossa.json.
glossa pull [paths…] [--project p] [--locale es,fr] [--out dir] [--approved-only]Write every locale of each file in its own format.
glossa tasks [--kind k] [--limit n]Show the review queue.
glossa opsList every op, read live from the API.
glossa <op> [--field value…] [--json '{…}']Run any op. Flags map to the op's input fields; --json passes the whole input.
glossa mcpA stdio MCP bridge to the hosted server, for hosts without HTTP MCP.

Project config

Put a .glossa.json at your repository root so push and pull need no arguments:

.glossa.json
{  "project": "web",  "files": [    "locales/en.json"  ],  "locales": [    "es",    "fr",    "de"  ]}

Running any op

Every op in the API reference is a command with the same name. Pass input fields as flags, or the whole input as JSON:

npx @meterapp/glossa run_audit --locale es --question "Are brand names consistent?"npx @meterapp/glossa list_tasks --json '{"kind":"merge_review","limit":10}'npx @meterapp/glossa tasks --kind translation_review

In CI

Push the source file on every change to your main branch. Translations arrive in the background; pull them in a scheduled job or before release.

# .github/workflows/translations.ymlname: Translationson:  push:    branches: [main]    paths: ["locales/en.json"]jobs:  sync:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - run: npx @meterapp/glossa push locales/en.json --project web        env:          GLOSSA_API_KEY: ${{ secrets.GLOSSA_API_KEY }}

MCP bridge

Most agents connect to the hosted MCP server directly (see MCP). For a host that only speaks stdio, run npx @meterapp/glossa mcp as the server command with GLOSSA_API_KEY set.