README_ZH.md
August 5, 2026 · View on GitHub
● Open Interpreter(开放解释器)
桌面应用 | Open Interpreter (Rust) | 文档
Open Interpreter(开放解释器) 可以让大语言模型在本地运行代码和 Shell 命令(Python、JavaScript、Bash、cmd、PowerShell、Ruby、R、Java 等)。安装后,在终端中运行 interpreter,即可通过聊天机器人界面与 Open Interpreter 交互。
本软件为计算机的通用功能提供了自然语言界面:
- 创建和编辑照片、视频、PDF 等
- 控制 Chrome 浏览器进行搜索
- 绘制、清理和分析大型数据集
- ... 等
⚠️ 注意:默认情况下,代码运行前会要求您批准。
与其他工具的比较
Open Interpreter 早于许多其他 AI 编程工具,既有相似之处,也有不同之处:
- 网页聊天机器人中的代码解释器功能(OpenAI、Mistral、Grok、Gemini 等)在远程沙盒环境中运行代码,该环境为闭源且受限。文件必须单独上传,结果再下载。执行的代码通常无法访问互联网,仅限于预装软件包,容器在不活动后会过期,导致进度和数据丢失。Open Interpreter 通过在本地环境中运行来克服这些限制。它可以完全访问互联网,不受时间或文件大小限制,可以使用任何软件包或库,甚至自行安装对特定任务有用的库。
- 虽然它可以编写代码并执行 Shell 命令,类似于 Claude Code、Cursor、Devin 等编程代理,但 Open Interpreter 的重点不在于通过修补源代码文件来维护项目代码库,而更多是在持久、交互式的 REPL 式会话中完成一次性任务(更接近 Jupyter 笔记本,而非 IDE)。
- 与 OpenClaw、Hermes Agent 等不同,它通常以交互方式使用,而非作为自主代理。
- 它不是像 Claude Desktop 那样通过 MCP 工具与世界交互,而是直接运行代码片段或 Shell 命令。
- 它类似于 ShellGPT 或 cmd-ai 等自然语言 Shell 翻译器,但不局限于 Shell,并使用交互式聊天机器人界面,因此您可以在命令运行前审查、拒绝(
n)或编辑(e),并要求模型修改。 - 最接近的替代方案可能是 gptme。它支持的代码片段语言数量不多,而且最近才添加了部分 Windows 支持。
演示
Google Colab 上也提供了交互式演示
此外还有一个受 Her 启发的语音界面示例
快速开始
安装
这是由社区维护的 Open Interpreter Python 版本。
以下命令将安装 main,即默认分支(稳定基础、CI 以及移植更改的合并目标):
pip install git+https://github.com/endolith/open-interpreter.git
有关可选依赖项,请参阅我们的设置指南。
不过,对于日常使用,您可能更希望安装 classic/develop —— 这是每日维护和使用的不稳定分支,相比 main 分支有许多变化和功能,例如对推理模型、OpenRouter/DeepSeek/Qwen、网络搜索工具等的支持:
pip install git+https://github.com/endolith/open-interpreter.git@classic/develop
有关分支特有功能、模型说明和设置详情,请参阅 classic/develop README。
终端
安装后,运行 interpreter:
interpreter
Open Interpreter 默认使用 OpenAI 的 GPT-4o,并会要求您输入 API 密钥,您可以在 OpenAI API 密钥页面 获取。有关其他提供商或本地模型,请参阅下文。
Python
from interpreter import interpreter
interpreter.chat("绘制 AAPL 和 META 的标准化股价") # 执行单一命令
interpreter.chat() # 开始交互式聊天
GitHub Codespaces
在此仓库的 GitHub 页面上按下 , 键即可创建 codespace。片刻之后,您将获得一个预装 Open Interpreter 的云虚拟机环境。然后您可以直接与其交互,并自由确认其系统命令的执行,而无需担心损坏系统。
命令
交互式聊天
要在终端中开始交互式聊天,从命令行运行 interpreter:
interpreter
或者从 .py 文件中运行 interpreter.chat():
interpreter.chat()
您还可以流式传输每个数据块:
message = "我们使用的是什么操作系统?"
for chunk in interpreter.chat(message, display=False, stream=True):
print(chunk)
程序化聊天
为了更精确的控制,您可以通过 .chat(message) 直接传递消息:
interpreter.chat("为 /videos 中的所有视频添加字幕。")
# ... 将输出流式传输到终端,完成任务 ...
interpreter.chat("这些看起来不错,但你能把字幕调大一些吗?")
# ...
开始新的聊天
在 Python 中,Open Interpreter 会记录对话历史。如果您想从头开始,可以重置它:
interpreter.messages = []
保存和恢复聊天
interpreter.chat() 返回消息列表,可用于通过 interpreter.messages = messages 恢复对话:
messages = interpreter.chat("My name is Killian.") # 将消息保存到 'messages'
interpreter.messages = [] # 重置解释器("Killian" 将被遗忘)
interpreter.messages = messages # 从 'messages' 恢复聊天("Killian" 将被记住)
自定义系统消息
您可以检查并配置 Open Interpreter 的系统消息,以扩展其功能、修改权限或赋予其更多上下文。
interpreter.system_message += """
使用 -y 运行 shell 命令,这样用户就不必确认它们。
"""
print(interpreter.system_message)
更改语言模型
Open Interpreter 使用 LiteLLM 连接到托管的语言模型。
您可以通过设置 model 参数来更改模型:
interpreter --model gpt-3.5-turbo
interpreter --model claude-2
interpreter --model command-nightly
在 Python 中,在对象上设置模型:
interpreter.llm.model = "gpt-3.5-turbo"
在本地运行 Open Interpreter
终端
Open Interpreter 可以使用 OpenAI 兼容服务器在本地运行模型(LM Studio、Jan.ai、Ollama 等)。
只需使用推理服务器的 api_base URL 运行 interpreter(LM Studio 默认为 http://localhost:1234/v1):
interpreter --api_base "http://localhost:1234/v1" --api_key "fake_key"
或者,您可以通过运行以下命令使用 Llamafile,而无需安装任何第三方软件:
interpreter --local
有关更详细的指南,请参阅 Mike Bird 的这段视频
如何在后台运行 LM Studio。
- 下载 LM Studio 然后启动它。
- 选择一个模型,然后点击 ↓ Download。
- 点击左侧的 ↔️ 按钮(在 💬 下方)。
- 在顶部选择您的模型,然后点击 Start Server。
服务器运行后,您就可以开始与 Open Interpreter 对话了。
注意: 本地模式将
context_window设置为 3000,max_tokens设置为 1000。如果您的模型有不同的要求,请手动设置这些参数(见下文)。
Python
我们的 Python 包让您可以更好地控制每项设置。要复制并连接到 LM Studio,请使用以下设置:
from interpreter import interpreter
interpreter.offline = True # 禁用在线功能(例如更新检查、遥测)
interpreter.llm.model = "openai/x" # 告诉 OI 以 OpenAI 格式发送消息
interpreter.llm.api_key = "fake_key" # LiteLLM(我们用于与 LM Studio 通信)需要此参数
interpreter.llm.api_base = "http://localhost:1234/v1" # 指向任何 OpenAI 兼容服务器
interpreter.chat()
上下文窗口、最大 Token 数
您可以修改本地运行模型的 max_tokens 和 context_window(以 token 为单位)。
对于本地模式,较小的上下文窗口会使用更少的 RAM,因此如果失败或运行缓慢,我们建议尝试更短的窗口(约 1000)。请确保 max_tokens 小于 context_window。
interpreter --local --max_tokens 1000 --context_window 3000
详细模式
为帮助您检查 Open Interpreter,我们提供了用于调试的 --verbose 模式。
您可以使用标志(interpreter --verbose)激活详细模式,或在聊天过程中:
$ interpreter
...
> %verbose true <- 开启详细模式
> %verbose false <- 关闭详细模式
交互模式命令
在交互模式下,您可以使用以下命令来增强体验。以下是可用命令列表:
可用命令:
%% [command]:在系统 Shell 中运行命令(绕过 LLM)。%verbose [true/false]:切换详细模式。无参数或使用true时进入详细模式。使用false时退出详细模式。%auto_run [true/false]:切换代码是否无需确认即可运行。无参数或使用true时进入 auto_run 模式。使用false时退出 auto_run 模式。%reset:重置当前会话的对话。%undo:从消息历史中移除上一条用户消息和 AI 的回复。%save_message [path]:将消息保存到指定的 JSON 路径。如果未提供路径,默认为 'messages.json'。%load_message [path]:从指定的 JSON 路径加载消息。如果未提供路径,默认为 'messages.json'。%tokens [prompt]:(实验性)计算将作为上下文随下一条提示发送的 token 数并估算其成本。如果提供了prompt,还可选计算该提示的 token 数和估算成本。估算成本依赖 LiteLLM 的cost_per_token()方法。%jupyter:将对话导出为 Jupyter 笔记本文件。%markdown [path]:将对话导出到指定的 Markdown 路径。如果未提供路径,将保存到 Downloads 文件夹并使用生成的对话名称。%info:显示系统和解释器信息。%help:显示帮助消息。
配置 / 配置文件
Open Interpreter 允许您使用 yaml 文件设置默认行为。
这提供了一种灵活的配置方式,无需每次都更改命令行参数。
运行以下命令打开配置文件目录:
interpreter --profiles
您可以在那里添加 yaml 文件。默认配置文件名为 default.yaml。
多个配置文件
Open Interpreter 支持多个 yaml 文件,让您可以轻松切换配置:
interpreter --profile my_profile.yaml
示例 FastAPI 服务器
Open Interpreter 可以通过 HTTP REST 端点进行控制:
# server.py
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
from interpreter import interpreter
app = FastAPI()
@app.get("/chat")
def chat_endpoint(message: str):
def event_stream():
for result in interpreter.chat(message, stream=True):
yield f"data: {result}\n\n"
return StreamingResponse(event_stream(), media_type="text/event-stream")
@app.get("/history")
def history_endpoint():
return interpreter.messages
pip install fastapi uvicorn
uvicorn server:app --reload
您还可以通过运行 interpreter --server 启动带有 WebSocket 支持和 Web UI 的内置服务器(需要 [server] 额外依赖)。
Android
在 Android 设备上安装 Open Interpreter 的分步指南可在 open-interpreter-termux 仓库 中找到。
安全提示
由于生成的代码在本地环境中执行,它可以与您的文件和系统设置交互,可能导致数据丢失或安全风险等意外结果。
⚠️ Open Interpreter 会在执行代码前要求用户确认。
您可以运行 interpreter -y 或设置 interpreter.auto_run = True 来绕过此确认,在这种情况下:
- 在请求修改文件或系统设置的命令时要谨慎。
- 像关注自动驾驶汽车一样关注 Open Interpreter,并随时准备通过关闭终端来结束进程。
- 考虑在 Google Colab 或 Replit 等受限环境中运行 Open Interpreter。这些环境更加隔离,降低了执行任意代码的风险。
对 安全模式 有实验性支持,有助于降低某些风险。
它是如何工作的?
Open Interpreter 为函数调用语言模型配备了 execute 工具,该工具接受 language(如 "Python" 或 "JavaScript")和要运行的 code。(不支持函数调用的模型也可通过 Markdown 代码块使用。)
然后,我们将模型的消息、代码和您系统的输出以 Markdown 形式流式传输到终端。
离线访问文档
完整的文档可在没有互联网连接的情况下随时访问。
Node 是前提条件:
- 版本 18.17.0 或任何更新的 18.x.x 版本。
- 版本 20.3.0 或任何更新的 20.x.x 版本。
- 任何从 21.0.0 开始的版本,无上限。
安装 Mintlify:
npm i -g mintlify@latest
进入 docs 目录并运行相应命令:
# 假设您位于项目根目录
cd ./docs
# 运行文档服务器
mintlify dev
应该会打开一个新的浏览器窗口。只要文档服务器在运行,文档将在 http://localhost:3000 上可用。
贡献
感谢您对贡献的兴趣!我们欢迎社区的参与。
请参阅我们的贡献准则,了解如何参与的更多详情。
路线图
访问我们的路线图以预览 Open Interpreter 的未来。
请注意:此软件与 OpenAI 无关。
拥有一位以指尖速度工作的初级程序员 ... 可以让新的工作流程变得轻松高效,并将编程的好处带给新的受众。
— OpenAI 的 Code Interpreter 发布