Changelog -- bim-cli

v0.4.0 -- 2026-06-21

bim-code v0.1.0 (new driver)

Building-code compliance checker. Stdin-first, no Revit dependency.

v0.3.7 -- 2026-06-19

bim-google v0.3.4

v0.3.6 -- 2026-06-18

Dispatcher

bim-google v0.3.3

bim-pdf v0.3.3

bim-revit v0.1.11

Telemetry

v0.3.0 — 2026-06-10

bim-energy v0.1.1 (new driver)

Energy modeling and Passive House compliance checking via NREL OpenStudio CLI.

bim feedback --upload

Desire-path feedback can now be uploaded directly from the CLI: bim feedback --upload scrubs all argument values and POSTs to the telemetry worker. Use --dry-run to preview the payload first.

Other

v0.2.9 — 2026-06-09

Opt-in telemetry (off by default)

Anonymous verb-usage telemetry, disabled unless BIM_TELEMETRY=1 is set.

When enabled, one ping is sent per top-level command containing: verb shape, version, OS family, success flag, error kind, and latency bucket. No IP addresses, identifiers, arguments, file paths, or sub-day timestamps are ever collected. DO_NOT_TRACK=true always overrides. See bimcli.com/privacy for the full schema.

v0.2.7 — 2026-06-01

bim-site v0.6.6

v0.2.6 — 2026-05-31

bim-google v0.1.1

bim-site v0.6.5


v0.2.5 — 2026-05-29

Dispatcher: agent-friendly output (breaking)

All non-streaming verb responses are now flat JSON objects. The {"jsonrpc":"2.0","id":1,"result":{…}} wrapper is stripped by the dispatcher before printing — agents receive the inner result directly.

Error responses now use the canonical flat envelope ({"ok":false,"error":{"kind":"…","message":"…","hint":"…"}}) instead of the raw JSON-RPC error object. Streaming verbs (output: ndjson / binary) pass through untouched.

Dispatcher: structured input types

New arg types available in driver manifests:

bim-blender v0.2.0

bim-revit v0.1.8

bim-rhino v0.1.2


v0.2.4 — 2026-05-26

v0.2.3-1 — 2026-05-25

v0.2.3 — 2026-05-25

bim-blender v0.1.0 — Blender TCP bridge driver

New driver: bim blender — connects to a running Blender instance via the Python bridge addon (JSON-RPC 2.0 over TCP). Supports launch, instances, exec, convert, kill, doctor.

bim-google v0.1.0 — Google Workspace driver

New driver: bim google — Docs, Sheets, Drive, and OAuth session management via gws.exe.

bim-site v0.6.4

bim-pdfv bug fixes


v0.2.1 — 2026-05-11

bim-pdfv v0.1.0 — native PDF viewer, new session driver

New driver: bim pdfv — a native PDF viewer (Rust + PDFium + egui) that exposes an agent-driven control surface via JSON-RPC 2.0 named pipes. First session-kind driver in bim-cli.

bim pdfv open --file drawings.pdf --layout left    # open viewer, returns pid + pipe name
bim pdfv open --file code.pdf     --layout right   # side-by-side
bim pdfv search --pid <N> --pattern "28-302"       # search + auto-navigate + highlight
bim pdfv navigate --pid <N> --page 96              # go to page (0-indexed)
bim pdfv highlight --pid <N> --page 96 --bboxes "[[72,425,542,438]]"
bim pdfv fit --pid <N>                             # fit page width to window
bim pdfv render --pid <N> --out frame.png          # snapshot current view to PNG
bim pdfv state --pid <N>                           # current page, scale, highlights
bim pdfv instances                                  # list all running viewers with PIDs

Key properties:

Runtime dependency: pdfium.dll (7 MB) ships alongside bim-pdfv.exe in the drivers/ directory.

v0.2.0 — 2026-05-08

bim-site v0.6.3 — NYC layer pack, global satellite imagery, rate-limit propagation

7 new NYC verbs (all no-key, all wired into assess): e-designation, stormwater-flood, building-history, brownfield, coastal, special-district, subway. NYC assess now returns 23 layers.

