Usage
Default behavior
sync pull follows i18n.yml:
- When
hyperlocaliseis set, the CLI reconstructs translated files from the public Hyperlocalise API and writes them to target paths fromi18n.yml. It does not read job IDs or a local jobs manifest. - When
hyperlocaliseis absent andstorage.adapteris set, the CLI pulls translation entries through the builtin TMS adapter registry (syncsvc) into flat JSON locale files plus sidecar metadata. - When both blocks are set, the Hyperlocalise API path wins. TMS entry sync is not used.
--dry-run to preview the report without writing files.
Flags
--config: config path--locale: locale(s) to sync, repeatable. On the TMS path, omitted locales default tolocales.targets. Source locale is allowed on the TMS path.--dry-run: preview only--output:text,json, ormarkdown--fail-on-conflict: TMS adapters only. Exit non-zero when the report contains conflicts. Default:false(conflicts stay in the report; non-conflicting creates and updates still apply). Ignored on the Hyperlocalise API path.--apply-curated-over-draft: TMS adapters only. Allow remote curated values to replace local LLM drafts. Default:false(that case is reported as a conflict). Ignored on the Hyperlocalise API path.
TMS entry sync
TMS pull writes flat JSON locale files from the first bucketfiles[].to mapping (bucket names sorted) plus sidecar metadata. The mapping must be one concrete .json path template, not YAML/MDX/ARB or a glob. Nested JSON objects and contextual entries (the same key under more than one context) are not supported on this path. Provider file commands such as crowdin and phrase keep their own config and behavior.
--output json on the TMS path prints a syncsvc entry report (creates, updates, conflicts, …), not the Hyperlocalise file-count report.
Example
Notes
- On the Hyperlocalise API path, when no translation exists for a source path and locale, pull skips that target file.
- Output files are mapped by locale to the target paths from
i18n.yml.

