01
INTERACTIVE

vcli

打开可交互 CLI,支持识别图片、初始化环境、查看信息。非交互环境输出帮助。

vcli
code-vcli v1.0.3 未初始化 · 请先运行 init ┌──────────────────────────────┐ │ 欢迎使用 code-vcli │ └──────────────────────────────┘ 为 AI 模型提供 Web 开发视觉能力 1. 初始化 安装视觉模型环境 2. 查看环境 显示 code-vcli 与系统环境信息 3. 检查版本更新 比较 npm Registry 最新版本 4. 查看帮助 显示所有命令与参数 5. 退出 结束 code-vcli
未初始化
code-vcli v1.0.3 模型就绪 ┌──────────────────────────────┐ │ 欢迎使用 code-vcli │ └──────────────────────────────┘ 为 AI 模型提供 Web 开发视觉能力 1. 识别图片 对图片执行视觉识别(PP-OCRv6 / + YOLO) 2. 重新初始化 重装视觉模型环境 3. 重置环境 删除模型/虚拟环境并重置为未初始化 4. 查看环境 显示 code-vcli 与系统环境信息 5. 检查版本更新 比较 npm Registry 最新版本 6. 查看帮助 显示所有命令与参数 7. 退出 结束 code-vcli
已初始化
02
COMMAND

vcli help

显示命令、参数和示例。

vcli help
参数无。也可以使用 vcli --helpvcli -h
03
COMMAND

vcli init

初始化视觉模型环境:创建 venv、选择计算模式与能力、下载模型权重。首次使用前必须运行。

vcli init [options]

专属参数

参数作用默认值
--yes跳过所有交互确认,使用默认值关闭
--workspace <path>指定工作区路径(存放 venv + 模型)~/.code-vcli/
--reset-workspace重新选择工作区路径
--compute <cpu|gpu>计算模式交互选择
--capabilities <ocr|vlm|both>能力组合交互选择
--ocr-backend <cpu|gpu>默认 OCR 后端交互选择
--vlm-option <A1..C2>Qwen2.5-VL 官方模型组合按硬件推荐

能力选择

计算模式CPU(仅 OCR)或 GPU(可装 OCR 和/或 VLM),自动检测硬件
能力组合GPU 模式下可选「仅 OCR / 仅 VLM / 都要」;「都要」是 --mix 的前置条件
OCR 放置CPU 或 GPU;Mix 在 OCR 完成后释放资源,再加载 GPU VLM
VLM 选项仅 A1/A2/B1/B2/C1/C2;超显存会警告,Apple/AMD 只用 BF16,bitsandbytes NF4 仅 NVIDIA CUDA

示例

vcli init

跳过交互:vcli init --yes

自定义工作区:vcli init --yes --workspace "E:\code-vcli-data"

GPU + both + GPU OCR + B2:vcli init --yes --compute gpu --capabilities both --ocr-backend gpu --vlm-option B2

