Create an API key
- Open Settings → API Keys.
- Click Create API key.
- Enter a Key name such as
Production CI. - Click Create key.
- Click Copy. Platform shows the secret once.
files:read, files:write, jobs:read, and jobs:write. The CLI sync commands need file read and write. Job permissions matter when your own scripts create or poll jobs.
Point the CLI at the project
Open the project, then Settings. The Connect CLI & CI panel shows the Project ID and a Sample i18n.yml. Copy both. Keep the sample file mappings, then adjust them to match your repository. For example, this configuration uploadslocales/en-US.json and maps Spanish translations to locales/es-ES.json:
llm.profiles entry. Platform sync does not use it to generate translations or require an OpenAI key; it is used if you also run local translation.
Replace project_123 with your project ID and save the configuration as i18n.yml in your repository root.
You can set project_id_env instead of project_id when the id should come from the environment. Field details are in i18n config.
For the Platform workflow on this page, sync push and sync pull use the top-level
hyperlocalise block. When that block is absent, the same commands can use
storage.adapter for TMS entry sync. If both blocks are
present, Platform takes precedence.
Set the env var named in api_key_env (default HYPERLOCALISE_API_KEY) in your shell or CI secrets. The CLI sends it as the x-api-key header to api_base_url.
The sample config in Platform uses
https://hyperlocalise.com/api. Requests then hit /v1/... on that host, for example POST https://hyperlocalise.com/api/v1/files.Push sources
i18n.yml buckets and uploads each file. It does not enqueue translation jobs. Configure a Source upload automation, or start a run from New Request, when you want Platform to translate after upload.
See sync push.
Pull translations
i18n.yml. It does not read job IDs. If no translation exists for a path and locale, pull skips that file.
See sync pull.
CI
Keep the key in your CI secret manager. Inject it only in jobs that callhyperlocalise sync. Commit api_key_env, not the secret.
Use --dry-run in pull-request checks. Run a real pull or push only in jobs that are allowed to write.
Install the binary with the GitHub Action:
What the CLI does not do here
- It does not replace CAT review. Reviewers still work in Platform.
- Provider commands such as
crowdinandphrasekeep their own config. Those are TMS adapters, not Platform native sync. - Local
run/evalstill use LLM provider credentials fromi18n.yml. See the CLI docs.

