Show HN: Bash4LLM+ – 轻量级无依赖的 Bash 封装 LLM API
Bash4LLM⁺ — 安全的 wrapper CLI,以 Bash 为首且完全可审核,用于与 Groq 的 OpenAI 兼容的 Chat Completions API 进行交互(可扩展到其他提供者)。Bash4LLM⁺ 是一个单一 Bash 脚本,自包含、可读且可验证。下载它,使其可执行,导出您的 API 密钥并立即开始使用。兼容类 Unix 环境:Linux、macOS、WSL、Cygwin、Termux(Android)、BSD。主要特点 通过 GET https://api.groq.com/openai/v1/models 列出动态模型 → 没有硬编码模型。安全设计 → 不使用 /tmp,没用 eval,采取限制性权限,先进的提供者验证。分节模块化结构 → PRECORE_BOOT、PRECORE_RUN、PROVIDER、CORE_SETUP、CORE_PROVIDER。UI 状态系统 (ui_state) → CORE 持续以原子 JSON 格式暴露元数据,以便与 GUI 或外部工具集成(例如 Home Assistant)。流和非流 → 实时输出或完整回答后输出。自动保存 → 对于超过可配置阈值的长输出。高级模型管理 → 刷新、列出、持久化默认值、动态白名单、自动选择。可选扩展 → 额外提供者(如 Gemini、Hugging Face、Mistral),模版、文档、安全工具。支持 Termux / Android → 自动检测 Termux 环境,绕过 flock(在 Android 的内核/SELinux 上通常不稳定或受限),并透明地将并发管理转移到稳定的目录锁定机制(原子 mkdir)。威胁模型(简短版)Bash4LLM⁺ 设计用于单用户环境(PC/笔记本电脑、个人服务器)。提供者在您的 shell 中执行代码:必须位于您所拥有的安全目录中。像 BASH4LLM_EXTRAS_DIR 和 BASH4LLM_TMPDIR 这样的变量被视为可信配置。脚本从不执行模型输出。TOCTOU 风险和 JSON/SSE 解析的限制得到了缓解和记录。在 SECURITY 中有完整的细节。要求 Bash4LLM⁺ 要求以下包(或等效的)在 PATH 中可用:bash coreutils findutils util-linux gawk curl jq 安装提示 ⏩ 快速安装 执行以下命令以立即启动 Bash4LLM⁺:# 1. 克隆代码库(仅最后一次提交以提高速度) git clone --depth 1 --branch main https://github.com/kamaludu/bash4llm.git repo-bash4llm # 2. 创建工作文件夹并提取可执行文件 mkdir -p bash4llm cp repo-bash4llm/bin/bash4llm bash4llm/ chmod +x bash4llm/bash4llm # 3. 进入文件夹并刷新模型 cd bash4llm ./bash4llm --refresh-models 脚本会提示您输入默认提供者(Groq)的 API 密钥: Enter API key for provider groq (env GROQ_API_KEY): 输入您的 API 密钥,然后导出它,以便在会话期间不必再次输入: export GROQ_API_KEY="gsk_xxxxxxxxxxxxxxxxx" 建议:安装可选扩展:# 4. 安装可选扩展 ./bash4llm --install-extras ../repo-bash4llm/extras/ 使用 Bash4llm ⚡ 详细说明在:INSTALL 简而言之:chmod +x bash4llm export GROQ_API_KEY= " gsk_xxxxxxxxxxxxxxxxx " ./bash4llm --help 可选扩展:./bash4llm --install-extras 可选项: --source <dir> --force --dry-run 选择性安装: ./bash4llm --install-extras provider1 templateA 快速使用 直接提示: ./bash4llm " 写一首简短的意大利语诗 " 多行提示: ./bash4llm << ' EOF ' 写一首简短的意大利语诗 EOF 文件输入: ./bash4llm -f prompt.txt 管道: echo " 解释相对论 " | ./bash4llm 特定模型: ./bash4llm -m llama-3.3-70b-versatile " 写一篇简短的论文 " 干运行: ./bash4llm --dry-run " 你好 " 外部提供者(如已安装): ./bash4llm --provider gemini " 翻译这个 " 可用的命令、标志和选项 模型和提供者 标志 参数 效果 --refresh-models, --refresh-model no 更新模型列表(需要 API 密钥)。 --list-models no 打印模型列表(交互格式)。 --list-models-raw no 以原始格式打印模型列表(一行一个模型)。 --list-providers no 打印提供者列表。 --list-providers-raw no 以原始格式打印提供者。 --set-default <model> yes 为当前活动提供者设置持久默认模型。 -m <model>, --model <model> yes 为此次执行设置模型。 --provider <name> yes 从 CLI 设置提供者。 --provider no 若无参数 → 打开交互式选择。 输入(文件、JSON、模板、批处理) 标志 参数 效果 -f <file> yes 将文件添加到 FILE_INPUTS 。 --json-input <json> yes 设置 JSON 输入(OpenAI 类似格式)。 --template <name> yes 应用来自 BASH4LLM_TEMPLATES_DIR 的模板。 --batch <file> yes 执行批量请求(一行 = 一个提示)。 会话 标志 参数 效果 --session <id> yes 启用指定 ID 的会话。 --session-window [n] 可选 设置会话窗口(默认为 10,如果未提供)。 --init-ses
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