需要 Python 3.10+。模型缓存位置:~/.code-vcli/models/。下载依次尝试 HF_ENDPOINT(默认 Hugging Face 官网)、hf-mirror.com 和 ModelScope,并保留可续传文件;OmniParser 只把兼容的 icon_detect/*.pt 作为 YOLO 权重。

已安装环境再次运行 vcli init 会先询问是否卸载现有能力:输入 n(默认)保留现有安装,仅增量增补/调整能力(例如为「仅 OCR」增加 VLM);输入 y 则卸载后全新安装。升级后再次运行会自动同步最新推理脚本,无需重新下载模型。

04
RECOGNITION

vcli run

对图片执行视觉识别。Agent 调用使用 --json

vcli run <image> [options]

专属参数

参数作用默认值
<image>图片文件路径(必填)。支持 png/jpg/jpeg/webp/bmp/tiff/tif,上限 20 MB
--ocr <ppocrv6>OCR 引擎ppocrv6
--vlm使用 VLM 视觉理解(Qwen2.5-VL,需已装 VLM 能力)关闭
--mixOCR 与 VLM 顺序执行;OCR 上下文受 token 预算保护,完整结果另存 artifact关闭
-p, --prompt <text>VLM/--mix 模式自定义问题(默认有内置模板)
-w, --web启用 YOLO UI 元素检测(网页/UI 场景,OCR 模式)关闭
--json输出适合 AI 读取的 JSON(自动保存到工作区 files/ 目录并返回文件路径)关闭
--timeout <seconds>本次推理超时(秒),必须为正数
--min-confidence <0~1>空 UI 元素保留阈值(仅 --web)。空文本且置信度低于该值的误检自动丢弃0.55
--ocr-backend <cpu|gpu>本次 OCR/Mix 覆盖 OCR 运行位置安装值
--mix-ocr-context-tokens <0~32768>Mix 注入 OCR 的 token 预算;0 表示不注入16384
-h, --help显示 CLI 帮助

示例

vcli run ./screenshot.png

JSON 输出:vcli run ./screenshot.png --json

Web 模式:vcli run ./webpage.png --web

Web 模式 + JSON:vcli run ./webpage.png --web --json

VLM 模式:vcli run ./image.png --vlm --json

Mix 模式:vcli run ./image.png --mix --json

自定义问题:vcli run ./image.png --vlm -p "这张页面主要的操作是什么?"

识别模式

OCR 模式 --ocr(默认)整图 OCR,速度快;JSON 只保存全文、模式和引擎,不输出坐标。PP-OCRv6(RapidOCR + OpenVINO),支持中英日等 50 种语言
Web 模式 -wOCR 模式下叠加 OmniParser V2 YOLO 检测 UI 元素位置,通过 IoU、中心点距离、面积比把文字归到对应元素上,按位置排序输出。空文本且置信度低于 --min-confidence(默认 0.55)的误检自动丢弃
VLM 模式 --vlmQwen2.5-VL 视觉理解,返回纯视觉事实 text/summary 及 elements / annotations / layout
Mix 模式 --mixOCR 后释放资源再加载 VLM;返回完整视觉说明和 OCR 证据,annotations 仅作额外批注结构

VLM / Mix 模式需要 GPU 模式且已安装 VLM 能力(--mix 还需 OCR),未安装时在 init 中选择对应能力。Web 模式仅在网页/UI 截图场景使用,普通文档截图无需启用 --web

05
COMMAND

vcli info

显示 code-vcli 版本、配置目录、工作区、系统环境、Python 和视觉模型状态。

vcli info
参数无。输出包含版本、配置目录、工作区、初始化状态、操作系统、Node.js、Python、视觉模型状态、已装能力(计算模式 / 能力组合 / OCR 放置 / VLM 选项 / 量化)和 OCR/VLM/Web 引擎信息。

输出内容

版本当前 code-vcli 版本号
配置目录轻量 config.json 路径
工作区venv + 模型权重路径
系统环境操作系统、Node.js、主机、CPU、内存
Python 环境检测到的 Python 版本与路径
视觉模型状态、已验证、安装时间、模型与 venv 目录
已装能力计算模式(CPU/GPU)、能力组合、OCR 放置、VLM 选项与量化
06
COMMAND

vcli install

把当前包安装到用户目录并配置 PATH,支持 Windows、macOS 与 Linux。

vcli install [--force]

专属参数

参数作用
--force覆盖用户目录中已存在的同版本安装

首次安装

npm i code-vcli

要求 Node.js 22+ 和 Python 3.10+。安装完成后重新打开终端。

查看当前生效路径:Windows 使用 where vcli,macOS/Linux 使用 which vcli

07
COMMAND

vcli version

显示当前版本;--check 检查最新版。

vcli version [--check]

专属参数

参数作用
--check查询 npm Registry 并比较最新版本
08
COMMAND

vcli update

从 npm Registry 更新 code-vcli 到最新版。

vcli update
参数无。执行前可先运行 vcli version --check 查看是否有新版本。
09
OUTPUT

JSON 与错误码

run --json:结果保存到工作区 files/,stdout 只返回文件路径;普通 OCR 为纯文字 JSON,OCR 分支只有 Web 模式包含坐标和布局,VLM/Mix 使用各自的结构化字段。

WEB SUCCESSEXIT 0
{
  "text": "第一行\n第二行",
  "items": [
    {
      "text": "登录",
      "bbox": [10,20,60,40],
      "type": "ui_text",
      "region": "top-center",
      "cluster_id": 0
    }
  ],
  "layout": {
    "img_size": [1920, 1080],
    "item_count": 10,
    "patterns": {"has_top_nav": true, "has_form": true},
    "cluster_summary": [
      {"id": 0, "size": 3, "arrangement": "vertical", "region": "center"}
    ]
  }
}
ERROREXIT ≠ 0
{
  "ok": false,
  "error": {
    "code": "MODEL_TEXT_EMPTY",
    "message": "未识别到文字"
  }
}

JSON 顶层字段

字段类型说明
textstringOCR/Web 为识别全文;VLM/Mix 为模型概述与页面分区组成的详细纯视觉事实,不混入运行元信息
itemsarrayWeb/Mix 的结构化 OCR 项;VLM 为空数组,普通 OCR 不输出
layoutobjectWeb/VLM/Mix:页面级布局、图像尺寸、分区、层级与阅读顺序
summarystring仅 VLM/Mix:纯视觉事实概述,不包含图像尺寸、坐标、字段名或运行诊断
elementsarray仅 VLM/Mix:关键 UI 元素/操作点及 bbox、中心坐标
annotationsarray仅 VLM/Mix:额外批注结构(text/bbox/position/type/elementRef),无标注为空数组
vlmobject仅 VLM/Mix:JSON 解析、截断、输出 token 和恢复字段诊断
enginestring各模式使用的识别引擎
modestring识别模式:ocr / vlm / mix
ocrobject仅 Mix:完整 OCR artifact 路径、内联预览和 token 压缩统计

超长 OCR 与 Mix artifact

Mix 默认最多注入 16,384 OCR tokens(上限 32,768),执行去重、百分比坐标压缩、页面首尾保留、九宫格抽样和金额/日期/UI 标签优先。完整文字保存为 *_ocr.txt,完整坐标与布局保存为 *_ocr_items.json。十万字符级页面先读取 OCR 结果的必要部分,再用 --vlm -p 发起针对性视觉问题。

items[] 字段

字段类型说明
textstring该项文字;Web 模式下为合并后的文字
bboxarray轴对齐矩形 [x1,y1,x2,y2]
typestring仅 Web 模式:ui_element / ui_text
regionstring仅 Web 模式:九宫格区域
cluster_idnumber仅 Web 模式:引用 layout.cluster_summary,避免重复嵌套组信息

错误码

code含义exit
INVALID_ARGUMENT参数错误2
MODEL_RECOGNITION_FAILED推理失败 / 超时 / 输出解析失败4
IMAGE_READ_ERROR无法访问图片 / 路径不存在6
IMAGE_FORMAT_UNSUPPORTED不支持的图片格式6
IMAGE_TOO_LARGE图片超过 20 MB6
MODEL_NOT_INSTALLED视觉模型未安装6
MODEL_TEXT_EMPTY图片中未识别到文字6
MODEL_RUNTIME_MISSINGPython 运行时或推理脚本丢失6
MODEL_INITIALIZATION_FAILED模型初始化/下载失败6
MODEL_INSTALL_DECLINED用户取消模型安装6
MODEL_DOWNLOAD_FAILED模型下载失败6
MODEL_INSTALL_FAILED模型安装失败6
CONFIG_NOT_INITIALIZED配置未初始化3
CONFIG_INVALID配置无效3
INSTALL_ERROR安装失败5
UPDATE_ERROR更新失败5
CANCELLED用户取消130
已复制