get 是一个小巧的命令行二进制工具, 通过自然语言调用大语言模型 (LLM) 生成 Shell 命令, 并在你的设备上执行, 以获取你需要的任何信息.
get 以 AGPL-3.0 许可证在 GitHub 上开源.
使用示例:
get "设备的IP地址"
get "当前目录下的代码结构"
get "https://github.com/Water-Run/get 上最新的 get 版本"从GitHub Release下载. 直接一句话运行安装脚本即可:
python get_ready.py按照要求的指引进行. 运行安装器时请保持 Release 包内文件在同一目录. Windows 下 get-windows-x64.exe, libcrypto-1_1-x64.dll, libssl-1_1-x64.dll 都是必需文件. 如果检测到旧版本安装, 安装器会询问是否保留现有配置并仅替换主程序. 完成后, 运行 get version 校验安装.
使用前, 至少需要配置大语言模型的相关参数. get 兼容 OpenAI API 规范. 使用以下命令进行配置:
get set model 你的模型名称
get set url 你的接口地址
get set key 你的API密钥配置完成后, 运行 get isok 进行验证.
若要取消某项配置, 将值留空即可. 例如取消 Key 设置:
get set key用法非常简单:
get "你的问题"
get设计为仅执行只读操作. 每条生成的命令在执行前会经过多层安全验证 (默认的危险命令正则匹配拦截、以及可选的二次审查和手动确认).
整数选项接受 false 以完全禁用该功能 (等同于 0).
| 选项 | 说明 | 值类型 | 默认值 |
|---|---|---|---|
key |
LLM API 密钥 | 字符串 | 空 |
url |
LLM API 端点 URL | 字符串 (URL) | https://api.minimaxi.com/v1 |
model |
LLM 模型名称 | 字符串 | minimax-m3 |
manual-confirm |
执行前是否要求手动确认 | true / false |
false |
double-check |
是否进行二次安全审查 | true / false |
true |
instance |
是否使用单次调用快速模式 | true / false |
false |
timeout |
单次 API 请求超时时间 | 正整数 (秒) / false |
300 |
max-token |
每次请求的最大 token 消耗 | 正整数 / false |
20480 |
max-rounds |
Agent 模式的最大循环轮数 | 正整数 / false |
3 |
command-pattern |
禁止命令正则匹配模式 | 正则字符串 | 内置黑名单(不传值还原默认;传 "" 清空) |
system-prompt |
自定义系统提示词 | 字符串 | 空 |
shell |
用于执行命令的 Shell | 字符串 | Windows: powershell; Linux: bash |
log |
是否记录每次请求和执行 | true / false |
true |
hide-process |
是否隐藏中间步骤 | true / false |
false |
system-proxy |
是否优先使用系统代理设置;否则只使用终端代理环境变量 | true / false |
false |
cache |
是否启用响应缓存 | true / false |
true |
cache-expiry |
缓存条目过期天数 | 正整数 (天) / false |
30 |
cache-max-entries |
缓存保留的最大条目数 | 正整数 / false |
1000 |
cache-trigger-threshold |
触发缓存判定所需的历史执行次数 | 正整数 / false |
1 |
log-max-entries |
日志保留的最大条目数 | 正整数 / false |
1000 |
vivid |
是否启用 vivid 输出模式 (语义颜色与进度动画) | true / false |
true |
禁用整数选项的示例:
get set timeout false
get set cache-expiry false
get set log-max-entries falsecommand-pattern 在 shell 展开前对命令字符串本身做匹配。仅屏蔽某个
文件名可被通配符绕过(例如 cat *.txt),因此更可靠的策略是匹配命令
动词(如 cat、head、cp 等)。
以下标志可在查询时覆盖持久化配置, 置于查询字符串之后:
| 标志 | 说明 |
|---|---|
--no-cache |
本次查询绕过缓存 |
--cache |
本次查询强制使用缓存 |
--manual-confirm |
执行前要求确认 |
--no-manual-confirm |
跳过确认提示 |
--double-check |
启用二次安全审查 |
--no-double-check |
跳过二次安全审查 |
--instance |
快速单次调用模式 |
--no-instance |
多轮 agent 模式 |
--hide-process |
隐藏中间过程输出 |
--no-hide-process |
显示中间过程输出 |
--system-proxy |
优先使用系统代理设置 |
--no-system-proxy |
仅使用终端代理环境变量 |
--vivid |
启用 vivid 输出模式 |
--no-vivid |
使用纯文本输出模式 |
--model <名称> |
覆盖本次使用的 LLM 模型 |
--timeout <秒数> |
覆盖本次请求超时时间 |
示例:
get "磁盘使用情况" --no-cache
get "列出文件" --model minimax-m3 --vividconfig命令用于获取当前的配置.
get config # 显示所有当前配置
get config --reset # 重置所有配置为默认值
get config --<选项名> # 显示单个选项的当前值--<选项名> 接受上方 set 表格中的所有选项名称. get config --key 显示密钥是否已配置。存储值经加密处理,无法取回原文。禁用的整数选项显示 false.
get config --command-pattern # 查看当前正则(默认时显示完整内置表达式)
get set command-pattern # 还原内置默认
get set command-pattern "" # 清空,禁用模式过滤get 采用延迟决策缓存机制. 查询在首次执行时不会缓存. 只有当同一查询的历史执行次数达到 cache-trigger-threshold(默认 1,即第二次执行触发)或显式传入 --cache 时, get 才会调用 LLM 判断最优缓存策略. 在该判定阶段(当未隐藏过程输出时),会显示进度文本 checking whether to cache.... 支持五种策略: GLOBAL_COMMAND (全局缓存命令, 命中时重新执行), GLOBAL_RESULT (全局缓存结果, 命中时直接返回), CONTEXT_COMMAND (按上下文缓存命令, 命中时重新执行), CONTEXT_RESULT (按上下文缓存结果, 命中时直接返回), 或 NOCACHE (不缓存).
全局条目在任意工作目录下生效; 上下文条目仅在原始查询的目录下生效.
当启用 hide-process 时, get 会抑制自身中间进度与 warning 文案(包括缓存判定提示与模型建议 warning),仅输出最终结果或必要错误。
当配置 cache=false 且未启用 hide-process 时, 会输出 warning: warning: cache is disabled in config; all cache logic is bypassed.
get cache # 显示缓存状态
get cache --clean # 清除所有缓存条目和已见记录
get cache --unset "系统版本" # 移除匹配查询的缓存条目
get set cache false # 禁用缓存 (停用所有缓存逻辑)get 将每次查询执行记录到本地文件. 超过 log-max-entries 限制时, 最旧的条目会被自动移除.
get log # 显示日志状态
get log --clean # 清除所有日志条目
get set log false # 禁用日志get get # 显示 get 的基本信息
get get --intro # 显示简介
get get --version # 显示版本 (等价 get version)
get get --license # 显示许可证标识
get get --github # 显示 GitHub 链接
get isok # 验证当前配置是否可用
get help # 显示使用帮助配置文件: Linux~/.config/get/config.json/ Windows%APPDATA%/get/config.jsonAPI 密钥: Linux~/.config/get/key(权限 0600)/ Windows%APPDATA%/get/key(DPAPI 加密)执行日志: Linux~/.config/get/get.log/ Windows%APPDATA%/get/get.log响应缓存: Linux~/.config/get/cache.json/ Windows%APPDATA%/get/cache.json
0: 成功完成1: 配置错误、LLM 通信失败、安全检查拒绝或一般错误130: 被 Ctrl+C(SIGINT)中断N: 当生成的命令以非零码退出时, 该退出码会被传递为get的退出码