故障排查
August 16, 2026 · View on GitHub
常见的坑。全新安装 / 升级的完整运维手册在
GETTING_STARTED.md 中;本
页汇总反复出现的"它不工作"场景。
"No provider available"
openprogram providers 列出已存的凭据;openprogram providers discover 扫描可采用的外部 CLI 登录态(Claude Code、Codex、Gemini CLI)。常见原因:
- 忘记执行
openprogram providers login <provider>(或对应外部 CLI 的登录) - API key 设置在了与运行 worker 不同的 shell 中
- token 过期 —— 重新登录;
openprogram providers doctor可以诊断凭据的过期 / 刷新 / 冲突
"command not found: openprogram"
受支持的 CLI/server 安装器会创建 ~/.local/bin/openprogram。重新运行安装器,
然后确保该目录位于 PATH:
curl -fsSL https://openprogram.io/install | sh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
Web UI 端口被占用
启动 worker 前设置这个环境变量(API、WebSocket 和 web UI 共用一个端口):
export OPENPROGRAM_WEB_PORT=8101 # 单端口(默认 18100)
或持久化该偏好:openprogram ports --port 8101。
本地开发
源码开发使用 uv sync --locked --extra dev。外部 harness 开发见
安装 harness,它不是普通产品安装入口。
worker 无法启动 / 启动在了错误的端口
openprogram doctor 会运行一次快速的端到端检查:Python/Node/git
工具链、技能和插件能否加载、provider 凭据、MCP server、磁盘缓存,
以及 worker 是否在 :18100 监听。openprogram rescue 在诊断之外
还会直接打印修复命令。在提 issue 之前先读一遍它们的输出。
import openprogram 报 ModuleNotFoundError
正式产品安装使用内置的私有 Python,不会把 OpenProgram 暴露给 shell 中
当前激活的 Python。源码开发时,先在 checkout 中运行 uv sync --locked,
再通过 uv run --project /path/to/OpenProgram python ... 执行脚本;也可以
先激活该 checkout 的 .venv。
CI 显示"tests pass"但 Mac 上表现不同
有少数测试在裸 CI runner 上被显式跳过,
因为它们需要 $HOME 中配置好的 provider。跳过
列表就写在测试文件本身中 —— 搜索
pytest.mark.skipif。配有凭据的开发机器会看到
完整的测试套件。