Releases: cyanxxy/open-ocr-cli
Releases · cyanxxy/open-ocr-cli
Release list
v2.7.0
2.7.0 - 2026-07-29
Added
- MCP now serves both the 2025-11-25 and 2026-07-28 protocol revisions from
one stdio entry, including modern discovery and cache hints. - OCR tools advertise the v2 result schema and expose written artifacts as
nativeresource_linkcontent blocks. OPEN_OCR_MCP_CONFIRM=1requires an elicited confirmation before provider
work while leaving local dry runs ungated.
Fixed
- MCP confirmations are signed, bound to the exact request, expire, and can be
used only once, preventing forged, changed, or replayed approvals. - Clients that support URL elicitation but not forms now receive the typed
configuration error instead of a protocol-level capability failure. - MCP shutdown preserves the documented
130and143exit statuses for
SIGINT and SIGTERM.
Changed
- Updated the split MCP client and server packages from the v2 beta to the
stable 2.0.0 release.
v2.6.0
2.6.0 - 2026-07-26
Breaking
extract --jsonlnow emits one record family. Fatal failures end the stream
with{"type":"error","version":1,...}instead of a protocol-shaped
run.failed, so every line carries"version": 1and noprotocolVersion.
Previously a strict validator rejected every line when a run succeeded and
accepted every line when it failed.run --response-format jsonlis
unchanged and remains the protocol dialect.
Fixed
- Template mode produced
400 INVALID_ARGUMENTfor every preset in every
earlier release. Structured output compiles an array bound into that many
copies of the item grammar, so the row cap in the wire schema exceeded a
limit the API enforces. The cap is applied after parsing instead, where it
already was, and a static check now fails the build rather than the request. --resumeaborted an entire batch when a single input changed, leaving even
unchanged documents unprocessed. A run now replaces only the artifacts its
own manifest recorded for that input, and an unrelated file at an artifact
path still conflicts.- Single-document runs into an output directory kept no manifest, so re-running
one failed against its own output. An output path naming a single file is
still left alone, and can no longer be turned into a directory by the lock. - Document failures reported an unredacted message alongside a redacted one, so
credentials could survive into JSONL records, the resume manifest, and
batch-summary.json. Both now derive from one redacted source. - Provider rejections reported the raw response body. The readable sentence is
extracted where the error is created, and the untouched payload is retained
as the cause. - A rejection naming no field is no longer blamed on the request schema unless
the schema exceeds a measured limit; unfamiliar keywords are advisory. Schema
identifiers published bycapabilitiesnow resolve inschema. - MCP reported a successful tool call when a run was partial, cancelled, or
cost-limited.isErrornow derives from the run envelope. - CSV asked of a preset that extracts one record per document is refused before
the credential gate rather than after a billed request. Inline delivery
combined with an output directory names both fields and the conflict. - Typed errors carry a next action on every code, and errors identified by the
code path are no longer re-classified from their message text.
Changed
- Directory scans skip
node_modules,dist,build,vendor, andtarget
by default, and report what they passed over. Use--no-default-excludesto
include them. - Directory scans no longer ignore uppercase file extensions, so a folder of
.PNGor.PDFscans is discovered and extracted. - A single-document run into a directory now takes the batch lock it needs to
keep a manifest, so simultaneous runs into one directory conflict rather than
racing. Sequential runs and single-invocation batches are unaffected.
v2.4.1
2.4.1 - 2026-07-26
Repository metadata
- Updated the npm package repository, homepage, issue, container, and release
references to the canonicalcyanxxy/open-ocr-clirepository. - Kept the private
cyanxxy/gemini-ocrweb application repository separate
from the public CLI package. There are no runtime behavior changes.
v2.4.0
2.4.0 - 2026-07-25
CLI packaging and development boundaries
- Moved the CLI source, build configuration, and Node-only TypeScript project
intopackages/cliso the publishable package owns its complete build path
while continuing to share the provider-neutral OCR engine. - Added dependency-sync coverage that verifies every external CLI runtime
import is declared in the published package, and tightened Node-only
typechecking so browser APIs cannot enter the command-line dependency graph. - Made the packaged Open OCR skill a generated copy of its canonical
integration source, pinned the npm toolchain used by releases, and made
TypeScript checks incremental for faster local and CI validation.
Release and dependency security
- Split releases into verification and publication stages with main-branch and
tag-order checks, serialized publishing, exact-tarball smoke tests, artifact
checksums, and idempotent npm publication checks. - Added npm provenance, container SBOM and provenance attestations, immutable
container publication beforelatestpromotion, guarded Marketplace major
tag updates, least-privilege workflow permissions, and commit-pinned GitHub
Actions. - Upgraded React Router to 8.3.0 to resolve its RSC-mode CSRF advisory, added
Dependabot coverage, and narrowed the audit exception to the remaining
transitive development-tool advisory.
v2.3.0
2.3.0 - 2026-07-22
Model Context Protocol support
- Added
open-ocr-cli mcp, a stdio MCP server with dedicated tools for simple
and template extraction, agentic OCR, and public-URL extraction. - Added an MCP capabilities resource, structured tool results, cancellation,
progress notifications, dry runs, and reference-first artifact delivery on
top of the same validated job service used by the CLI. - Bundled the MCP server runtime and updated the packaged Open OCR agent skill
and setup documentation for Codex and other MCP clients.
Machine and Web OCR reliability
- Added URL inputs and Web analysis options to protocol v2, including schema
validation, mixed-input rejection, a 20-URL request limit, and explicit
capability advertisement. - Routed machine and MCP URL work through the shared Web OCR service so dry
runs, retries, usage accounting, delivery, progress, and typed failures stay
consistent across terminal and agent integrations. - Centralized provider runtime and retry policy handling, extended retries to
Web OCR, addeddoctor --check-credentials, and made no-argument CLI calls
print deterministic help instead of opening an interactive prompt. - Refreshed the root and npm documentation around installation, providers,
automation, MCP setup, credential hygiene, and the explicitinteractive
command.
Full Changelog: https://github.com/cyanxxy/gemini-ocr/compare/v2...v2.3.0
v2.2.0
Full Changelog: https://github.com/cyanxxy/gemini-ocr/compare/v2...v2.2.0
v2.1.0
Full Changelog: https://github.com/cyanxxy/gemini-ocr/compare/v2.0.1...v2.1.0
v2.0.1
Full Changelog: https://github.com/cyanxxy/gemini-ocr/compare/v2...v2.0.1
Open OCR CLI 2.0.0
Full Changelog: cyanxxy/gemini-ocr@v1.6.0...v2.0.0
Full Changelog: cyanxxy/gemini-ocr@v1.6.0...v2.0.0
v1.6.0
Full Changelog: https://github.com/cyanxxy/gemini-ocr/compare/v1.5.0...v1.6.0