CLI

当你想从 shell 运行 Ink 时读这篇:安装、打印模式、管道、附件、会话,以及全部 命令行参数。交互模式的细节(树、分叉)见会话——本页讲的是命令行。

安装

npm install -g ink-agent@latest
ink

或者不安装直接运行:npm exec -- ink-agent@latest --help。 不要使用 npx ink——ink 是一个无关的 npm 包。也不存在 imp 可执行文件别名。

需要 Node 22.19.0 或更高版本。从源码检出运行:npm install(通过 prepare 脚本构建),用 npm start 启动。registry 上的包本身不运行任何安装生命周期脚本 (prepare 构建脚本只在 git 克隆和本地链接时运行)。

用非交互方式验证安装:

ink --version    # prints "Ink <version>"
ink --help       # flag reference, exits 0

卸载:npm uninstall -g ink-agent。如果全局安装因 EACCES 失败,说明 npm 的 prefix 不是当前用户可写的——不要在命令前加 sudo;把 npm 指向用户自己拥有的 prefix(先运行 npm config get prefix,再按 npm 文档修复权限),然后重试。 给脚本化运行的提示:Ink 在不受信任的目录中会拒绝加载 .ink/ 项目配置 (默认安全);可以用 ink --trust 预先批准,每个项目一次。

用 /login 登录——提供商选择器会把 API key 存到 ~/.ink/auth.json(0600), 优先于环境变量;ChatGPT 套餐通过 OAuth 设备码登录。或者在启动前设置环境变量:

export ANTHROPIC_API_KEY=sk-ant-...

各提供商的专门配置:提供商。

调用方式

ink -p "<prompt>"        # print mode: stream the response, then exit
ink "<prompt>"           # same as -p
ink @file.png "prompt"   # attach files: text embeds as <file> blocks,
                         # images attach to the first message
ink                      # interactive session (REPL)
echo "fix the typo" | ink   # piped: one turn, exits at EOF (empty pipe: help + exit 1)

打印/管道运行默认 --max-turns 100;交互式 TTY 会话不设上限(显式传入有限值时 才会生效)。

选项

参数 说明
-p, --print <prompt> 要运行的提示词,随后退出
-m, --model <id> 模型 id(默认:$INK_MODEL 或 claude-sonnet-4-5)
--thinking <level> off minimal low medium high xhigh max
--max-tokens <n> 每轮最大输出 token 数(默认:模型目录上限)
--max-turns <n> 每次运行的最大 agent 轮数
-nc, --no-context-files 跳过 AGENTS.md 发现
-c, --continue 继续本目录中最近的会话
-r, --resume <id> 按 id 恢复会话(可用前缀)
--no-session 不持久化本次运行(同时禁用自动压缩)
-e, --extension <path> 加载一个扩展(文件或目录;可重复;无论信任状态如何都会加载)
-ne, --no-extensions 跳过扩展发现(显式 -e 仍会加载)
--skill <path> 加载一个技能(.md 文件或目录;可重复;即使有 --no-skills 也会加载)
--no-skills 跳过技能发现(用户 + 项目 + 设置)
--trust / --no-trust 为本目录的 .ink/ 资源记录信任决定
-h, --help / -v, --version 帮助 / 版本

子命令

命令 说明
ink sessions 列出本目录保存的会话
ink login OpenAI(ChatGPT 套餐)设备码 OAuth
ink logout 移除存储的 ChatGPT 套餐凭据(/login 保存的 key 保留)

环境变量

变量 说明
ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN Anthropic key / Bearer token
ANTHROPIC_BASE_URL 覆盖 Anthropic 兼容服务的端点
OPENAI_API_KEY / OPENAI_BASE_URL OpenAI key / 端点覆盖(任何 OpenAI 兼容服务)
ZAI_API_KEY Z.ai key(GLM Coding Plan)
DEEPSEEK_API_KEY DeepSeek key
MOONSHOT_API_KEY Moonshot/Kimi key(两个家族)
INK_MODEL 默认模型 id
INK_THINKING 默认思考档位(无效值:提示并忽略)
INK_CONTEXT_WINDOW 自动压缩用的上下文窗口(默认 131072)
INK_AUTOCOMPACT=0 禁用自动压缩
INK_MCP=0 完全禁用 MCP 模块
INK_HEALTH=0 禁用循环健康监控
INK_BRANCH_SUMMARY=0 禁用分支摘要(强制关闭)
INK_CHILD_SESSIONS=0 不持久化子代理的对话记录
INK_CATALOG_BASE_URL / INK_CATALOG_PATH 重定向 / 迁移模型目录
INK_SETTINGS_PATH 覆盖设置文件路径

INK_* 开关变量用 0 表示禁用,其他任何值都表示启用。

从 imp 更名

Ink 只读取 ~/.ink、项目 .ink/ 和 INK_*。它不会迁移 .imp 状态或 IMP_* 设置;旧会话留在 .imp 中,无法恢复。标准的 AGENTS.md、.agents/skills 和 MCP 配置文件名保持不变。旧的 FishInSalt/imp GitHub URL 会重定向到 FishInSalt/ink。