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 --helpAuthentication
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
| Command | What 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 ops | List 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 mcp | A 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:
{ "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_reviewIn 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.