yosh95/llm-cli

GitHub: yosh95/llm-cli

一款加固安全的多 LLM 统一命令行工具,通过后量子密码学、推理监控和沙箱机制实现可验证的自主 Agent 执行。

Stars: 1 | Forks: 0

# llm-cli:面向多 LLM 的统一命令行接口 ![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/72c1d299fb085247.svg) ## 📄 技术报告(预印本) 以下报告提供了详细的架构见解和安全分析: - **[Client Integrity and Adaptive Security Scaling for AI Agents](paper/pqc/trilogy_phase3_temporal_pqc.pdf)** - **[Verified Tool Orchestration: Securing Autonomous Agents via Asymmetric Identity and SSM-based Reasoning Monitoring](paper/zero_trust/trilogy_phase2_behavioral_zero_trust.pdf)** - **[Layered Security Guardrails for LLM Command-Line Interfaces](paper/guardrail/trilogy_phase1_structural_guardrails.pdf)** [English] | [日本語](#japanese-description) `llm-cli` 是一款功能多样的命令行工具,为与各种大型语言模型(LLM)交互提供了统一的接口。它支持来自 Google(Gemini)、OpenAI、Anthropic(Claude)、xAI(Grok)的服务,以及**通过 Ollama 运行的本地 LLM**,允许你通过单一命令 `llm` 在终端中切换供应商并利用它们的能力。

llm-cli Architecture & Security Guardrails

## 设计理念:专注与稳定 `llm-cli` 专为需要稳定性和清晰度的“深度工作”环境而设计。 - **护眼界面**:最大程度减少 UI 闪烁和快速文本移动,适合长期使用。 - **可靠性能**:简单的终端输出确保在各种终端模拟器和 SSH 会话中保持一致的行为。 - **认知清晰**:稳定的输出格式有助于用户专注于任务,免受动画干扰。 ## TL;DR(快速入门) - **安装**:`pip install .` - **配置**:`llm-cli-config`(设置 API 密钥和 Ollama URL)。 - **聊天**:`llm`(Agent 模式 + 推理监控开启)。 - **单次执行**:`llm "Summarize this" file.pdf`。 - **切换**:`/p gemini` 或 `/m image`。 - **安全**:Diff 预览 + Human-in-the-loop 批准 + 异常检测。 ## 主要功能 - **统一接口**:通过单个 `llm` 命令访问主流云端 LLM(Gemini、OpenAI、Claude、Grok)和**本地 LLM(Ollama)**。 - **推理异常监控器**:一个轻量级的**纯 NumPy SSM**(Mamba),可实时监控 AI 推理过程中的统计异常。它有助于追踪“推理完整性(Reasoning Integrity)”,且无需依赖 Torch 等重型库。 - **PQC 客户端验证**:验证客户端完整性,并生成嵌入在工具调用中的 PQC 签名(ML-DSA)令牌,以提供不可抵赖性。 - **本地 LLM 支持**:通过 **Ollama** 在本地使用模型,保障隐私并支持离线使用。 - **自主 Agent**:AI 可以管理文件、**通过 Python 与系统交互**、搜索网络并附加媒体文件。 - **多模态输入与输出**: - **输入**:图像、PDF、音频和视频。 - **输出**:在对话中生成图像和视频。 - **通过 MCP 实现分布式 Agent**:支持 **Model Context Protocol**。通过 SSH 连接到远程实例以管理文件或运行测试。 - **URL 支持**:直接传递网站 URL,通过自动抓取分析内容。 - **安全执行**:**No-Shell 架构**(避免 Shell 注入)、文件更改的 **Diff 预览**、**静态分析**以及 **Human-in-the-Loop** 确认。 - **分层安全**:混合 PQC 签名(RSA + ML-DSA)、**客户端验证**、**Linux 沙箱(Bubblewrap)**、**基于熵的机密检测**以及**推理完整性**追踪。 ## 截图 ### 🤖 自主 Agent 与工具使用 AI Agent 自主使用工具执行复杂任务,例如在编辑代码前先理解项目结构。

Autonomous Agent and Tool Use

## 安装与设置 ### 1. 安装 确保你使用的是 Python 3.11 或更高版本。 ``` git clone https://github.com/yosh95/llm-cli.git cd llm-cli pip install . ``` ### 2. 配置 运行交互式设置程序以配置你的 API 密钥: ``` llm-cli-config ``` 或者,使用环境变量: ``` export OPENAI_API_KEY="sk-..." export ANTHROPIC_API_KEY="sk-ant-..." export GOOGLE_API_KEY="AIza..." export XAI_API_KEY="xai-..." ``` ## 开发 提供了一个 `Makefile` 用于常见的开发任务: - `make install`:以可编辑模式安装包,包含开发/测试依赖项。 - `make lint`:运行 `ruff` 和 `mypy` 进行静态分析。 - `make format`:运行 `ruff format` 格式化代码。 - `make test`:运行测试并生成覆盖率报告。 - `make clean`:删除临时文件、缓存(`.ruff_cache`、`__pycache__` 等)和构建产物。 或者,你可以直接运行清理脚本: ``` python scripts/clean.py ``` ## 使用方法与命令 ### 1. 交互式聊天 只需输入 `llm` 即可启动交互式会话: ``` llm ``` ### 2. 单次提示与管道 ``` # 直接提示词 llm "What is the capital of France?" # 分析来自 pipe 的代码 cat main.py | llm "Explain this code" # 分析本地文件或 URL llm "Summarize this paper" https://arxiv.org/pdf/1706.03762.pdf ``` ### 3. 模板管理 在 `~/.config/llm_cli/config.toml` 中定义常用提示: ``` [templates] proofread = "Proofread the following text for grammar and clarity:" ``` 在聊天中使用:`> /t proofread`。 ### 4. CLI 选项 - `-p, --provider `:指定供应商(`google`、`openai`、`anthropic`、`xai`、`ollama`)。 - `-m, --model `:指定模型别名(例如 `pro`、`flash`、`mini`、`opus`)。 - `-s, --stdout`:将响应直接打印到标准输出并退出。 - `--raw`:在输出中禁用 Markdown 渲染。 - `--mcp`:启用 MCP 集成。 - `--mcp-server`:作为 MCP 服务器运行。 - `--session `:加载已保存的会话 JSON。 ### 5. 聊天内命令 - `/p`、`/m`:切换供应商/模型。 - `/t