Skip to content

misxzaiz/oprcli

Repository files navigation

OPRCLI

统一 AI CLI 连接器服务器,支持多 AI 提供商和机器人平台集成。

特性

  • 多 AI 支持:Claude Code、IFlow、Codex、Agent 引擎
  • 平台集成:钉钉机器人、QQ 机器人
  • 定时任务:支持 cron 表达式和简写间隔的任务调度
  • 语音识别:QQ 语音消息转文字(百度语音)
  • Web 配置:可视化配置管理界面

快速开始

安装

npm install

配置

复制配置模板:

cp .env.example .env

或直接启动,访问配置页面进行配置:

http://localhost:12480/config/config.html

编辑 .env 文件,主要配置:

# AI 提供商:claude | iflow | codex | agent
PROVIDER=iflow

# IFlow 配置
IFLOW_WORK_DIR=D:\MyProject

# Claude 配置(使用 claude 时)
CLAUDE_CMD_PATH=C:\Users\...\claude.cmd
CLAUDE_WORK_DIR=D:\MyProject

# Agent 配置(使用 agent 时)
AGENT_LLM_PROVIDER=iflow
AGENT_MODEL=glm-4-flash

# 钉钉(可选)
DINGTALK_CLIENT_ID=xxx
DINGTALK_CLIENT_SECRET=xxx

# QQ Bot(可选)
QQBOT_APP_ID=xxx
QQBOT_CLIENT_SECRET=xxx

注册与获取凭证

以下服务均提供免费服务:

服务 用途 注册地址
QQ 机器人 QQ 平台机器人接入 q.qq.com/qqbot
IFlow AI 对话服务 iflow.cn
IFlow CLI IFlow 命令行工具 cli.iflow.cn
钉钉开放平台 钉钉机器人接入 open-dev.dingtalk.com
百度语音 语音识别服务 百度 AI 控制台

凭证获取说明

QQ 机器人:

  1. 访问 QQ 开放平台,登录后创建机器人应用
  2. 获取 App IDClient Secret

IFlow:

  1. 支持账号登录或 APPKEY 方式
  2. 在控制台获取 API Key

钉钉机器人:

  1. 创建企业内部应用
  2. 获取 Client IDClient Secret

百度语音:

  1. 创建语音识别应用
  2. 获取 API KeySecret Key

运行模式

支持两种运行模式:

模式一:npm(简单模式)

适合开发测试,手动启动。

npm start

模式二:PM2(生产模式)

适合生产环境,支持自动重启、日志管理、开机自启。

# 安装 PM2
npm install -g pm2
npm install -g pm2-windows-startup

# 启动项目
pm2 start ecosystem.config.js
[或 npm run pm2]

# 设置开机自启
pm2-startup install
pm2 save

PM2 常用命令:

命令 说明
pm2 list 查看所有进程
pm2 restart oprcli 重启应用
pm2 stop oprcli 停止应用
pm2 logs oprcli 查看日志
pm2 monit 监控面板
pm2 save 保存进程列表

模式对比:

特性 npm PM2
重启命令 ❌ 需手动重启 ✅ 支持
开机自启
崩溃自动恢复
日志管理
进程监控

服务运行在 http://localhost:3000

配置页面:http://localhost:3000/config/config.html

机器人命令

命令前缀规则

重要更新:为避免误触发,系统现在采用精确匹配模式。

规则说明

模式 说明 示例
无前缀(精确匹配) 输入必须完全等于命令词 claude
claude 你好
有前缀(灵活匹配) 支持命令 + 参数 /重启
/重启 现在

默认配置

  • 无需前缀:Provider 切换命令(claudeiflowcodexagent
  • 需要前缀:其他系统命令(/重启/status/help/path/tasks 等)

💡 为什么这样设计?

  • 防止误触发:例如 "重启其他服务" 不会误触发重启命令
  • 灵活性:通过 / 前缀区分命令和普通对话
  • 可配置:支持通过环境变量自定义前缀规则

常用命令

命令 说明 是否需要前缀
claude / iflow / codex / agent 切换 AI 提供商 ❌ 可选
/restart / /rs / /重启 重启服务(PM2 模式) ✅ 需要
/status / /状态 查看状态 ✅ 需要
/help / /帮助 查看帮助 ✅ 需要
/path {路径} / /路径 {路径} 修改工作目录 ✅ 需要
/tasks 定时任务管理 ✅ 需要

自定义配置

通过环境变量调整前缀规则:

# 方式 1: 全局要求前缀(最严格)
COMMAND_REQUIRE_SLASH=true

# 方式 2: 白名单(指定不需要前缀的命令)
COMMAND_NO_SLASH_LIST=claude,iflow,codex,agent,restart,status

# 方式 3: 黑名单(指定需要前缀的命令)
COMMAND_REQUIRE_SLASH_LIST=restart,stop,path,tasks

详细配置说明见 命令配置文档

定时任务间隔格式:

  • 简写:30s(30秒)、10m(10分钟)、1h(1小时)
  • Cron:0 9 * * *(每天9点)

项目结构

oprcli/
├── server.js           # 入口文件
├── connectors/         # AI 连接器
├── agents/             # Agent 引擎
├── integrations/       # 平台集成(钉钉、QQ)
├── scheduler/          # 定时任务
├── server/             # 服务器模块
├── public/             # Web 配置页面
├── system-prompts/     # 系统提示词
└── utils/              # 工具模块

配置项

变量 说明 默认值
PROVIDER AI 提供商 claude
PORT 服务端口 12480
DEFAULT_WORK_DIR 默认工作目录 -
CLAUDE_CMD_PATH Claude 命令路径 -
IFLOW_PATH IFlow 命令路径 -
CODEX_PATH Codex 命令路径 -
DINGTALK_CLIENT_ID 钉钉 Client ID -
DINGTALK_CLIENT_SECRET 钉钉 Secret -
QQBOT_APP_ID QQ Bot App ID -
QQBOT_CLIENT_SECRET QQ Bot Secret -
SCHEDULER_ENABLED 启用定时任务 true
STREAM_ENABLED 启用流式输出 true
LOG_LEVEL 日志级别 DEBUG

更多配置见 .env.example

致谢

感谢以下开源项目和服务:

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors