用命令行就能指挥大模型?Easy LLM CLI 全体验

“我能不能像用 git 那样,用一句话就让 AI 帮我读代码、写程序、做报表?”
答案是:可以,Easy LLM CLI 就是为此而生。

本文是一份面向开发者和极客的完整使用手册,由浅入深地介绍 Easy LLM CLI 的安装、配置、实战案例,以及常见疑问。全部内容均基于官方仓库文档,无任何外部补充。


目录

  1. Easy LLM CLI 是什么?
  2. 它能做什么?(功能全景图)
  3. 一分钟上手:安装与启动
  4. 自定义模型:把 Gemini 换成你爱的任何 LLM
  5. 在代码里调用:把 CLI 能力嵌入自己的脚本
  6. 热门任务清单(附可直接复制的指令)
  7. 常见问题 FAQ
  8. 故障排查速查表

1. Easy LLM CLI 是什么?

一句话总结:
Easy LLM CLI 是一个开源的命令行 AI 助手,支持多种大语言模型,能读代码、改代码、生成应用、操作文件,还能连上你自己的私有模型。

它是 Google 官方 Gemini CLI 的一个 Fork,但做了三件事让它更“通用”:

  • 支持 任何兼容 OpenAI API 格式的模型(Gemini、Claude、GPT-4、DeepSeek、千问……)。
  • 支持 工具链(MCP 服务器),让 AI 能调用本地脚本、数据库、绘图库等外部能力。
  • 默认就支持 超大上下文窗口,一口气读完整仓库也不吃力。

2. 它能做什么?(功能全景图)

场景 一句话示例指令 背后能力
探索陌生代码库 “描述这个系统架构的主要组成部分。” 读取目录 → 分析文件 → 生成架构说明
批量代码迁移 “帮我把这个代码库迁移到最新版本的 Java,先制定一个计划。” 生成迁移步骤 → 逐文件改写 → 输出 Diff
多模态生成 “根据我桌上的手绘草图和 PDF 说明,生成一个 React 网页。” 读取图片 → 读取 PDF → 生成代码 → 本地预览
自动化工作流 “制作一个幻灯片,展示过去 7 天的 git 历史,按功能和团队成员分组。” 读取 git log → 调用图表 MCP → 生成 PPT
系统级操作 “把此目录所有图像转 png,并按 EXIF 日期重命名。” 调用本地脚本 → 批量处理 → 回写文件系统

3. 一分钟上手:安装与启动

前置条件

  • 已安装 Node.js 20 或以上
  • 能访问终端(macOS/Linux/Windows PowerShell 均可)

最简启动(无需安装)

npx easy-llm-cli

第一次运行会自动拉取最新版本,完成后出现交互式提示符 >,即可开始对话。

全局安装(推荐长期使用)

npm install -g easy-llm-cli
elc   # 以后直接敲 elc 就能用

验证成功

$ elc
> 你好
Hello! 我是 Easy LLM CLI,有什么可以帮到你?

出现以上提示即代表环境就绪。


4. 自定义模型:把 Gemini 换成你爱的任何 LLM

默认情况下,Easy LLM CLI 使用 Google Gemini。如果你想用 OpenRouter 上的 Claude、火山引擎的 DeepSeek、或自己搭的 vLLM,只需要 4 个环境变量。

4.1 快速配置示例(以 OpenRouter 的 Claude 3.5 Sonnet 为例)

# 在 ~/.bashrc 或 ~/.zshrc 里追加
export USE_CUSTOM_LLM=true
export CUSTOM_LLM_API_KEY="sk-or-v1-xxxxxxxx"
export CUSTOM_LLM_ENDPOINT="https://openrouter.ai/api/v1"
export CUSTOM_LLM_MODEL_NAME="anthropic/claude-3.5-sonnet"

# 让配置立即生效
source ~/.bashrc

4.2 可选调参

变量 作用 默认值
CUSTOM_LLM_TEMPERATURE 随机性 0
CUSTOM_LLM_MAX_TOKENS 最大返回长度 8192
CUSTOM_LLM_TOP_P 核心采样阈值 1

4.3 验证切换成功

elc
> 你现在用的模型是?

