Skip to main content

IFC CONSOLE

A terminal interface to connect IFC files to LLMs. ifc-console loads your model with IfcOpenShell and serves it over MCP, so any LLM client (Claude Code, Claude Desktop, Cursor, VS Code, Codex) can query and edit it, while you stay in control from your terminal. No Blender, no host app.

Docs: https://nbharathik.github.io/ifc-console/

Install and run

Install from source. Needs git and uv:

git clone https://github.com/nbharathik/ifc-console
cd ifc-console
uv tool install .    # puts the ifc-console command on your PATH, viewer included

To update later: git pull, then uv tool install . --force. Working on ifc-console itself? See Development.

Start it in the folder with your models:

cd path/to/your/models
ifc-console

The MCP server comes up right away. Then, in the console:

> /file        pick a model from this folder
> /connect all one-time HTTP setup for every supported LLM client
> /copy codex  copy one complete client config to the clipboard
> /mode edit   let the AI change the model (ask = query-only, the default)
> /viewer      3D view in your browser
> /help        everything else

Wire up each client once. The token is stable per machine and no IFC path is stored in the client config, so your daily loop is just ifc-console, /file, and chat.

The mode switch

One switch, owned by you; the LLM cannot change it. Anything finer-grained (per-tool prompts, allowlists) belongs to your AI client.

mode what the LLM can do
ask (default) query and generate code; anything that would change the model errors and tells it to ask you
edit change and save the model; saves still make backups

Switch with /mode. Every mutation path is gated, saves are atomic with timestamped backups, and each session writes an audit log.

Honest caveat: the guards stop accidents, not a determined adversary. Treat edit mode plus untrusted prompts like running a stranger's script.

What the LLM gets

11 core tools: project info, spatial tree, selector queries, element details, property sets, schema docs, file list/open/save, and a gated Python execute_ifc_code power tool.

3 more while the viewer runs: read your click-selection, highlight elements, and screenshot the canvas so it can check its own work.

Every response is one JSON envelope with an actionable hint on failure. Full reference: MCP tools.

The 3D viewer

Type /viewer. It runs entirely on localhost behind your session token: click an element and the LLM knows what "this wall" means; it highlights elements back and takes screenshots. Edits refresh the view live.

Docs

License

Apache-2.0. Bundles three.js (MIT) and web-ifc (MPL-2.0, unmodified); uses IfcOpenShell (LGPL-3.0-or-later) as a library.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ifc_console-0.1.0.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ifc_console-0.1.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file ifc_console-0.1.0.tar.gz.

File metadata

  • Download URL: ifc_console-0.1.0.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ifc_console-0.1.0.tar.gz
Algorithm Hash digest
SHA256 53186f19bafc2729f25f7df5151e73bcb5804b8892828b86f4c63b6bbb7c58b1
MD5 3deec7d97cf5d2eb752427352ba468e0
BLAKE2b-256 d14fe46d5ff123ed2988f5431cc6b3b40915a2040c1112af2c2e54697f27e55d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ifc_console-0.1.0.tar.gz:

Publisher: release.yml on nbharathik/ifc-console

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ifc_console-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ifc_console-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ifc_console-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b691fe03f05417e3044148e36b2f4b5f4a87767ba4742e50731c05590005393d
MD5 d35a6f56940b31aeeb9b6afd4a76ed28
BLAKE2b-256 ae621b6bc1786c182e4f6ace9011674549e6704474df9d97fefd2e24b331e550

See more details on using hashes here.

Provenance

The following attestation bundles were made for ifc_console-0.1.0-py3-none-any.whl:

Publisher: release.yml on nbharathik/ifc-console

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.4

2 files

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page