llm
一条命令调用所有主流AI模型,永久存储对话历史的终端AI瑞士军刀
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
一条命令调用所有主流AI模型,永久存储对话历史的终端AI瑞士军刀
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有过这样的经历:深夜写代码,遇到一个逻辑卡住了,想问 AI 怎么办?打开 ChatGPT 网页、复制粘贴、切换窗口……来回折腾好几分钟,思路早断了。或者你想批量处理 100 段文本,让 AI 逐一总结——难道要手动复制 100 次?
LLM 这个工具,就是来解决这个问题的。它是一个命令行工具,安装后在终端里直接敲命令,就能调用各种 AI 模型。简单到像查天气:llm "解释什么是闭包"。更强大的是,它把对话历史自动存进 SQLite 数据库,随时翻查、随时复用。
LLM 的作者是 Simon Willison,在开发者圈子里是个响当当的名字。他是 Datasette(一个开源数据探索工具)的创始人,长期活跃于 Python 数据社区。2023 年 GPT-4 发布后,他开始深度使用各类 LLM API,并逐渐意识到一个问题:现有的 AI 工具要么是网页界面(割裂感强),要么是 SDK(编程门槛高),缺少一个"刚好在终端里、随手就能用"的东西。
于是 LLM 诞生了——不是闭门造车,而是作者本人每天实际使用中打磨出来的工具。项目的 GitHub Issues 里有很多真实用户反馈,功能迭代节奏稳定。从最初的简单调用,逐步演化为支持插件、嵌入向量、工具调用等完整能力。
很多人以为"命令行调用 AI"不过是 curl 封装一层。实际上 LLM 的功能要深得多:
多模型统一接口:OpenAI GPT 系列、Anthropic Claude、Google Gemini、Meta Llama,甚至是能运行在本地的 Ollama 模型,都通过同一套命令访问。切换模型只需要加个参数:--model claude-3-5-sonnet。这意味着你可以在不同模型之间快速对比答案质量,而不需要改代码。
对话持久化:LLM 默认把所有对话存到 SQLite 数据库,包括完整的 prompt、response、token 用量、时间戳。这相当于一个永久的 AI 对话笔记本。你可以用 SQL 查询历史:"找出所有我询问 Python 错误的对话",或者导出某个主题的所有讨论。数据库 schema 清晰,还支持迁移。
嵌入向量存储:内置 llm embed 命令,可以为文本生成向量嵌入并存入集合(collection),后续用语义相似度搜索。这是 RAG(检索增强生成)的本地化实现——不需要任何外部服务,本地数据库就能跑。
工具调用(Tools):LLM 支持给模型赋予执行工具的能力,比如让它调用搜索 API、读写文件、执行代码。这不是 mock demo,而是真实可用的 Function Calling——模型的思考过程和工具执行结果都在终端可见。
插件生态:通过 pluggy 插件系统,任何包都可以注册为 LLM 插件,贡献新模型、新工具、新模板。新增一个模型只需几十行代码,不需要改核心代码库。目前官方内置了 OpenAI 模型,其他模型(Claude、Gemini、Ollama)通过第三方插件提供。
安装极度简单——pip、homebrew、pipx、uv 任选其一。配置 API Key 后立刻可用。
pip install llm
llm keys set openai
# 粘贴你的 API key
llm "你好,今天是几号?"
这是纯 CLI 工具,没有 Web 界面。适合程序员和习惯终端操作的人。如果你想图形界面,可以配合其他工具(如 Datasette 本身就可以加载 LLM 的 SQLite 对话库)。
代码结构非常清晰:
llm/cli.py(约 13 万字节):核心 CLI 入口,click 框架实现所有命令llm/models.py(约 11 万字节):模型抽象层、对话管理、响应序列化llm/default_plugins/openai_models.py:默认 OpenAI 模型插件llm/embeddings.py:向量嵌入和存储llm/parts.py:消息构造(system/user/assistant message)llm/plugins.py:pluggy 插件管理器封装架构亮点在于模型注册机制和异步支持。get_models_with_aliases() 动态收集所有已注册模型,支持同步/异步双模式。AsyncModel 和 AsyncConversation 提供了完整的异步接口,可以接入 ASGI 应用。
依赖管理用 pyproject.toml,依赖精简(click、openai、pydantic、sqlite-utils 等),没有重型 ML 框架。测试覆盖率高,测试文件分布在 tests/ 目录下,包含 cassettes(录制的 HTTP 响应)用于离线回放测试。
LLM 不是万能的。几个现实局限:
纯 CLI:没有图形界面,对于非技术用户有较高门槛。 API Key 管理:所有模型调用都需要 API Key,没有内置的免费额度或代理服务。 本地模型性能:支持 Ollama 等本地模型,但实际效果取决于你本地的硬件配置(没有 GPU 的机器跑起来会慢)。 插件质量参差:第三方插件维护状态不一,部分可能存在兼容性问题。
LLM 的出现反映了 2023-2024 年间 AI 开发者工具的一个重要趋势:AI 能力下沉到开发工作流的每个环节。从 IDE 插件(Cursor)、到 Git Hook(git.ai)、再到 CLI 工具(llm),AI 正在从"单独的产品"变成"随时可调用的基础设施"。
LLM 的 SQLite 日志设计尤其值得关注——它把 AI 对话纳入版本控制的思路,可能催生新的 AI 应用开发范式:你不再只是调用 AI,而是积累 AI 的使用数据,为后续分析和微调提供基础。
项目目前处于 Beta 阶段(v0.32a2),但核心功能已相当稳定。Apache-2.0 许可证允许商用。适合想用 AI 提升开发效率、习惯命令行操作的技术用户。
分析时间:2026-05-28 | 数据来源:GitHub API | Stars: 11,945 | License: Apache-2.0