如果回答中包含 “Claude 3.5 Sonnet” 即代表切换成功。


5. 在代码里调用:把 CLI 能力嵌入自己的脚本

Easy LLM CLI 同时提供 NPM 包,可在 Node.js 项目中直接调用。

5.1 安装依赖

npm install easy-llm-cli

5.2 最小可运行示例

import { ElcAgent } from 'easy-llm-cli';

const agent = new ElcAgent({
  model: 'custom-llm-model-name',  // 与上文环境变量对应
  apiKey: 'custom-llm-api-key',
  endpoint: 'custom-llm-endpoint',
  extension: {
    mcpServers: {
      chart: {
        command: 'npx',
        args: ['-y', '@antv/mcp-server-chart'],
        trust: false
      }
    },
    excludeTools: ['run_shell_command']  // 可选:禁用某些高危工具
  }
});

const result = await agent.run('请帮我生成一个销售数据的柱状图');
console.log(result);

5.3 典型应用场景

  • 在 CI/CD 流程里自动生成发布说明
  • 为内部后台系统添加自然语言查询接口
  • 把 AI 能力封装成公司内部 VS Code 插件

6. 热门任务清单(附可直接复制的指令)

下面所有指令都可以直接粘进 CLI 使用。
步骤:进入一个项目目录 → 运行 elc → 粘贴指令 → 回车。

6.1 探索新代码库

> 描述这个系统架构的主要组成部分,并用 Mermaid 画出模块关系图。

6.2 处理 Git 历史

> 制作一个幻灯片,展示过去 7 天的 git 历史,按功能和团队成员分组。

6.3 代码迁移

> 帮我把这个代码库从 Java 8 迁移到 Java 21,先给出迁移计划,再逐文件修改。

6.4 批量文件操作

> 将此目录中的所有 .heic 图像转换为 .png,并按 EXIF 中的拍摄日期重命名为 YYYY-MM-DD_HH-mm-ss.png。

6.5 多模态生成应用

> 读取 docs/spec.pdf 和 docs/ui-mock.png,生成一个 React 单页应用,要求支持深色模式。

7. 常见问题 FAQ

以下问答全部来自用户社区高频提问,答案均可在官方文档中找到依据。

Q1:一定要 Node 20 吗?18 行不行?

A:官方测试矩阵显示 18 版本在部分 MCP 工具链会出现文件句柄泄漏,建议 20 或以上。

Q2:为什么我设置了环境变量还是走的 Gemini?

A:检查拼写是否正确,尤其是 USE_CUSTOM_LLM=true 不要漏掉 export,且在同一个 shell 会话里生效。

Q3:能否同时配置多个模型,随时切换?

A:CLI 层面一次只能激活一个模型。如需多模型并存,可在不同终端会话中设置不同环境变量,或写脚本动态切换。

Q4:MCP 服务器是什么?

A:MCP(Model Context Protocol)服务器是一种让大模型安全调用本地工具的协议。你可以把它理解成“插件”。例如 @antv/mcp-server-chart 就是一个画图插件。

Q5:Token 统计功能有什么用?

A:在调试超长上下文或计费模型时,可以实时看到输入输出 token 数量,避免超额。


8. 故障排查速查表

现象 可能原因 解决步骤
npx easy-llm-cli 卡住不动 网络无法访问 npm 仓库 换国内镜像 npx easy-llm-cli@latest --registry=https://registry.npmmirror.com
报错 Error: Cannot find module 'dotenv' 全局安装不完整 npm install -g easy-llm-cli 重新安装
中文显示乱码 终端编码问题 macOS/Linux: export LANG=en_US.UTF-8;Windows: chcp 65001
调用自定义模型 401 API Key 错误或额度用完 重新生成 key 并检查余额

小结

Easy LLM CLI 把大模型能力封装成了最朴素的命令行交互,既能让新手一分钟跑起来,也能让老手通过环境变量、MCP 服务器和 NPM API 玩出花。

你可以:

  • 把它当成 AI 代码审查员
  • 把它当成 自动化脚本引擎
  • 把它当成 私有模型的最轻量前端

下一步,不妨打开终端,敲下:

cd 你的项目
elc
> 帮我理解这段代码

真正的魔法,从一句话开始。