rvs(rust-verb-shell):一款面向人类和 AI Agent 的结构化 Shell

发布时间:2026/7/25 21:20:00
rvs(rust-verb-shell):一款面向人类和 AI Agent 的结构化 Shell 项目地址开源仓库rust-verb-shell:基于Rust的verb-noun风格Shell项目 - AtomGit采用 MulanPSL-2.0 许可证欢迎 Fork、Issue、PR。后续教程中所有命令均以此仓库的最新 dev 分支为准。设计理念rvs 的定位是「结构化、沙盒优先的 Shell」——既给人用也给 AI 用。verb-noun 命名命令名采用全小写 kebab-case格式为 verb-noun、verb-noun-noun2……遵循 verb-noun 语义命名规范。正确写法rvs nativeget-child-item get-child-item -recurse set-location /tmp get-content README.md new-item -item-type directory -name demo remove-item demo -recurse get-system-info get-network-interface get-file-hash参数同样全小写 kebab-case-recurse、-item-type、-force。同时保留 POSIX 常用别名作为肌肉记忆桥接ls / cd / pwd / cat / mkdir / rm / echo / clear输入别名时 rvs 会提示 对应的完整命令名。沙盒安全通过 --sandbox 参数启动沙盒模式将所有文件系统操作限制在指定目录内rvs --sandbox /tmp/sandbox沙盒模式下拒绝执行外部二进制防止绕过路径检查。不带 --sandbox 时默认完全文件系统访问。结构化输出人类交互默认输出可读表格AI 或脚本调用时加 --json 参数只输出合法 JSON零噪声rvs --json get-child-itemAI 友好所有输出避免字符画、Logo 等 AI 难以解析的内容。命令名采用 verb-noun 语义命名让 AI 能通过名称推断用途get-child-item 就是列出子项set-location 就是切换目录。版本号CalVer YY.M.Prvs 从 26.7.0 起采用日历版本号CalVer格式为YY.M.P段含义范围YY年份后两位26、27……M月份1–12不加前导零不会出现 0.10P本月第几次发布0 起递增跨月重置为 0当前最新版本v26.7.02026 年 7 月首次发布。低心智负担看一眼版本号就知道是什么时候发布的。跨月自然进位月份永远两位数以内。人类用法速查面向开发者安装与启动编译需要 Rust 工具链git clone https://atomgit.com/k4m7v2pz/rust-verb-shell.git cd rust-verb-shell cargo build --release ./target/release/rvs # 或直接 cargo run cargo run -- rvs进入 REPL 交互模式后直接输入命令即可2026-07-25 20:30:00 UTC08:00 userhost:/home/user [linux/x86_64] rvs — rust-verb-shell (v26.7.0) userhost: demomy-pc cwd: /home/user no sandbox (full FS access). use --sandbox DIR to restrict. commands use Verb-Noun style (get-child-item, set-location, ...). aliases: ls / cd / pwd / cat / mkdir / rm / echo / clear; exit to quit. 常用命令速查你要做什么rvs 命令别名说明列目录get-child-itemls, dir加 -recurse 递归切换目录set-locationcd—显示路径get-locationpwd—读文件get-contentcat, type—创建目录new-item -item-type directory -name mydirmkdir—创建文件new-item -item-type file -name test.rstouch, ni—删除remove-item path -recurserm目录加 -recurse写文件set-content path -value 内容sc覆盖写入追加文件add-content path -value 内容ac—回显write-output helloecho—清屏clear-hostclear, cls—查帮助get-help get-child-itemhelp, man—看进程get-processps—看历史get-historyhistory, h—退出exitquit—管道与过滤rvs 内建管道支持按条件过滤、排序、选择列get-child-item -recurse | where-object size 1024 | sort-object -descending size | select-object -first 5等价于 POSIX 的find . -size 1k | sort -rn | head -5。切换传统 Shell不熟悉 rvs 语法或临时需要 POSIX 管道一行命令切换到 bash/zsh/nuenter-shell bash # 现在在 bash 里exit 回到 rvs exitsshd 环境下也一样工作rvs -c enter-shell bash -c ls | grep foo。td0 起递增跨月重置为 0当前最新版本v26.7.02026 年 7 月首次发布。低心智负担看一眼版本号就知道是什么时候发布的。跨月自然进位月份永远两位数以内。AI / Agent 速查对话式 AIChatGPT / 腾讯元宝 / 豆包等当用户问「帮我列出当前目录文件」或「读取那个配置文件」时对话 AI 应该生成 rvs 语法命令模板# 列目录 get-child-item [path] [-recurse] 读文件 get-content path 切换目录 set-location path 创建目录 new-item -item-type directory -name name 查看进程 get-process [name] 管道过滤 get-child-item -recurse | where-object size 1024不要输出 PowerShell 的 PascalCaseGet-ChildItemrvs 所有命令和参数都是全小写 kebab-case。如果用户传入的指令是 POSIX 风格的管道如ls | grep foo提示用enter-shell bash切换到 bash 后再执行。代码 AgentVSCode Copilot / Trae IDE / AtomCode 等Agent 调用 rvs 时应走--json模式输出是合法 JSON无需额外解析# 单个命令 rvs --json get-child-item /tmp 输出示例简化 {ok:true,command:get-child-item,args:[/tmp],output:[file1.txt,file2.rs],exit_code:0}标准调用流程rvs --json -c command # 或管道喂多行 echo -e get-location\nget-child-item | rvs --json常用调试命令# 检查路径是否存在 rvs --json test-path /some/file 获取系统信息 rvs --json get-system-info 获取文件信息 rvs --json get-item /path 列出所有可用命令 rvs --json get-command沙盒模式调用处理不可信输入时rvs --sandbox /tmp/safe-box --json get-child-item一句话总结rvs 全小写 Verb-Noun 命令 可选沙盒 人类表格输出 AI 的--json模式。项目在 rust-verb-shell:基于 Rust 的 PowerShell 风格 Shell 项目 - AtomGit版本号 CalVerYY.M.P当前v26.7.0。