选项
-
--host <url>要进行认证的 API host。 -
--token <key>以非交互方式传入 key,而非通过提示输入。 -
--email <email>cmd_login_flag_email -
--defaultcmd_login_flag_default
示例
sonenta login --host https://api.sonenta.dev --token snt_live_<prefix>.<secret> CLI
v0.48.4 · npm · MIT一个轻量、可脚本化的命令行,用于完成你原本会在 dashboard 中点击操作的一切:导入已有的 i18next 项目、推送和拉取翻译、将 CI 与远端做差异比对、发布 CDN release,以及为 offline-first 构建快照打包。MIT 许可,发布在 npm 上。
仅支持 npm, CLI 没有 Homebrew formula。需要 Node 18 或更新版本,安装后会提供 sonenta 命令。
terminal 1# 全局安装一次2npm i -g @sonenta/cli 4# 或无需安装直接运行5npx @sonenta/cli <command> 每次调用都会以 mcp:* scope 发送 Authorization: ApiKey <prefix>.<secret>。登录一次即可将 key 存入 ~/.sonenta/credentials,或在 CI 中设置 SONENTA_TOKEN。
terminal 1# 交互式, 按 host 将 key 存入 ~/.sonenta/credentials(0600)2sonenta login --host https://api.sonenta.dev --token snt_live_<prefix>.<secret>3Logged in as user@example.com (Acme Inc) on https://api.sonenta.dev. 5# CI, 无提示,从环境中读取 key6export SONENTA_TOKEN=snt_live_<prefix>.<secret>7sonenta push 解析顺序,先匹配者优先:SONENTA_TOKEN 环境变量,然后是当前活动 host 对应的 ~/.sonenta/credentials。在 Org Settings → API Keys 下以 mcp:* scope 生成该 key。
sonenta init 会在你的仓库中写入一个 sonenta.config.json(通过从当前工作目录向上查找来解析)。凭据单独存放、按用户保存,且永远不会被提交。
sonenta.config.json 1# 提交到你的仓库, 此处不含任何 secret2{3 "host": "https://api.sonenta.dev",4 "project_uuid": "<project_uuid>",5 "version_slug": "main"6} ~/.sonenta/credentials 1# ~/.sonenta/credentials, 0600 权限,按用户保存,切勿提交2{ "default": "https://api.sonenta.dev",3 "hosts": {4 "https://api.sonenta.dev": { "api_key": "snt_live_<prefix>.<secret>" }5 } } version_slug 默认为 main。请勿将 API key 放入 sonenta.config.json, 它只应存在于凭据文件或 SONENTA_TOKEN 中。
按用途分组, 设置认证与配置、检视项目,或同步翻译。每个命令都通过 MCP surface 运行,并遵循 sonenta.config.json。
--host <url> 要进行认证的 API host。 --token <key> 以非交互方式传入 key,而非通过提示输入。 --email <email> cmd_login_flag_email --default cmd_login_flag_default sonenta login --host https://api.sonenta.dev --token snt_live_<prefix>.<secret> 无选项。
sonenta logout 无选项。
sonenta whoami --project <uuid> 要写入配置的项目 UUID(必填)。 --version <slug> 要瞄准的版本 slug(默认 main)。 --force 覆盖已存在的配置文件。 sonenta init --project <uuid> --version main 无选项。
sonenta projects list --namespace <slug> 限定到某个 namespace。 sonenta keys list --namespace common --language <code> 将差异比对限定到某一种语言。 --namespace <slug> 将差异比对限定到某个 namespace。 --src <dir> 源目录(默认 locales)。 sonenta status --language <code> 按语言过滤。 --namespace <slug> 按 namespace 过滤。 --limit <n> 限制行数上限。 sonenta missing --limit 50 --dry-run 仅预览;不发送任何内容。 --status <draft|translated> 传入状态(默认 translated)。 --language <code> 强制指定语言,而非从路径推断。 --namespace <slug> 强制指定 namespace(对于裸的 <lang>.json 为必填)。 --version <slug> 瞄准一个非默认版本。 sonenta import locales/fr/common.json --src <dir> 源目录(默认 locales)。 --dry-run 仅预览;不发送任何内容。 --status <state> 传入状态(默认 translated)。 sonenta push --dry-run --language <code> 限定到某一种语言。 --namespace <slug> 限定到某个 namespace。 --dest <dir> 目标目录(默认 locales)。 sonenta pull --language fr --nested 输出嵌套树形结构,而非扁平 key。 --out <dir> 将文件写入某个目录,而非 stdout。 sonenta export --nested --out ./dump --version <slug> 要发布的版本(默认 main)。 --dry-run 仅预览;不发布任何内容。 sonenta releases publish --format <ts|json> 输出格式:ts(默认)或 json。 --out <file> 写入文件,而非 stdout。 --cdn <base> CDN 基址(默认 https://cdn.sonenta.com)。 sonenta snapshot --out src/sonenta-bundles.ts 每个命令也都接受 --host <url>,可在单次运行中覆盖已配置的 API host。