Rayu CLI
Rayu CLI是一款基于终端的AI编码代理。带上你自己的API密钥并连接 任何供应商- Anthropic, OpenAI, NVIDIA, DeepSeek, Kimi/Moonshot, OpenRouter, 谷歌Gemini、AWS Bedrock、本地服务器或任何与openai兼容的端点 具有免费模型切换,完整的MCP支持和完整的内置工具套件。
网站: https://rayucode.com
文档: https://rayucode.com/docs
更新日志: https://rayucode.com/changelog
安装
一个命令,任何机器。安装程序下载预捆绑的CLI(和一个 私有节点运行时(如果机器没有),因此它不依赖于您的 Node/npm版本或对全局npm前缀的写访问:
# macOS / Linux
curl -fsSL https://rayucode.com/install | bash
# Windows (PowerShell)
irm https://rayucode.com/install.ps1 | iex
然后开始:
rayu
如果你愿意,先读一下脚本: https://rayucode.com/install.sh. 详细信息、标志和卸载说明: https://rayucode.com/docs/01-installation.
通过npm(需要节点>= 18)
npm install -g @rayu-dev/rayu-cli
或立即运行,无需安装:
npx @rayu-dev/rayu-cli
软件包管理器
bun install -g @rayu-dev/rayu-cli
pnpm add -g @rayu-dev/rayu-cli
yarn global add @rayu-dev/rayu-cli
工作室远程
从Rayu Studio控制正在运行的CLI会话。有两种连接选项:
- 二维码: 运行
/web-bridge pair在命令行中,用手机扫描二维码 相机(或打开其链接),登录到Studio,然后选择 通过机器. 这在登录CLI时也会起作用。二维码五分钟后失效。 - Rayu帐户: 然后在CLI和Studio中登录同一个Rayu账户
运行
/web-bridge直接连接。
选择Studio上的机器 远程 发送提示、批准工具调用、 并且打断回合。QR配对授予该运行工人的控制权;它 不要将worker签名到Rayu或为托管模型提供凭据。
使用 /web-bridge status 检查连接和 /web-bridge off 取消
配对或断开连接。如果已连接,请先断开连接再开始QR配对。
关闭CLI也会终止对该会话的远程控制。
更新
rayu update
这适用于两种安装方法:安装程序管理的安装将重新运行 安装程序,一个NPM安装从NPM重新安装。
或者直接重新安装最新版本:
curl -fsSL https://rayucode.com/install | bash # installer-managed
npm install -g @rayu-dev/rayu-cli # npm-managed
更喜欢 rayu update:它解析最新版本一次,安装它 确切的
版本,然后验证实际降落在磁盘上的内容。一个普通
npm install -g @rayu-dev/rayu-cli@latest 解析可变的 latest 标记一个
第二次,可以静默地重新安装你已有的版本,当NPM
提供缓存的注册表元数据(包缓存5分钟),其中
看起来一次成功的更新没有改变什么。
当新版本发布时,Rayu会在提示符上方显示一行通知
在启动时的欢迎框中,有一个链接到
的更新日志. 没有安装,直到你
运行 rayu update 你自己。
自动更新(选择加入)
更新是 默认关闭. 拉尤告诉你有新消息,但从来没有
在你背后替换你的安装。要打开它们,请设置 autoUpdates 在
~/.rayu/config.json:
{
"autoUpdates": true
}
完全关闭更新检查和通知:
export DISABLE_AUTOUPDATER=1
在启用自动更新之前要知道两件事:
- 节点的版本。 Rayu需要 Node.js 18或更新版本. npm只 警告 当
一个包的
engines需求没有被满足,所以如果未来的版本提出这个问题 在地板上,自动更新可以替换一个正常的安装 在升级Node之前拒绝启动。rayu update有相同的 约束,但你可以选择何时发生。 - 重复安装。 如果Rayu安装在两个不同的npm前缀下
例如once with
sudo,降落在/usr/local一旦没有, 降落在~/.npm-global),更新将写入NPM所在的前缀 配置为-这可能不是您的shell实际运行的副本。结果 “成功”的更新在哪里rayu --version永远不会改变。rayu update检测到这一点,并告诉您哪个副本正在遮蔽哪个副本;自动更新 没有。运行which -a rayu检查,并删除你不需要的副本。
卸载
rayu uninstall
快速启动
在首次启动时,Rayu将要求您连接提供商并输入API密钥。
rayu # start an interactive TUI session
rayu --print "fix the bug in X" # one-shot prompt, non-interactive
rayu --help # all CLI flags, subcommands, and options
交互式会话
在会话中,键入 / 查看所有斜杠命令:
| 命令 | 它是做什么的 |
|---|---|
/connect | 添加或切换提供商(类型→键→型号) |
/model | 在所有提供者之间搜索和切换模型 |
/subagent_models [AGENT] | 为所有生成的代理或一个命名代理设置模型(/model_subagent 仍然是别名) |
/help | 列出所有带描述的斜杠命令 |
/config | 查看和编辑配置 |
/brandmark | 自定义品牌符号和旋转器样式 |
/effort | 为响应设置工作级别 |
/fast | 切换快速模式以获得更快的响应 |
/plugin | 管理插件和浏览市场 |
/mcp | 管理MCP服务器连接 |
/skill | 管理和运行已安装的技能 |
/context | 监视上下文窗口使用情况和令牌计数 |
/cost | 显示累积的令牌使用情况和成本 |
/compact | 手动压缩会话历史记录 |
/clear | 清晰的对话,重新开始 |
/diff | 查看此会话所做的文件更改 |
/plan | 创建并执行实施计划 |
/swarm | 编排多代理团队 |
/memory | 查看和管理持久内存 |
/think | 切换扩展思维模式 |
/doctor | 运行诊断和健康检查 |
/exit | 退出会话 |
无头模式
对于自动化和CI/CD管道:
rayu --print --model meta/llama-3.3-70b-instruct "summarize this repo"
通过环境变量传递凭证(不需要保存配置):
RAYU_OPENAI_COMPATIBLE=1 \
RAYU_OPENAI_BASE_URL=https://integrate.api.nvidia.com/v1 \
RAYU_OPENAI_API_KEY=nvapi-xxxxx \
rayu --print "list top-level folders"
管道的JSON输出:
rayu --print --output-format json "list top-level folders" | jq .result
供应商
Rayu说话 四线格式,因此一个提供程序条目可以为使用 不同的协议。请求使用哪种格式是决定的 模型,不是per。 供应商:
| 提供者 | 它所服务的模型 | 有线格式(s) | 身份验证 |
|---|---|---|---|
| 人为 | 克劳德。 | 人为的消息 | ANTHROPIC_API_KEY |
| AWS基础 | 克劳德。 和 Gpt-oss / qwen / deepseek / mistral /… | Claude的Anthropic Messages, OpenAI Chat的其余部分 | AWS_BEARER_TOKEN_BEDROCK (Bedrock API密钥) |
| 微软Azure | 克劳德。 和 GPT的部署 | Claude的Anthropic Messages, OpenAI的Responses | ANTHROPIC_FOUNDRY_API_KEY / AZURE_OPENAI_API_KEY |
| 谷歌顶点AI | 双子座,克劳德 和 羊驼/西北风/ Qwen (MaaS) | GenAI, Anthropic Messages, OpenAI Chat | 谷歌OAuth / ADC |
| OpenAI-compatible | NVIDIA、DeepSeek、Kimi、OpenRouter、GLM、Ollama、LM Studio…… | OpenAI聊天 | RAYU_OPENAI_API_KEY 或者每个提供者密钥 |
| Anthropic-compatible | 朗卡特,奥拉玛·克劳德 | 人为的消息 | 不记名关键 |
| GitHub副驾驶员 | 副驾驶员模型 | OpenAI聊天 | GitHub OAuth设备流程 |
| Kiro | 克劳德通过AWS CodeWhisperer | CodeWhisperer事件流 | API密钥或 kiro-cli 登录 |
| Rayu(主持) | 策划主持模特 | 人为的消息 | 您的Rayu账户(JWT) |
| 自定义 | 你申报了什么? | 你选择: OpenAI聊天,OpenAI响应,或Anthropic消息 | 你的关键 |
自定义提供程序不需要更改代码。 运行 /connect → 自定义服务提供方程序,给
如果有一个名称,选择其端点使用的API格式,输入基本URL,模型
身份证和钥匙。声明它是否支持推理和图像,所以Rayu永远不会
发送端点将拒绝的参数。
谷歌双子座 有三种可用方式:
- Gemini API密钥 (
GEMINI_API_KEY),通过兼容openai的端点 - 顶点AI与OAuth/ADC -项目+区域范围
- 双子座登录 -交互式谷歌登录,免费,无GCP项目
Vertex/OAuth凭据也很强大 画像4 图像生成和 Veo 3.1 视频的一代。
示例-使用NVIDIA进行无头运行:
RAYU_OPENAI_COMPATIBLE=1 \
RAYU_OPENAI_BASE_URL=https://integrate.api.nvidia.com/v1 \
RAYU_OPENAI_API_KEY=nvapi-xxxxx \
rayu --print --model meta/llama-3.3-70b-instruct "summarize this repo"
工具
Rayu配备了一个全面的内置工具套件:
| 类别 | 工具 |
|---|---|
| 文件操作 | Read, Write, Edit, Glob, Grep, NotebookEdit |
| 执行 | Bash, PowerShell, Agent (子) |
| 网络 | WebFetch, WebSearch |
| 媒体 | GenerateImage, GenerateVideo |
| MCP | MCPTool, ListMcpResources, ReadMcpResource |
| 任务 | TaskCreate, TaskGet, TaskUpdate, TaskList, TaskStop, TaskOutput |
| 规划 | EnterPlanMode, ExitPlanMode, EnterWorktree, ExitWorktree, Brief |
| 代码 | LSP (语言服务器查询), Config, ToolSearch |
| 技能 | SkillTool, InstallSkillTool |
| 沟通 | AskUserQuestion, SendMessage (队友) |
| 待办事项 | TodoWrite |
模型上下文协议
Rayu支持模型上下文协议,用于连接外部工具和数据源:
# Configure MCP servers interactively
/mcp
# Or add an MCP server in settings
MCP服务器配置在 ~/.rayu/settings.json 并且可以公开工具,资源,
并在会话期间向AI代理发出提示。
技能
Rayu有一个打包、可重用程序的技能系统:
/install-skill <source> # Install a skill from GitHub/URL/path
/skill <name> <args> # Run an installed skill
技能可以作为GitHub repos共享,并从url安装。
自治模式
Rayu支持自动审批操作的自主运行:
rayu --print --permission-mode bypassPermissions "Refactor the project"
许可模式: default, bypassPermissions, acceptEdits, bypassReadonly,
bypassReadonlyAndApis, planMode.
配置
配置存储在 ~/.rayu 默认情况下。关键文件:
| 文件 | 目的 |
|---|---|
~/.rayu/settings.json | 所有用户设置,主题,MCP配置 |
~/.rayu/rayu-auth.json | rayu托管的验证令牌 |
~/.rayu/diagnostics.jsonl | 运行时诊断日志 |
~/.rayu/sessions/ | 会话记录和状态 |
~/.rayu/skills/ | 安装技巧 |
所有设置在更新和卸载期间都会保留。
体系结构概述
User input → Ink TUI (React renderer)
→ Slash command dispatch (/connect, /model, etc.)
→ Query engine (message history, context, tool dispatch)
→ Provider adapter (Anthropic/Bedrock/OpenAI/Vertex/Rayu-hosted)
→ Streaming response → Tool execution → Response rendered in TUI
终端用户界面采用a 自定义React渲染器 (src/ink/建立在 react-reconciler
通过高效的帧差分,单元格被打包为 Int32 成双成对 ArrayBuffer
用于200×120终端的零gc渲染。
文档
| # | 文档 | 目录 |
|---|---|---|
| 1 | 安装 | 要求,安装,该 rayu 二进制 |
| 2 | 快速入门 | 第一次跑步,第一次谈话 |
| 3 | 供应商 | 联系供应商, /connect、API密钥 |
| 4 | 模型 | 模型选择器,上下文窗口 |
| 5 | 配置 | 配置文件,环境变量 |
| 6 | CLI参考 | 命令、标志、交互与打印模式 |
| 7 | 削减命令 | 在会话命令 |
| 8 | MCP | 协议服务器管理 |
| 9 | 诊断和隐私 | 记录,遥测,网络态势 |
| 10 | 故障排除 | 常见错误和修复 |
| 11 | 代码库知识图 | 使用本地索引、查询和跟踪 /graphify |
| 12 | 图像和视频生成 | 内置媒体生成工具 |
| 13 | 构建二进制文件 | 跨平台独立可执行文件 |
问题与反馈
https://github.com/Choeng-Rayu/rayu-cli/issues
开发
git clone https://github.com/Choeng-Rayu/rayu-cli.git
cd rayu-cli/rayu
bun install
bun run dev # run from source
bun run build # bundle CLI to dist/rayu.js (alias for build:cli)
bun run build:cli # build standalone CLI bundle (dist/rayu.js)
bun run build:vscode # build Rayucode VS Code extension (.vsix)
bun test # run tests
bun run typecheck # TypeScript type checking
建立与 包子、TypeScript、React/Ink,以及一个自定义终端渲染器。