Install
openclaw skills install @hellohowareyouhaveaniceday/bim-cliopenclaw skills install @hellohowareyouhaveaniceday/bim-clibim is an offline Windows CLI for AEC formats. One dispatcher routes bim <format> <verb> [args] to per-format driver binaries (pdf, revit, ifc, acad, rhino, sketchup, blender, image, excel, energy, code, site, ...). Every verb returns JSON on stdout, and the whole surface is self-describing.
bim version --json
If the command is not found, do not install it yourself. Tell the user bim-cli is Windows-only and give them the installer to run in PowerShell:
iwr -useb https://bimcli.com/install.ps1 | iex
It is per-user, needs no admin rights, and prints BIM_INSTALLED_OK <version> <path>. Re-running it upgrades. A shell that was already open needs its PATH refreshed: export PATH="$PATH:$LOCALAPPDATA/bim-cli" (bash) or $env:Path += ";$env:LOCALAPPDATA\bim-cli" (PowerShell).
Then, on first use in a session or whenever a verb fails unexpectedly, run bim doctor --json. Each failed check carries a fix field with the exact remediation command. overall: "degraded" is normal: it means some driver's host app (Revit, AutoCAD, Rhino, ...) is not installed, or a driver is broken, which only matters if you need that driver. A driver with an empty line in bim describe --index or an error in bim version --json is in that state; skip it or tell the user to re-run the installer.
Out-of-date install. If bim doctor --json shows "update": {"available": true, "latest": "<tag>"}, tell the user once per session that bim-cli <tag> is out and give them the installer line above to re-run in PowerShell. Re-running upgrades in place. Do not run it yourself. Also suggest the update when a verb error has kind driver-outdated. Older bim versions have no update field; treat that as "unknown", not as up to date.
bim describe --index # one line per driver: its verbs
bim describe --driver pdf --verb page.split --json # args, types, defaults for one verb
bim <format> <verb> --help prints the same per-verb schema.bim pdf page.split and bim pdf page split are the same call. Flags come from the describe schema; positional args are marked positional: true.{"ok":false,"error":{"kind","message","hint","retriable"}}, and can still exit 0. Successes vary by driver: some wrap as {"ok":true,"result":...}, others print the result object directly. Read error.hint on failure: it usually names the next command.jq.--out (one file) or --out-dir (many files), never in place unless told to. Use --dry-run where the schema offers it before overwriting anything the user cares about.bim directly from the shell. Cheapest in context, and it covers every verb.bim mcp is a stdio MCP server that exposes every installed verb as a tool. That is several hundred tools, so only register it when the user wants bim as native tools:
hermes mcp add bim --command bim --args mcp
Each driver entry in bim describe --json has a docs URL (e.g. https://bimcli.com/pdf/llms.txt) with domain notes and workflow patterns. Fetch it when you start real work with a driver. Where the docs and bim describe disagree on a verb name or flag, bim describe wins: it is generated from the installed binary, while the web docs can lag a release.
Bundled notes for the two most common drivers:
references/pdf.md: drawing sets, Revit PDFs, PDF-BIM packages.references/revit.md: connecting to Revit, exports, model queries, exec.C:/proj/set.pdf). Native bim binaries do not understand MSYS /c/... paths from git-bash.bim doctor --json shows which are usable. pdf, ifc, image and the other file drivers need nothing else.bim revit instances and pin one with --instance <id>, otherwise bim picks the newest year and only warns on stderr.When a verb you expected does not exist, an error message was unclear, or you had to fall back to a workaround, send it to the maintainers:
bim feedback --note "<what you were trying to do and what happened>"
It scrubs paths and content and prints exactly what was sent. Mention it to the user when the friction was theirs.
Before telling the user a task is done, re-read the output: bim pdf info <out.pdf> / bim pdf pages <out.pdf> for page counts and sizes, or the verb's own result for counts and written paths. Report the real numbers.