prismy push and prismy pull when you use Prismy Hosted without native GitHub/GitLab. You upload source files to Prismy and download translated files (locally or in CI).
Using GitHub or GitLab with Prismy? Use prismy generate instead.
Authentication
The CLI looks for an API token in this order:--api-token(flag)PRISMY_API_TOKENenvironment variable- Stored key from
prismy auth(only when not in CI)
--api-token or PRISMY_API_TOKEN; the CLI will not prompt.
Get your token from Prismy Settings.
prismy push
Upload a local translation file to Prismy.--repo-id, --language, --bundle-name
Example:
Push options
| Option | Description |
|---|---|
--override | Replace the file entirely; otherwise only new keys are merged |
--no-auto-translate | Do not auto-translate new keys to other languages |
--wait-for-translations | Wait for translations to finish before exiting (useful in CI) |
--branch | Target branch (Prismy may create it from main) |
--user | Author username/email for the change |
--tags | Static tags for new/edited keys |
File formats
- JSON, .arb, .xcstrings: Parsed and sent as structured JSON.
- Other (.yaml, .po, .resx, .xml, .ts, .js): Sent as raw content with format metadata.
prismy pull
Download a translation file from Prismy. The CLI writes JSON to the path you give.--repo-id, --language, --bundle-name (required); --branch (default: main); --api-token.
The file is created or overwritten. If the file does not exist on Prismy, you get an empty object {}. For non-JSON formats (e.g. YAML, PO), use the CDN URL from your Prismy Hosted configuration.
CI setup
Use a pipeline to push the source file, wait for translations, then pull translated files.Secret / variable
| Name | Description | Secret |
|---|---|---|
PRISMY_API_TOKEN | API token from Prismy | Yes |
PRISMY_REPO_ID, PRISMY_BUNDLE_NAME (or pass --repo-id / --bundle-name in the script).
GitHub Actions
.github/workflows/prismy-sync.ymlPRISMY_API_TOKEN in Settings → Secrets and variables → Actions. Optionally add variables PRISMY_REPO_ID and PRISMY_BUNDLE_NAME, or hardcode them in the YAML.
GitLab CI
Add a job (or merge into.gitlab-ci.yml):
PRISMY_API_TOKEN in Settings → CI/CD → Variables (masked). Adjust git push if you use a deploy token or project access token.
Bitbucket Pipelines
Use a step that installs the CLI, runsprismy push with --wait-for-translations, then prismy pull for each language, and finally commits and pushes. Set PRISMY_API_TOKEN, PRISMY_REPO_ID, and PRISMY_BUNDLE_NAME as repository variables.
Run only when i18n changes
- GitHub Actions: Under
on.push, addpaths: ["src/i18n/en.json"]. - GitLab CI: In
rules, usechanges: ["src/i18n/en.json"].