参考 · 终端

lingcode 命令行

在终端里直接用:交互式 REPL 与一次性 ask。Claude 走完整 Agent 模式(工具、MCP、Hooks);OpenAI、Groq、Together、OpenRouter、Mistral、xAI、Fireworks、Ollama 等任何 OpenAI 兼容端点走纯文本模式。

安装

两种方式,挑你已经有的。

独立安装 — 不需要 App

curl -fsSL https://lingcode.dev/install-cli.sh | sh

下载已签名、已公证的压缩包到 ~/.lingcode/cli/,并在 ~/.local/bin/lingcode 建立符号链接。Node 桥接内置其中,Claude 提供方无需安装 LingCode.app 也能用(仍需 Node.js 与 API 密钥)。

从已安装的 LingCode.app

/Applications/LingCode.app/Contents/Resources/bin/lingcode install

install 子命令会优先尝试 /usr/local/bin,失败回退到 ~/.local/bin,必要时输出 PATH 提示。

快速开始

# 一条命令把密钥存入钥匙串(会打开浏览器)
lingcode auth login

# 交互式会话(默认 Claude)
lingcode

# 用其他提供方启动交互式会话
lingcode --provider ollama --model llama3.2
lingcode --provider groq --model llama-3.1-70b-versatile

# 一次性问答
lingcode ask "解释这个报错" < build.log
echo "2+2 等于几?" | lingcode ask -

# 检查配置
lingcode auth status
lingcode --help

交互式 REPL

不带任何参数运行 lingcode,就进入多轮交互会话。等价于 lingcode repl,只是更短。

REPL 根据提供方分两种形态:

行编辑器

当 stdin 是终端时,你有一个完整的行编辑器:

/ 历史输入前翻 / 后翻
/ / Home / End光标移动
Tab补全斜杠命令(内置+自定义)
行尾 \继续在下一行输入
Ctrl-C取消正在执行的请求(Claude)/ 放弃当前行
Ctrl-D空行退出,否则删除光标字符
括号粘贴多行剪贴板内容作为一次输入粘贴

提示符

REPL 在非零时显示轮次与累计费用:

lingcode> 解释这个仓库
…
lingcode [1t $0.003]> 建议一种重构方式
…
lingcode [2t $0.011]>

提供方

--provider 选择;可按需覆盖 model、base URL、API key 环境变量。

提供方环境变量默认模型工具?
claude(默认)ANTHROPIC_API_KEYSDK 默认
deepseekDEEPSEEK_API_KEYdeepseek-chat
openaiOPENAI_API_KEYgpt-4o-mini
groqGROQ_API_KEYllama-3.1-70b-versatile
togetherTOGETHER_API_KEYLlama-3.3-70B-Instruct-Turbo
openrouterOPENROUTER_API_KEYanthropic/claude-sonnet-4
mistralMISTRAL_API_KEYmistral-large-latest
xaiXAI_API_KEYgrok-2-latest
fireworksFIREWORKS_API_KEYllama-v3p1-70b-instruct
ollama—(无)llama3.2
deepseek-compatDEEPSEEK_API_KEYdeepseek-chat

任意 OpenAI 兼容端点

lingcode --provider openai \
  --base-url https://my-proxy.example.com/v1 \
  --api-key-env MY_KEY_VAR \
  --model gpt-4o

工具调用、MCP、Hooks、会话续接仅 Claude 可用 —— 这些能力依赖 Agent SDK。REPL 的其他功能(斜杠命令、Markdown 渲染、token 显示、历史、Tab 补全)所有提供方都支持。

一次性 ask

# 基本用法
lingcode ask "总结这个仓库的架构"

# 把内容 pipe 进去
cat error.log | lingcode ask "解释一下"

# 整段 prompt 从 stdin 读入
echo "2+2 等于几?" | lingcode ask -

# 切换提供方
lingcode ask --provider groq "一行话解释这个正则:/\d{3}-\d{4}/"

# Claude 全工具模式,自动批准
lingcode ask --provider claude --yolo "给 .gitignore 加一条 .DS_Store"

# 附加文件
lingcode ask --provider claude --file screenshot.png "这个界面哪里不对?"

# 结构化输出(适合脚本)
lingcode ask --output-format stream-json "修复 main.swift 里失败的测试"

常用 flag

--continue续接当前目录下最近一次 Claude 会话
--resume <id>按 ID 续接指定会话
--file <path>附加文件(图片、PDF、文本),可重复,仅 Claude
--allowed-tools Read,Write只允许这些工具(仅 Claude)
--disallowed-tools Bash禁用这些工具
--add-dir ~/otherAgent 可访问的额外目录,可重复
--thinking启用 Claude 的扩展思考
--system-prompt "..."覆盖系统提示
--append-system-prompt "..."追加到系统提示
--output-format text|json|stream-json输出格式
--output path/out.md把回复写入文件
--verbose不截断工具输入/输出
--yolo自动批准每次工具调用。危险。

斜杠命令

在 REPL 提示符下输入。

所有提供方

/help列出命令
/model <name>中途切换模型
/reset清空对话(Claude:同时开新会话)
/cost累计 token 用量
/export [path]把对话保存为 markdown
/clear清屏
/quit退出

仅 Claude

/mode <mode>切换权限模式 (default / acceptEdits / plan / dontAsk / bypassPermissions)
/yolo跳过所有权限询问
/compact总结并压缩对话历史
/session显示当前 session ID
/tools列出可用内置工具
/commands列出自定义斜杠命令
/doctor诊断环境 (node、API key、桥接、MCP、Hooks)
/init为当前项目生成 CLAUDE.md