satellite.map — new first-class global imagery verb. Works for any coordinate worldwide with no parcel registry required. Supports Esri Wayback dated imagery (193 snapshots 2014→2026, monthly), live World_Imagery, and optional parcel outline overlay where registry coverage exists.

parcel.map improvements: --satellite flag and --wayback-date YYYY-MM-DD for dated Esri Wayback imagery.

airport.lookup fix: Overpass query now searches (node; way; relation) with out center; — previously only found node-type airports, missing JFK, LGA, EWR and all other polygon airports.

Rate-limit propagation: assess response gains throttle_hint with affected_layers, retry_after_secs, and exact retry commands when any layer is rate-limited. Individual verbs surface retry_after_secs and throttle_source in error.data. Agents can check structured fields rather than parsing error strings.

pkg/rpcData struct additions

rpc.Data gains two new optional fields:

These fields are omitempty — no change to existing response shapes.

v0.1.9 — 2026-05-07

bim-pdf v0.3.0 — PDF-BIM v2 spec

bim pdf package now produces conformant PDF-BIM v2 files.

Every packaged PDF gets:

New verb: bim pdf bim validate <file> — checks all three spec layers and reports conformance:

bim pdf bim validate drawings.pdf
{"ok":true,"result":{"profile":"v2","checks":{"af_present":true,"pdfbim_xmp":true,"elements_attachment":true,"marks_attachment":true,"elements_schema":true,"marks_schema":true,"join_resolves":true}}}

Reports profile: "v2" (conformant), "legacy-v1" (old packages without /AF), or "unknown".

Marks bounds are now CTM-correct. The walker tracks q/Q/cm operators; element bounding boxes are device-space coordinates. Fixes latent misplacement on PDFs that apply viewport transforms (rotated/scaled detail callouts).

Backward compatible. Old packages (no /AF, no XMP marker) continue to open in the viewer and are reported as legacy-v1 by the validator.

CI fix

Scenario tests pdf-archive-pdfa3 and pdf-shrink-batch were checking for result.outputFile — corrected to result.path (field was renamed in v0.2.1).

v0.1.8 — 2026-05-07

bim-site v0.6.0 — Taichung, Taiwan

bim site assess now supports Taiwan addresses with automatic country detection — no flag or config change needed. Any address containing Chinese characters or Taiwan city/county keywords routes through the Taiwan layer stack; all US functionality is unchanged.

Geocoding: Nominatim OSM is the default — no API keys. Set BIM_SITE_TGOS_APPID + BIM_SITE_TGOS_APIKEY for house-number precision via TGOS (free registration at api.tgos.tw).

Taiwan layer stack: elevation (Open-Meteo SRTM), faults (GSMMA), seismic (Taiwan Building Code static zone), school (OSM Overpass 1 km), parcel (NLSC Open API + Nominatim reverse), zoning (luz.tcd.gov.tw cache-backed PIP), flood (NCDR registry-routed), airport/historic/transit (OSM/Transitland, global).

luz.tcd.gov.tw zoning: On first call per county, downloads all zone polygons from the National Development Council (Taiwan), caches locally (30-day TTL), answers subsequent queries via point-in-polygon. Geo-IP accessible from Taiwan. No API key required.

New optional env vars: BIM_SITE_TGOS_APPID, BIM_SITE_TGOS_APIKEY, BIM_SITE_CACHE_DIR.

Example:

bim site assess --address "台中市西屯區市政路200號"

No breaking changes

All US verbs unchanged. Global layer (airport/historic/transit) jurisdiction tag changed from "federal" to "global" in JSON output (cosmetic).

v0.1.7 — 2026-05-06

v0.1.6 — 2026-05-06

v0.1.5 — 2026-05-06

bim-site v0.4.0

bim-pdf v0.2.0

Killer composition (new)

bim site assess --address "4720 Center Blvd, Long Island City, NY 11109" > assess.json
bim site flood map --lat 40.7461 --lon -73.9570 --out flood.png
bim site school map --lat 40.7461 --lon -73.9570 --out school.png
bim pdf report --data assess.json --flood-map flood.png --school-map school.png --out report.pdf

v0.1.4 — 2026-05-04

v0.1.3 — 2026-05-04

v0.1.2 — 2026-04-30

v0.1.1 — 2026-04-30

v0.0.10 — 2026-04-30