| api-key | Shipi18n API key | yes | — |
| source-file | Path to source locale file (e.g., locales/en.json). Use this OR source-dir. | no | "" |
| source-dir | Path to source locale directory (e.g., locales/en). All JSON/YAML files will be translated. Use this OR source-file. | no | "" |
| target-languages | Comma-separated list of target language codes (e.g., es,fr,de) | yes | — |
| output-dir | Directory to output translated files (default: same as source file directory) | no | "" |
| source-language | Source language code (default: en) | no | en |
| create-pr | Create a pull request instead of direct commit (true/false) | no | false |
| incremental | Only translate changed keys (compares with previous git commit) | no | true |
| commit-message | Custom commit message (default: "chore: update translations [skip ci]") | no | chore: update translations [skip ci] |
| branch-name | Branch name for PR (only used if create-pr is true) | no | shipi18n-translations |
| github-token | GitHub token for creating PRs (defaults to GITHUB_TOKEN) | no | "" |
| verify | Enable LLM-based translation verification (true/false). Uses Claude Haiku 4.5 to check meaning, placeholders, and quality. | no | false |
| verify-mode | Verification mode: "quick" (10% sample, fast) or "thorough" (100%, comprehensive) | no | quick |
| self-correct | Enable self-correcting translations (true/false). Automatically retries failed translations with LLM feedback. | no | false |
| max-retries | Maximum retry attempts for self-correcting mode (default: 2, max: 5) | no | 2 |
| skip-keys | Comma-separated keys to skip from translation (exact paths, e.g., brandName,company.name) | no | "" |
| skip-paths | Comma-separated glob patterns to skip (e.g., states.*,config.*.secret) | no | "" |