仅 OpenAI 兼容

/system <text>替换本次会话的系统提示

自定义

把一个 Markdown 文件放到 .claude/commands/<name>.md,就能用 /project:<name> 调用。放到 ~/.claude/commands/ 下用 /user:<name>。纯 /<name> 先查 project,再查 user。命令名后的任何文字会追加到正文之后。

$ echo "用中文解释一下当前 git 暂存区的变更。" > .claude/commands/explain-staged.md
$ lingcode
lingcode> /project:explain-staged

鉴权与 API 密钥

三种来源,按此顺序检查:环境变量macOS 钥匙串配置文件。任一即可。

# 浏览器辅助:打开提供方控制台,粘贴密钥,存入钥匙串
lingcode auth login
lingcode auth login --provider deepseek

# 直接写入
lingcode auth set anthropic sk-ant-...
lingcode auth set deepseek sk-...

# 查看已配置项(值已脱敏)
lingcode auth status

# 删除密钥
lingcode auth delete anthropic

关于 OAuth:Anthropic 不向第三方 CLI 发放 OAuth client ID,因此无法做真正的 /login OAuth 流程。lingcode auth login 是实际可行的替代方案 —— 打开浏览器,等你粘贴密钥,然后写入钥匙串。

其他提供方(openai、groq、together、openrouter、mistral、xai、fireworks、ollama)不走钥匙串路径,直接在 shell 里设置环境变量即可:

export OPENAI_API_KEY=sk-...
export GROQ_API_KEY=gsk-...

MCP 服务器、Hooks、自定义命令

与 Claude Code 项目约定兼容。

MCP 服务器

项目根放一个 .mcp.json(全局放 ~/.claude.json):

{
  "mcpServers": {
    "filesystem": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
    }
  }
}

--mcp-config <path> 覆盖,用 --no-mcp 关闭。MCP 仅 Claude 可用。

Hooks

把 Hooks 写在 .claude/settings.json。它们以 shell 命令运行,环境变量里包含 CLAUDE_TOOL_NAMECLAUDE_TOOL_INPUT 以及(对 PostToolUse)CLAUDE_TOOL_RESULT:

{
  "hooks": {
    "PreToolUse": [
      { "matcher": "Write|Edit", "hooks": [{ "type": "command", "command": "echo 即将编辑: $CLAUDE_TOOL_INPUT" }] }
    ],
    "Stop": [
      { "hooks": [{ "type": "command", "command": "say 完成" }] }
    ]
  }
}

自定义斜杠命令

放在 .claude/commands/(项目)或 ~/.claude/commands/(用户)下的 Markdown 文件。格式与 Claude Code 一致 —— 文件正文就是 prompt。

与运行中的 App 通信

当 LingCode.app 打开时,以下命令通过 ~/Library/Application Support/LingCode/ipc.sock 的 Unix socket 驱动它:

命令作用
lingcode ping检查 App 是否在运行并响应。
lingcode open path/to/file.swift在 App 里打开文件或文件夹(必要时启动 App)。
lingcode status显示聚焦项目与正在运行的 Agent。
lingcode ask "..."把 prompt 路由到 App,结果流式输出到 stdout。
lingcode watch实时 tail Agent 活动。Ctrl-C 停止。

ask--headless 可强制本地执行,即使 App 开着。

子命令参考

子命令用途
repl(默认)交互式多轮会话。lingcode 不带参数即等价。
ask一次性 prompt,支持流式、JSON 输出、附件、续接。
authlogin / set / get / delete / status 管理 macOS 钥匙串。
config读写 ~/.lingcode/config.json —— 默认值、已存密钥。
init分析仓库并为当前项目生成 CLAUDE.md
history列出 ~/.lingcode/history.jsonl 里的历史会话。
completion zsh|bash|fish输出 shell 补全脚本。
pingIPC 探测运行中的 App。
open在运行中的 App 打开文件或文件夹。
statusApp 聚焦 / Agent 状态。
watch流式 Agent 活动。
installlingcode 符号链接到 PATH。

故障排查

lingcode: ANTHROPIC_API_KEY is not set

lingcode auth login 搞定,或在 shell 里 export,或 lingcode config set anthropic-api-key sk-ant-...

lingcode: <PROVIDER_API_KEY> is not set

OpenAI 兼容提供方直接用环境变量。想用自定义变量名:lingcode --provider openai --api-key-env MY_KEY

lingcode: couldn't find Claude agent bridge

Claude 提供方需要 bridge.mjs,它附带在 LingCode.app 或独立 CLI 压缩包里。要么把 LingCode.app 装到 /Applications,要么用 export LINGCODE_AGENT_BRIDGE_DIR=/path/to/agent-bridge 指向开发副本。

lingcode: cannot find `node` on PATH

装 Node.js(nodejs.org),重开 shell 后再试。或者 NODE 指向具体路径。仅 Claude 提供方需要;OpenAI 兼容提供方用纯 Swift。

被限流 / 429 / overloaded

askrepl 都会自动以指数退避重试(最多 5 次,间隔最长 60 秒)。你会在 stderr 看到 rate limited (attempt N/5) — retrying in Xs…

App 响应了,但我想要 headless

App 开着时 lingcode ask 默认路由给 App。加 --headless 强制本地执行。

我在终端里粘贴过 API 密钥

去提供方控制台轮换。shell 历史或 tmux scrollback 里的内容都要当作泄露处理。下次用 lingcode auth login(浏览器粘贴)或 lingcode auth set <provider> <key> —— 都不会把密钥打印到 stdout。