终端AI工具箱
Open Interpreter 使用教程
让 AI 理解你的自然语言指令,自动生成并执行代码来完成实际任务。
不再需要手动搜索命令或脚本——你只管描述需求,AI
帮你写代码、跑命令、出结果。
📖 目录
本教程共 9 章 + 附录,从入门到精通,循序渐进。
本教程适合你吗?
如果你符合以下任一情况,这篇教程就是为你写的:
- 你经常需要在电脑上执行重复性操作(批量改文件、整理数据、爬取网页)
- 你会写一点 Python/Shell,但懒得每次从头写脚本
- 你想让 AI 直接帮你操作电脑,而不只是"聊天"
- 你是数据分析师、产品经理、运营,需要快速处理数据但不想学编程
- 你想对比一下哪个终端 AI 工具最实用
如果你是这样的:
- 从没打开过命令行 → 建议先学一下
cd/ls基础命令再回来看 - 完全不想碰代码 → Open Interpreter 本质是帮你写代码运行,全自动但偶尔需要你确认
- 只想聊天不想干活 → 这个工具不是用来聊天的,ChatGPT 网页版更适合你
💡 如果你只有 3 分钟: 直接跳到第二章,安装 → 配 Key → 跑第一条指令。5 分钟就能让你体验到"用自然语言控制电脑"的感觉。
第一章 认识 Open Interpreter
🎯 本章目标: 了解 Open Interpreter 是什么、能干什么、和别的工具有什么区别,判断它是否适合你。
1.1 什么是 Open Interpreter
Open Interpreter 是一个开源的自然语言计算机接口。与 ChatGPT 网页版不同,Open Interpreter 跑在你的本地电脑上,通过调用大语言模型(LLM)的理解能力,将你的自然语言指令转换成代码并立即在你的电脑上执行。
它的核心工作方式是:
- 你用中文描述你想做的事情:“把 Downloads 文件夹里所有 .jpg 文件重命名为 ‘照片_001.jpg’ 格式”
- Open Interpreter 调用 LLM 理解你的意图,生成对应的 Python/Shell 代码
- 在你的本地环境中运行这些代码
- 把执行结果返回给你
# Open Interpreter 不是这样的(纯对话):
你:帮我写一个重命名脚本
AI:好的,这里是一个 Python 脚本,你保存后运行...
#Open Interpreter 是这样的(直接执行):
你:把 Downloads 里所有 .jpg 按日期重命名
AI:让我看看 Downloads 文件夹...
运行结果:已重命名 23 个文件 ✅💡 一句话概括: 一个能听懂人话、并且直接动手帮你操作电脑的命令行工具。
Open Interpreter 基于 AGPL-3.0 协议开源,由 OpenInterpreter 团队维护(创始人 Killian Lucas)。项目在 GitHub 上有 63,000+ Star,是终端 AI 领域最知名的工具之一。
⚠️ 重要: Open Interpreter 本身不包含大语言模型。它需要对接外部 LLM 服务(如 OpenAI GPT-4o、Anthropic Claude 等)或本地模型(通过 Ollama/LM Studio)。你需要准备 API Key 或搭建本地模型环境。
1.2 谁需要它
| 人群 | 典型场景 | 为什么用 Open Interpreter |
|---|---|---|
| 开发者 | 批量文件处理、代码审查、日志分析 | 不用手写脚本,AI 自动完成 |
| 数据分析师 | CSV/Excel 处理、可视化图表生成 | 不用记 pandas 语法,自然语言搞定 |
| 运维工程师 | 服务器管理、日志分析、监控脚本 | 快速生成运维工具,减少重复劳动 |
| 产品经理 | 数据导出、爬虫、报表生成 | 不用求开发,自己动手 |
| 运营 | 批量改名、内容整理、格式转换 | 繁琐操作一句话完成 |
| 普通用户 | PDF 批量操作、图片处理、下载整理 | 不用学编程,用话控制电脑 |
1.3 对比其他终端 AI 工具
| 特性 | Open Interpreter | Hermes Agent | Claude Code | Codex CLI |
|---|---|---|---|---|
| 核心定位 | 自然语言→代码执行 | 全能 AI 助手 | 代码编辑器增强 | AI 编程助手 |
| 主要用途 | 让 AI 替你操作电脑 | 通用问答 & Agent | 在 IDE 里写代码 | 命令行里写代码 |
| 代码执行 | ✅ 自动生成并运行 | ❌ 需要手动复制 | ✅ 内嵌执行 | ✅ 内嵌执行 |
| 本地模型 | ✅ 支持 Ollama/LM Studio | ❌ 仅云端 API | ❌ 仅云端 API | ❌ 仅云端 API |
| 多平台消息网关 | ❌ | ✅ 15+ 平台 | ❌ | ❌ |
| 技能/自动化 | ❌ 需自定义函数 | ✅ 技能系统 + Cron | ❌ | ❌ |
| 图形界面操作 | ✅ –os 模式 | ❌ | ❌ | ❌ |
| Docker 沙箱 | ✅ 推荐使用 | ❌ | ❌ | ❌ |
| Python API | ✅ 完备 | ✅ 有限 | ❌ | ❌ |
| 安装复杂度 | ⭐ pip install | ⭐⭐ 较复杂 | ⭐⭐ 需 npm | ⭐⭐ 需 npm |
一句话选择指南:
- 想让 AI 直接帮你操作电脑(跑代码、处理文件、分析数据)→ Open Interpreter
- 想要一个全能的终端 AI 助手(聊天 + 技能 + 多平台接入)→ Hermes Agent
- 主要用来写代码、审查 PR → Claude Code / Codex CLI
1.4 核心功能总览
| 功能 | 说明 |
|---|---|
| 自然语言→代码执行 | 用中文描述需求,AI 自动生成并运行代码 |
| 多语言执行 | Python、Shell、JavaScript、PowerShell 等(通过 Jupyter 内核) |
| 多模型支持 | OpenAI / Anthropic / Ollama / LM Studio / Groq 等数十种 |
| 本地模型 | 通过 Ollama / LM Studio 连接本地运行的模型 |
| 安全控制 | 代码执行前询问确认 / 自动扫描危险代码 |
| 快速模式 | --fast 用 GPT-4o-mini,更便宜更快速 |
| 本地模式 | --local 一键配置本地模型 |
| 计算机控制 | --os 模式控制鼠标键盘(实验功能) |
| YAML 配置文件 | 持久化配置,一键切换场景 |
| FastAPI 服务 | 以 HTTP API 方式提供服务 |
| Python API | 以库形式集成到你的代码中 |
| 对话管理 | 保存/恢复对话历史 |
| 聊天语音输出 | macOS 下语音朗读回复 |
| 自定义指令 | 设置 AI 的行为风格和限制 |
| 自定义函数 | 注册自己的 Python 函数供 AI 调用 |
1.5 系统要求
最低要求:
- Python 3.9 或更高版本
- pip(Python 包管理器)
- 稳定的网络连接(云端模型需要)或本地 GPU(本地模型需要)
推荐:
- Python 3.11+(性能最佳)
- 8GB+ 内存
- macOS / Linux / Windows(WSL2 或 PowerShell 原生)
- 安装 Docker(推荐用于沙箱运行)
支持的平台:
- macOS 12+(Intel / Apple Silicon)
- Linux(Ubuntu 20.04+,CentOS 7+,Debian 11+)
- Windows(WSL2 Ubuntu 最佳,PowerShell 原生也可)
- Docker 容器(适用于所有平台)
一些需要了解的基础概念:
- API Key:模型服务商给你的"密码",Open Interpreter 用它来调用模型。通常是
sk-开头的一串字符 - Provider:模型提供商,比如 OpenAI、Anthropic、DeepSeek
- 虚拟环境:隔离 Python 依赖的沙箱,避免和其他软件冲突。教程中统一使用
~/oi-env - 交互模式:启动 interpreter 后进入的对话界面,出现
>提示符,可以连续对话 - 单次执行:直接传指令参数执行一次就退出,不进入交互模式
第二章 快速上手(5分钟)
🎯 本章目标: 5 分钟内跑通 Open Interpreter,验证安装成功。
2.1 安装 Open Interpreter
打开终端,执行:
pip install open-interpreter安装完成后验证:
interpreter --version
输出示例:Open Interpreter 0.4.3 Developer Preview
💡 提示: 如果你同时安装有多个 Python 版本,确保使用正确的 pip。macOS/Linux 用户建议使用
pip3代替pip。
2.2 配置第一个 API Key
Open Interpreter 默认使用 OpenAI GPT-4o。你需要一个 OpenAI API Key。
获取 OpenAI API Key:
- 访问 https://platform.openai.com/api-keys
- 登录或注册 OpenAI 账号
- 点击「Create new secret key」
- 复制生成的 Key(以
sk-开头)
💡 国内用户提示: OpenAI 在国内无法直接访问。你可以: - 使用 API 中转服务(如 aigeek.life、API2D 等) - 使用国产模型 API(DeepSeek、通义千问等) - 使用本地模型(Ollama)——见第四章
推荐方式:环境变量配置
export OPENAI_API_KEY="sk-你的API-KEY"
#使用中转地址的还需要设置 API Base
export OPENAI_API_BASE="https://你的中转地址/v1"将以上命令加入你的 shell 配置文件(~/.zshrc 或
~/.bashrc)中永久生效:
echo 'export OPENAI_API_KEY="sk-你的API-KEY"' >> ~/.zshrc
source ~/.zshrc2.3 运行第一条指令
在终端中输入:
interpreter首次启动会显示欢迎信息和连接到 OpenAI
的确认。终端进入交互模式后(出现 >
提示符),输入你的第一个指令:
AI 会生成对应的 Python 代码并询问是否执行(安全确认):
# AI 生成的代码
with open('/Users/你的用户名/Desktop/hello-oi.txt', 'w') as f:
f.write('Hello from Open Interpreter!')输入 y 确认执行。查看桌面——文件已创建 ✅
💡 这就完成了! 你用一句话就创建了一个文件,而不用打开编辑器、写代码、保存。这就是 Open Interpreter 的核心价值。
2.4 三个必做检查
检查 1:电脑基本信息查询
在交互模式中输入:
AI 会执行系统命令,返回你的电脑配置信息。
检查 2:文件操作测试
检查 3:退出交互模式
# 输入以下内容退出(三选一):
exit
#或按 Ctrl+C
或输入 /exit
✅ 恭喜!Open Interpreter 安装配置成功,可以正常使用了。
第三章 安装指南(全平台)
🎯 本章目标: 在任意平台上完成 Open Interpreter 的安装,并验证运行正常。
3.1 环境准备
所有平台通用的前置准备:
- 安装 Python 3.9+
检测你的 Python 版本:
python3 --version
期望输出:Python 3.9.x 或更高
如果没有安装或版本太低,按系统安装:
# macOS
brew install python@3.11
#Ubuntu / Debian
sudo apt updatesudo apt install python3 python3-pip python3-venv -y
#Windows (WSL2)
sudo apt updatesudo apt install python3 python3-pip python3-venv -y- 安装 pip(Python 包管理器)
# macOS / Linux
python3 -m ensurepip --upgrade
#或
python3 -m pip install --upgrade pip3.2 macOS 安装
第一步:安装 Homebrew(如果没有)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"第二步:安装 Python 3.11
brew install python@3.11第三步:创建虚拟环境(推荐)
# 创建项目目录和虚拟环境
mkdir -p ~/oi-env
python3.11 -m venv ~/oi-env
source ~/oi-env/bin/activate第四步:安装 Open Interpreter
pip install open-interpreter第五步:配置永久可用(可选)
将下面命令添加到 ~/.zshrc 中,方便一键启动:
alias oi='source ~/oi-env/bin/activate && interpreter'然后执行 source ~/.zshrc 使配置生效。
💡 使用提示: 以后每次只需要在终端输入
oi即可启动。
3.3 Linux 安装
Ubuntu / Debian:
sudo apt update
sudo apt install python3 python3-pip python3-venv -y
#创建虚拟环境
python3 -m venv ~/oi-env
source ~/oi-env/bin/activate
#安装 Open Interpreter
pip install open-interpreterCentOS / Rocky Linux / RHEL:
sudo yum install python3 python3-pip -y
#创建虚拟环境
python3 -m venv ~/oi-env
source ~/oi-env/bin/activate
#更新 pip 后安装
pip install --upgrade pip
pip install open-interpreter配置永久别名:
echo 'alias oi="source ~/oi-env/bin/activate && interpreter"' >> ~/.bashrc
source ~/.bashrc3.4 Windows 安装
Open Interpreter 在 Windows 上支持两种运行方式:
方式 A:WSL2 安装(推荐)
WSL2(Windows Subsystem for Linux)是 Windows 下的 Linux 子系统,兼容性最好。
第一步:安装 WSL2
以管理员身份打开 PowerShell,执行:
wsl --install -d Ubuntu重启电脑后,WSL2 会自动完成安装。
第二步:在 WSL2 终端中安装
启动 Ubuntu 终端后:
sudo apt update
sudo apt install python3 python3-pip python3-venv -y
python3 -m venv ~/oi-env
source ~/oi-env/bin/activate
pip install open-interpreter第三步:快捷启动(在 PowerShell 中直接进入 WSL 并启动)
创建一个 oi.bat 文件放在桌面:
双击即可启动。
方式 B:Windows 原生 PowerShell(实验性)
Open Interpreter 也支持原生 Windows(无需 WSL),但目前为实验性支持。
# 以管理员身份打开 PowerShell
python -m venv $env:USERPROFILE\oi-env
$env:USERPROFILE\oi-env\Scripts\activate
pip install open-interpreter
interpreter⚠️ 注意: 原生 Windows 模式下,Shell 命令使用 PowerShell 语法。部分功能(如
--os模式)可能不完全兼容。如果你需要完整功能,建议使用 WSL2。
3.5 Docker 安装
如果你不想在本地安装 Python 和依赖包,或希望在隔离环境中运行 Open Interpreter,可以使用 Docker。
# 拉取官方镜像(基于 Python 3.11)
docker pull python:3.11-slim
#创建 Docker 容器并安装 Open Interpreter
docker run -it --name oi \
-v $(pwd):/workspace \
-e OPENAI_API_KEY="sk-你的KEY" \
python:3.11-slim \
/bin/bash -c "pip install open-interpreter && interpreter"💡 Docker 的优势: 即使代码出现问题,也不会损害你本机的系统文件。所有文件更改限制在容器内部。
挂载本地目录方便文件交换:
# 将当前目录挂载到 /workspace,容器和宿主机共享文件
docker run -it --rm \
-v $(pwd):/workspace \
-w /workspace \
-e OPENAI_API_KEY="sk-你的KEY" \
python:3.11-slim \
/bin/bash -c "pip install open-interpreter && interpreter"3.6 验证安装完成
无论你用哪种方式安装,执行以下命令验证安装:
interpreter --version
#输出示例:Open Interpreter 0.4.3 Developer Preview
interpreter --help
输出应显示所有可用的命令行参数
如果看到版本号,安装成功。如果报错
command not found,说明 Python 的 bin 目录没有加入
PATH。解决方法:
# 虚拟环境激活后重新安装
source ~/oi-env/bin/activate # macOS/Linux
#或 Windows: oi-env\Scripts\activate
pip install open-interpreter
#然后用完整路径运行
~/oi-env/bin/interpreter --version第四章 配置详解
🎯 本章目标: 掌握 Open Interpreter 的各种配置方式,选择最适合你的模型和方案。
4.1 选择模型提供商
Open Interpreter 使用 LiteLLM 作为底层模型网关,支持 100+ 种模型的接入。下表列出最常用的选项:
| 提供商 | 推荐模型 | 费用 | 速度 | 适用场景 |
|---|---|---|---|---|
| OpenAI | GPT-4o(默认) | 中等 | 快 | 通用场景,效果最好 |
| OpenAI | GPT-4o-mini(–fast) | 极低 | 极快 | 日常简单任务 |
| Anthropic | Claude 3.5 Sonnet | 中等 | 快 | 代码生成最优,–os 模式必备 |
| Ollama | 本地模型(如 Qwen2.5) | 免费 | 看硬件 | 离线使用,隐私保护 |
| LM Studio | 本地模型 | 免费 | 看硬件 | 本地推理,GUI 管理 |
| Groq | Mixtral / Llama3 | 极低 | 极快 | 高吞吐量场景 |
| DeepSeek | DeepSeek V3 | 极低 | 中等 | 性价比高,国内用户友好 |
| 通义千问 | Qwen-Max | 中等 | 中等 | 国内用户,速度快 |
4.2 获取 API Key
OpenAI API Key(默认方案):
- 访问 https://platform.openai.com 并注册账号
- 进入 API Keys 页面:https://platform.openai.com/api-keys
- 点击「Create new secret key」
- 复制 Key(以
sk-开头) - 注意:新账号有 $5 免费额度
Anthropic API Key(推荐用于代码生成):
- 访问 https://console.anthropic.com
- 注册账号并登录
- 进入 API Keys 页面
- 创建 Key(以
sk-ant-开头)
DeepSeek API Key(国内用户首选):
- 访问 https://platform.deepseek.com
- 注册中国手机号
- 进入 API Keys 页面创建 Key
- 充值(¥10 起,非常耐用)
- DeepSeek 的价格约为 OpenAI 的 1/20
Groq API Key(免费高速方案):
- 访问 https://console.groq.com
- 注册账号
- 创建 API Key(免费额度非常充足)
4.3 配置到 Open Interpreter(四种方式)
方式 1:环境变量(推荐)
# OpenAI
export OPENAI_API_KEY="sk-你的KEY"
#如果使用中转地址
export OPENAI_API_BASE="https://你的中转地址/v1"
#如果使用 Anthropic
export ANTHROPIC_API_KEY="sk-ant-你的KEY"
#如果使用 DeepSeek
export DEEPSEEK_API_KEY="sk-你的KEY"
export DEEPSEEK_API_BASE="https://api.deepseek.com/v1"
#如果使用 Groq
export GROQ_API_KEY="gsk-你的KEY"将对应的 export 命令加到 ~/.zshrc(macOS)或
~/.bashrc(Linux)中永久生效。
方式 2:命令行参数
# 直接用 API Key 启动(不设环境变量时)
interpreter --api_key "sk-你的KEY"
#使用自定义 API Base
interpreter --api_base "https://你的中转地址/v1"
#指定模型
interpreter --model "gpt-4o"
interpreter --model "anthropic/claude-sonnet-4-20250514"
interpreter --model "deepseek/deepseek-chat"
#组合使用
interpreter --model "gpt-4o" --api_key "sk-你的KEY" --temperature 0.3方式 3:YAML Profile 文件(推荐长期使用)
这是最推荐的方式——你把所有配置写到一个 YAML 文件中,启动时指定文件名即可。
创建默认 Profile:
# 打开 profiles 目录
interpreter --profiles这会在你的系统上打开 profiles 文件夹(macOS 下是
~/.config/open-interpreter/profiles/)。
创建一个自定义 Profile 文件
my-config.yaml:
# 文件名: my-config.yaml
model: gpt-4o
api_key: sk-你的KEY
temperature: 0.2
max_output: 2500
auto_run: false
safe_mode: ask
custom_instructions: 你是一个专业的编程助手,用中文回答,代码优先使用 Python3。使用自定义 Profile:
interpreter --profile my-config.yaml方式 4:Python API 配置
from interpreter import interpreter
interpreter.llm.model = "gpt-4o"
interpreter.llm.api_key = "sk-你的KEY"
interpreter.llm.api_base = "https://你的中转地址/v1"
interpreter.auto_run = True
interpreter.custom_instructions = "请使用中文回答"
interpreter.chat("帮我分析这个CSV文件")4.4 本地模型部署
这是 Open Interpreter 最独特的功能之一——可以不联网、不花钱、隐私完全自控。
方案 A:Ollama(最简单)
安装 Ollama:
# macOS
brew install ollama
#Linux
curl -fsSL https://ollama.com/install.sh | sh
#Windows
从 https://ollama.com/download 下载安装包
下载并运行模型:
# 拉取 Qwen2.5(7B 参数,中文表现优秀,推荐)
ollama pull qwen2.5:7b
#拉取 Llama 3.1(英文好)
ollama pull llama3.1:8b
#启动 Ollama 服务(新终端窗口)
ollama serve💡 推荐选择: 对于中文用户,Qwen2.5 7B(通义千问最新版)是最佳选择。7B 模型在 8GB 内存的 MacBook 上也能流畅运行。
在 Open Interpreter 中使用 Ollama 模型:
# 方式 A:使用 --local 快捷方式(自动扫描本地模型)
interpreter --local
#方式 B:手动指定模型
interpreter --model "ollama/qwen2.5:7b" --api_base "http://localhost:11434"
#方式 C:使用 Profile
interpreter --profile local首次运行 --local 时,Open Interpreter
会扫描你的本地模型列表并进入交互模式。
⚠️ 注意: 本地模型的效果与云端 GPT-4o 有差距。7B 模型适合简单任务(文件操作、Shell 命令),复杂代码生成建议用云端模型。简单任务的准度约为云端 GPT-4o 的 70-80%。
方案 B:LM Studio(图形化)
LM Studio 提供了一个 GUI 界面来管理和运行本地模型,适合不习惯命令行的用户。
安装 LM Studio:
- 访问 https://lmstudio.ai
- 下载对应系统的安装包
- 安装并打开应用
配置步骤:
- 在 LM Studio 中搜索并下载模型(如 Qwen2.5-7B-Instruct-GGUF)
- 加载模型
- 启动本地推理服务器(点击「Start Server」按钮,默认端口 1234)
在 Open Interpreter 中连接:
interpreter --model "gpt-4o" --api_base "http://localhost:1234/v1"💡 小技巧: 虽然指定了
--model gpt-4o,但实际请求会发到你的本地服务器。Open Interpreter 将这个参数用于决定代码生成策略。LM Studio 服务器兼容 OpenAI API 格式。
4.5 快捷配置模式
Open Interpreter 内置了几个快捷配置,一键切换场景:
# 快速模式:使用 GPT-4o-mini,便宜快速
#适合日常简单任务、调试、测试
interpreter --fast
#本地模式:自动检测并配置本地模型
#适合离线使用、隐私敏感场景
interpreter --local
#Groq 模式:使用 Groq 免费高速 API
#适合大批量任务,延迟极低
interpreter --groq
#视觉模式:启用图片理解能力
#适合分析图表、截图、图片内容
interpreter --vision
#计算机控制模式:控制鼠标键盘
#适合自动化 GUI 操作(实验功能)
interpreter --os4.6 国内网络配置
由于 OpenAI 和 Anthropic 在国内被屏蔽,国内用户需要用以下替代方案。
方案 A:使用国产模型 API(推荐 DeepSeek)
# 配置 DeepSeek(最推荐,价格极低)
export DEEPSEEK_API_KEY="sk-你的DeepSeekKey"
interpreter --model "deepseek/deepseek-chat"
#使用 通义千问
export DASHSCOPE_API_KEY="sk-你的通义Key"
interpreter --model "qwen/qwen-max"方案 B:使用 API 中转服务
选择一家稳定的 API 中转站,设置自定义 API Base:
export OPENAI_API_KEY="sk-中转站给你的Key"
export OPENAI_API_BASE="https://中转站地址/v1"
interpreter⚠️ 注意: 选择中转服务时注意甄别: - 选择有稳定运营历史的服务商 - 不要购买超低价套餐(可能是盗刷卡) - 优先选择支持模型列表兼容(/v1/models 接口)的中转站 - 建议首次小额充值测试
方案 C:本地模型离线使用(完全不需要网络)
# 安装 Ollama,下载中文模型,完全离线使用
ollama pull qwen2.5:7b
interpreter --model "ollama/qwen2.5:7b" --api_base "http://localhost:11434" --offline--offline
参数禁用联网功能,确保所有请求只在本地处理。
第五章 日常使用
🎯 本章目标: 掌握 Open Interpreter 的各种使用方式,成为日常高效工具。
5.1 交互模式与魔法命令
启动交互模式:
# 直接启动(默认使用环境变量中的 API Key)
interpreter
#指定模型启动
interpreter --model gpt-4o --temperature 0.1交互模式下的基本操作:
魔法命令(在交互模式中可用):
| 命令 | 功能 | 示例 |
|---|---|---|
%verbose [true/false] |
开启/关闭详细输出(显示 AI 思考过程) | %verbose true |
%reset |
清空对话历史 | %reset |
%undo |
撤销上一条消息 | %undo |
%tokens [prompt] |
计算 token 用量和费用 | %tokens 请帮我分析这份报告 |
%help |
查看魔法命令帮助 | %help |
多行输入:
用三个双引号包裹多行内容:
退出交互模式:
# 任一方式均可退出
exit
#或 /exit
#或 Ctrl+C
或 Ctrl+D
5.2 单次执行模式(One-Shot)
不需要进入交互模式,直接在命令行中一句话完成任务:
# 基本用法:interpreter 后面直接跟指令
interpreter "查看我的 Python 版本"
#执行完毕后自动退出
interpreter "列出当前目录下的所有文件,按大小排序"
#配合管道使用
echo "帮我找出最大的 3 个文件" | interpreter
#复杂指令要用引号包裹
interpreter "下载 https://example.com/data.csv 到 Downloads 文件夹"这个模式非常适合与 shell 脚本、cron 定时任务、自动化流程集成。
批量执行脚本:
#!/bin/bash
#文件名:daily-report.sh
#每天早上自动运行
interpreter "查看 /var/log/system.log 中昨天的错误信息,汇总到 ~/Desktop/daily-error-report.txt"5.3 安全机制详解
Open Interpreter 可以在你的电脑上执行代码,因此安全机制非常重要。
代码执行审批模式
默认模式(每次询问):
每次 AI 要执行代码时,都会先显示代码内容并询问你:
以下代码将在你的电脑上执行
import os files = os.listdir('.') for f in files: print(f) 是否运行此代码?(y/n) (y=运行,n=取消,Ctrl+C=中断操作)y= 确认执行n= 跳过此段代码- 直接回车 = 默认 n
自动执行模式(危险,请谨慎使用):
interpreter -y
#或
interpreter --auto_run启用后,AI 生成的代码会直接执行,不会询问你。这提高了效率但增加了风险。
⚠️ 安全警告: 永远不要在你不信任的 AI 模型上使用
-y模式。虽然 OpenAI/Anthropic 的模型生成恶意代码的概率极低,但作为良好习惯,建议始终先审查要执行的代码。
Safe Mode(代码安全扫描)
需要额外安装安全组件:
pip install open-interpreter[safe]Safe Mode 使用 semgrep 检测代码中的危险模式:
| 级别 | 行为 |
|---|---|
off(默认) |
不扫描,正常执行 |
ask |
扫描代码,发现危险时询问用户 |
auto |
自动阻止危险代码执行 |
interpreter --safe_mode ask沙箱建议
对于不信任的任务,建议在 Docker 或虚拟机中运行 Open Interpreter。详见第八章。
💡 黄金安全法则: 先看 AI 生成的代码,确认没有删除系统文件、读取敏感信息、安装不明软件的动作后,再确认执行。就像你让实习生帮忙操作电脑,要看着他做事。
5.4 对话历史管理
Open Interpreter 会自动保存对话历史,方便回溯。
查看和恢复历史对话:
# 列出所有保存的对话
interpreter --conversations
#选择要恢复的对话(交互式列表)
选择后继续对话
手动管理对话:
# 对话文件存储在:
#macOS/Linux: ~/.config/open-interpreter/conversations/
#Windows: %USERPROFILE%\.config\open-interpreter\conversations\
ls ~/.config/open-interpreter/conversations/清空对话:
# 删除所有对话文件
rm -rf ~/.config/open-interpreter/conversations/*
或在交互模式中使用 %reset
5.5 FastAPI 服务模式
Open Interpreter 可以以 HTTP API 服务的方式运行,让你通过网络调用它的能力。
# 启动 API 服务器
interpreter --server
#默认监听 http://localhost:8000
#可用端点:
#GET /chat?message=你的指令 (流式返回 SSE)
GET /history (查看历史消息)
Python 客户端调用示例:
import requests
import json
#发送请求
response = requests.get(
"http://localhost:8000/chat",
params={"message": "查看我的磁盘使用情况"},
stream=True
)
#流式输出结果
for line in response.iter_lines():
if line:
print(line.decode('utf-8'))💡 适用场景: 把 Open Interpreter 作为一个后台服务运行,然后通过其他工具(如 Slack Bot、Web 界面、手机 App)调用它。
5.6 Python API 集成
将 Open Interpreter 作为 Python 库集成到你的项目中。
基础用法:
from interpreter import interpreter
#设置模型
interpreter.llm.model = "gpt-4o"
#单次调用
result = interpreter.chat("查看我的当前目录")
print(result)
#流式输出
for chunk in interpreter.chat("分析 data.csv 的数据", stream=True):
print(chunk)
#重置对话
interpreter.messages = []
#交互模式(阻塞)
interpreter.chat()配置对象属性:
from interpreter import interpreter
#完整配置示例
interpreter.llm.model = "gpt-4o"
interpreter.llm.api_key = "sk-你的KEY"
interpreter.llm.api_base = "https://你的中转地址/v1"
interpreter.llm.max_tokens = 4096
interpreter.llm.context_window = 128000
interpreter.llm.temperature = 0.2
interpreter.auto_run = True
interpreter.offline = False
interpreter.verbose = True
#自定义指令
interpreter.custom_instructions = """
你是一个运维助手,擅长 Linux 系统管理。
每次执行命令前,解释一下你要做什么。
使用中文回答。
"""
#启动交互
interpreter.chat()异步版本(用于 Web 服务):
from interpreter import AsyncInterpreter
import asyncio
async def main():
interpreter = AsyncInterpreter()
interpreter.llm.model = "gpt-4o"
interpreter.auto_run = True
async for chunk in interpreter.chat("查看系统负载", stream=True):
print(chunk)
asyncio.run(main())第六章 实战场景(付费核心价值)
🎯 本章目标: 通过 8 个真实场景,让你看到 Open Interpreter 在实际工作中的价值。
场景 1:批量文件处理
痛点: 手动重命名 100 个文件、转换格式、整理文件夹——重复劳动且容易手滑。
用 Open Interpreter:
进入交互模式后输入:
更多批量操作示例:
场景 2:数据分析与可视化
痛点: 面对 CSV 数据想快速了解、画个图,但要写 pandas + matplotlib 代码。
用 Open Interpreter:
更多数据分析示例:
场景 3:网页爬虫与信息抽取
痛点: 想从网站获取数据,但写爬虫麻烦,网站经常改版。
用 Open Interpreter:
更多爬虫示例:
⚠️ 合规提醒: 爬取网站数据前请检查该网站的 robots.txt 和使用条款。仅用于个人学习和研究。
场景 4:Excel/CSV 自动化处理
痛点: Excel 操作重复耗时,公式复杂难记,VBA 不会写。
用 Open Interpreter:
💡 额外福利: Open Interpreter 使用 pandas 处理数据,可以处理百万行级别的大文件,比 Excel 快得多。
场景 5:PDF 批量操作
痛点: PDF 合并、拆分、提取页面、转文字,需要单独的工具。
用 Open Interpreter:
场景 6:运维脚本与系统管理
痛点: 临时要查系统状态、清理磁盘、监控日志,记不住命令。
用 Open Interpreter:
场景 7:代码审查与重构
痛点: 看别人的代码需要花很多时间,或者自己的代码想优化。
用 Open Interpreter:
场景 8:调用外部 API 获取数据
痛点: 想用某个 API 服务但不想写 HTTP 请求代码。
用 Open Interpreter:
💡 场景汇总: 以上 8 个场景覆盖了日常工作中 80% 的重复操作。Open Interpreter 的价值在于——你不用再为每个小需求写独立脚本,一句话就能完成。
第七章 高级功能
🎯 本章目标: 掌握 Open Interpreter 的高级用法,提升效率到新层次。
7.1 自定义指令(System Message)
你可以通过自定义指令(Custom Instructions)来设定 AI 的行为风格、技术偏好和限制。这是提升 AI 输出质量最直接的方式。
CLI 方式:
interpreter --custom_instructions "请始终使用 Shell 命令而非 Python 执行系统操作,代码执行前先解释作用"Python API 方式:
from interpreter import interpreter
interpreter.custom_instructions = """
你是我的专业编程助手。
规则:
1. 所有代码用 Python 3 编写
2. 文件操作时先用 os.path 检查路径是否存在
3. 安装库前先检查是否已安装
4. 每次生成代码后,简要说明代码的作用
5. 使用中文回答
6. 优先使用标准库,避免不必要的第三方依赖
"""
interpreter.chat()Profile 方式(推荐长期使用):
# my-assistant.yaml
model: gpt-4o
temperature: 0.1
auto_run: false
custom_instructions: |
你是专业的 DevOps 助手。
1. 优先使用 Shell 命令而非 Python
2. 所有关键操作前先检查状态
3. 使用中文回答
4. 如果某个操作有风险,先发出警告interpreter --profile my-assistant.yaml7.2 YAML 配置 Profile
Profile 是 YAML 配置文件,存储你的一整套配置,使用
--profile 参数切换。
Profile 存储位置:
# 查看并打开 profiles 目录
interpreter --profiles默认路径: - macOS/Linux:
~/.config/open-interpreter/profiles/ - Windows:
%USERPROFILE%\.config\open-interpreter\profiles\
完整 Profile 示例:
# 文件名: coding-assistant.yaml
model: gpt-4o
temperature: 0.1
max_tokens: 4096
context_window: 128000
max_output: 2500
api_base: https://api.openai.com/v1
auto_run: false
safe_mode: ask
offline: false
custom_instructions: |
你是专业的编程助手。
1. 生成代码时添加完整注释
2. 使用 Python 3.10+ 语法
3. 每次运行前解释代码功能
4. 包含错误处理内置 Profile:
Open Interpreter 自带几个内置 Profile,通过快捷参数调用:
# --fast → 相当于使用 GPT-4o-mini
#--local → 相当于使用本地 Ollama 模型
#--groq → 相当于使用 Groq 的 Llama3 模型
#--codestral → 相当于使用 Codestral 模型
#--llama3 → 相当于使用 Llama3 模型
--os → 相当于启用计算机控制模式
场景切换示例:
# 日常快速任务
alias oi-fast="interpreter --profile my-fast.yaml"
#代码开发
alias oi-code="interpreter --profile coding-assistant.yaml"
#数据分析
alias oi-data="interpreter --profile data-analysis.yaml"7.3 自定义函数
你可以注册自己的 Python 函数,让 AI 在需要时调用。这是扩展 Open Interpreter 能力的最佳方式。
注册一个自定义函数:
from interpreter import interpreter
#定义一个函数
def get_weather(city: str):
"""
获取指定城市的天气信息。
参数:
city (str): 城市名称,如 "北京"、"上海"
返回:
str: 天气信息字符串
"""
# 实际可从天气 API 获取
import requests
resp = requests.get(f"https://wttr.in/{city}?format=%C+%t+%w")
return resp.text
#注册到 interpreter
interpreter.register_function(get_weather)
#AI 现在知道可以使用这个函数
interpreter.chat("北京今天天气怎么样?")更多自定义函数示例:
from interpreter import interpreter
#数据库查询函数
def query_database(sql: str):
"""执行 SQL 查询并返回结果"""
import sqlite3
conn = sqlite3.connect("business.db")
cursor = conn.cursor()
cursor.execute(sql)
results = cursor.fetchall()
columns = [desc[0] for desc in cursor.description]
conn.close()
return {"columns": columns, "rows": results}
#Slack 通知函数
def send_slack_message(channel: str, message: str):
"""发送消息到 Slack 频道"""
import requests
webhook_url = "https://hooks.slack.com/services/你的Webhook地址"
requests.post(webhook_url, json={"channel": channel, "text": message})
return "已发送"
#注册多个函数
interpreter.register_function(query_database)
interpreter.register_function(send_slack_message)
#AI 可以自主调用这些函数
interpreter.chat("查询数据库中昨天的订单总量,然后发到 Slack general 频道")💡 价值: 自定义函数让 Open Interpreter 从一个通用工具变成你的专属助手——连接你的内部系统、数据库、API。
7.4 计算机视觉控制(–os 模式)
--os 模式是 Open Interpreter v0.4.0
引入的实验性功能,允许 AI
直接控制你的鼠标和键盘——就像人在操作电脑一样。
启用方式:
# 需要额外的依赖
pip install open-interpreter[os]
#使用 Anthropic Claude 作为模型(推荐)
export ANTHROPIC_API_KEY="sk-ant-你的KEY"
interpreter --os --model "anthropic/claude-sonnet-4-20250514"
#或使用 OpenAI
interpreter --os能做什么:
⚠️ 已知限制: -
--os模式目前是实验性功能,准确率不如文本操作 - 需要pip install open-interpreter[os]安装额外依赖(pyautogui、opencv-python 等) - 建议使用 Anthropic Claude 模型,效果最好 - 每次操作前仍会询问确认,不会偷偷动你的鼠标
第八章 进阶技巧
🎯 本章目标: 学会 Open Interpreter 的高级技巧,提升效率、控制成本、保障安全。
8.1 Python 虚拟环境管理
虚拟环境是 Python 开发的最佳实践,可以隔离不同项目的依赖。
为什么要用虚拟环境:
- 每个项目有自己的依赖,互不干扰
- 避免系统 Python 被污染
- 方便删除重建
创建一个专用虚拟环境:
# 创建环境
python3 -m venv ~/oi-env
#激活
source ~/oi-env/bin/activate # macOS/Linux
#或 Windows: oi-env\Scripts\activate
#安装 Open Interpreter
pip install open-interpreter
#启动
interpreter如果遇到
ModuleNotFoundError: No module named 'pkg_resources':
这是已知问题(Open Interpreter v0.4.3 使用的 pkg_resources 在新版 setuptools 中被移除),解决方法:
pip install setuptools==69.5.18.2 省钱策略(本地 + 云端混用)
Open Interpreter 的费用主要来自 API 调用费。以下策略帮你控制成本。
策略 1:日常任务用 GPT-4o-mini
# --fast 模式使用 gpt-4o-mini,价格是 gpt-4o 的 1/30
interpreter --fastGPT-4o-mini 的价格: - 输入:$0.15/百万 tokens - 输出:$0.60/百万 tokens - 一条指令平均消耗 1,000-3,000 tokens → 成本不到 $0.001
策略 2:文件操作用本地模型
# 简单需求用本地模型
interpreter --local
#复杂需求切换到云端
interpreter --model gpt-4o策略 3:使用 DeepSeek 作为日常主力
# DeepSeek 价格仅为 GPT-4o 的 1/20
interpreter --model "deepseek/deepseek-chat"策略 4:控制 Token 消耗
# 限制每次输出的 token 数
interpreter --max_tokens 1024
#限制上下文窗口(减少重复发送历史消息)
interpreter --context_window 32000费用预估:
| 使用场景 | 日均消费 | 月消费 |
|---|---|---|
| GPT-4o-mini 日常 | $0.05-0.2 | $1.5-6 |
| GPT-4o 中等使用 | $0.5-2 | $15-60 |
| DeepSeek 中等使用 | ¥1-5 | ¥30-150 |
| 本地模型 | ¥0 | ¥0 |
8.3 Docker 沙箱运行
Docker 提供了完全的隔离环境,即使代码出现问题也不会影响宿主机。
创建专用 Docker 环境:
# Dockerfile
cat > Dockerfile.oi << 'EOF'
FROM python:3.11-slim
RUN pip install open-interpreter
ENV OPENAI_API_KEY="sk-你的KEY"
ENV OPENAI_API_BASE="https://api.openai.com/v1"
WORKDIR /workspace
CMD ["interpreter"]
EOF
#构建镜像
docker build -t open-interpreter -f Dockerfile.oi .
#运行(挂载当前目录到 /workspace)
docker run -it --rm \
-v $(pwd):/workspace \
open-interpreter安全优势:
| 操作 | 宿主机 | Docker 容器 |
|---|---|---|
| 删除文件 | 真的删除了 | 只删除容器内的文件 |
| 安装软件 | 污染系统 | 容器重建即恢复 |
| 读取敏感文件 | 可能泄露 | 容器内限制访问 |
| 网络攻击 | 影响宿主机 | 隔离在容器内 |
💡 最佳实践: 高风险操作(如删除文件、批量安装)用 Docker 运行,日常文件操作直接本地运行。
8.4 API Key 安全与轮换
不要把 API Key 写在命令里:
# ❌ 错误做法:API Key 会出现在 shell 历史中
interpreter --api_key "sk-..."
#✅ 正确做法:使用环境变量
export OPENAI_API_KEY="sk-..."
interpreter不要将 API Key 提交到 Git:
创建 .gitignore 文件:
使用 .env 文件管理 Key:
# .env 文件
OPENAI_API_KEY="sk-xxx"
OPENAI_API_BASE="https://xxx/v1"# 加载 .env
export $(grep -v '^#' .env | xargs)
interpreter多 Key 轮换(提高可用性):
# key_rotator.py - API Key 轮换器
import os
import random
keys = [
"sk-key1",
"sk-key2",
"sk-key3",
]
os.environ["OPENAI_API_KEY"] = random.choice(keys)8.5 批量自动化脚本
将 Open Interpreter 集成到你的自动化流程中。
定时任务示例(cron):
# 每天早上 9 点运行数据报告
crontab -e
#添加以下行:
0 9 * * * cd /path/to/projectinterpreter "分析昨天的销售数据,生成日报并保存到 reports/$(date +\%Y\%m\%d).md"Shell 脚本集成:
#!/bin/bash
#batch-process.sh - 批量处理脚本
echo "=== 开始批量处理 ==="
#步骤 1:整理文件
interpreter "把 Downloads 中昨天的截图移动到 Screenshots/archive/"
#步骤 2:生成报告
interpreter "读取 data.csv,计算各分类汇总,输出到 report.csv"
#步骤 3:备份
interpreter "将 project/ 目录压缩成 backup-$(date +%Y%m%d).zip"
echo "=== 处理完成 ==="Python 脚本集成:
#!/usr/bin/env python3
#daily_pipeline.py
from interpreter import interpreter
interpreter.llm.model = "gpt-4o-mini"
interpreter.auto_run = True
interpreter.offline = False
steps = [
"检查磁盘使用量,如果超过 80% 则清理 /tmp 目录",
"检查是否有安全更新需要安装",
"生成系统运行报告,保存到 ~/Desktop/system-report.md"
]
for step in steps:
print(f"\n>>> 执行: {step}")
for chunk in interpreter.chat(step, stream=True, display=False):
print(chunk, end="")
print("\n")
print("✅ 每日巡检完成")8.6 连接其他终端 AI 工具
Open Interpreter 可以和你的 AI 工具箱中其他工具配合使用。
与 Ollama 配合(本地模型):
# Ollama 提供本地推理
#Open Interpreter 调用 Ollama 的 API
#二者配合实现完全离线
ollama serve # 后台运行
interpreter --model "ollama/qwen2.5:7b" --api_base "http://localhost:11434"与 Claude Code 配合:
# Open Interpreter:数据分析、文件处理
#Claude Code:复杂代码编写和重构
#先用 OI 处理数据,再用 Claude Code 写核心逻辑
interpreter "分析 data.csv,提取关键指标,保存到 summary.json"
cd /projectclaude "根据 summary.json 实现一个数据分析 API"与 Hermes Agent 配合:
# Hermes Agent:多平台消息网关 + 技能系统 + Cron
#Open Interpreter:本地代码执行能力
可以将 OI 作为 Hermes 的代码执行后端
第九章 常见问题与排错
🎯 本章目标: 快速解决使用 Open Interpreter 时最常见的 90% 问题。
9.1 安装问题
问题:pip install open-interpreter
失败
# 原因 1:pip 过旧
python3 -m pip install --upgrade pip
#原因 2:Python 版本过低
python3 --version # 需要 3.9+
brew install python@3.11 # macOS 升级 Python
#原因 3:网络问题(国内用户)
pip install open-interpreter -i https://pypi.tuna.tsinghua.edu.cn/simple
#原因 4:权限问题
pip install --user open-interpreter问题:interpreter: command not found
# 虚拟环境未激活
source ~/oi-env/bin/activate
#或用完整路径
~/oi-env/bin/interpreter
#或重新安装确保加入 PATH
pip install --force-reinstall open-interpreter问题:安装后报
No module named 'pkg_resources'
pip install setuptools==69.5.19.2 配置问题
问题:API Key 配置后仍然报认证错误
# 检查是否正确设置了环境变量
echo $OPENAI_API_KEY # 应该显示你的 Key
#如果为空,说明未设置或 shell 配置未重新加载
source ~/.zshrc # 或重启终端
#检查 Key 格式是否正确(应该以 sk- 开头)
检查是否在 Key 前后有意外空格
问题:模型无法加载/找不到模型
# 使用 --model 参数指定完整模型名
interpreter --model "gpt-4o" # ✅ 正确
interpreter --model "gpt4" # ❌ 不正确的名称
#查看可用模型列表
interpreter --model "gpt-4o" # 尝试不同类型的模型名
#对于本地模型
ollama list # 检查已下载的模型
ollama pull qwen2.5:7b # 重新拉取9.3 运行问题
问题:AI 响应很慢
# 原因 1:模型本身慢(GPT-4o 比 GPT-4o-mini 慢 3-5 倍)
interpreter --fast # 切换到快速模型
#原因 2:网络延迟(国内连 OpenAI)
#使用国内中转或 DeepSeek
#原因 3:上下文太长
interpreter --context_window 32000 # 缩小上下文
#原因 4:生成内容太多
interpreter --max_tokens 1024 # 限制输出长度问题:AI 生成的代码有语法错误
# 在交互模式中直接指出错误
> 你生成的代码有语法错误,第 3 行括号没有闭合,修正一下
AI 会自动识别错误并重新生成修正版本
问题:如何让 AI 按我的要求执行
# 使用自定义指令设定明确的规则
interpreter --custom_instructions "不要使用 os.system(),用 subprocess.run()"
#或者直接在对话中纠正
> 下次请用 pandas 而不是 csv 模块来处理数据9.4 网络问题(国内用户)
问题:连接超时/无法访问 OpenAI
# 方案 1:使用国产模型
export DEEPSEEK_API_KEY="sk-你的KEY"
interpreter --model "deepseek/deepseek-chat"
#方案 2:使用 API 中转
export OPENAI_API_BASE="https://你的中转站地址/v1"
interpreter
#方案 3:使用本地模型(完全离线)
ollama pull qwen2.5:7b
interpreter --model "ollama/qwen2.5:7b" --api_base "http://localhost:11434" --offline问题:下载模型速度慢(Ollama)
# 配置国内镜像源
export OLLAMA_HOST="http://localhost:11434"
某些国内镜像可以加速下载,具体搜索 "ollama 国内镜像"
9.5 代码执行问题
问题:AI 说代码执行失败
最常见的原因:
# 1. 缺少第三方库
#直接让 AI 安装
> 安装必要的依赖
#或者手动安装
pip install pandas requests matplotlib openpyxl
#2. 文件路径错误
#让 AI 先检查路径存在
> 先检查这个文件是否存在,然后再操作
#3. 权限不足
#检查文件/目录权限
> 先检查这个目录的权限
#4. 文件正在被其他程序占用
关闭相关程序后重试
问题:AI 执行了危险的命令
# 立即按 Ctrl+C 终止
#然后重置对话
%reset
重新开始,这次仔细检查 AI 生成的代码再确认执行
附录:命令速查表
# =====================
#安装与验证
#=====================
pip install open-interpreter
pip install open-interpreter[os]
pip install open-interpreter[safe]
interpreter --version
interpreter --help
#=====================
#启动方式
#=====================
interpreter
interpreter "你的指令"
interpreter -y
interpreter --fast
interpreter --local
interpreter --groq
interpreter --os
interpreter --vision
interpreter -v
#=====================
#模型与 API 配置
#=====================
interpreter --model "gpt-4o"
interpreter --model "gpt-4o-mini"
interpreter --model "anthropic/claude-sonnet-4-20250514"
interpreter --model "deepseek/deepseek-chat"
interpreter --model "ollama/qwen2.5:7b"
interpreter --model "gpt-4o" --api_base "http://localhost:1234/v1"
interpreter --temperature 0.1
interpreter --max_tokens 4096
interpreter --context_window 64000
#=====================
#配置文件
#=====================
interpreter --profiles
interpreter --profile my-config.yaml
interpreter --custom_instructions "用中文回答"
interpreter --offline
#=====================
#安全控制
#=====================
interpreter --safe_mode ask
interpreter --safe_mode auto
interpreter -y
#=====================
#对话管理
#=====================
interpreter --conversations
#交互模式中:
%reset
%undo
%verbose true
%tokens 你的指令
#=====================
#服务模式
#=====================
interpreter --server
#GET /chat?message=你的指令
#=====================
#Python API 集成
#=====================
from interpreter import interpreter
interpreter.llm.model = "gpt-4o"
interpreter.chat("指令")
interpreter.chat()
interpreter.messages = []
#=====================
#常用环境变量
#=====================
export OPENAI_API_KEY="sk-xxx"
export OPENAI_API_BASE="https://api.openai.com/v1"
export ANTHROPIC_API_KEY="sk-ant-xxx"
export DEEPSEEK_API_KEY="sk-xxx"
export GROQ_API_KEY="gsk-xxx"
#=====================
#排错常用命令
#=====================
pip install --upgrade pip
pip install setuptools==69.5.1
pip install open-interpreter -i https://pypi.tuna.tsinghua.edu.cn/simple
ollama pull qwen2.5:7b
ollama serve
source ~/oi-env/bin/activate