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 PyPI with uv or pip:

uv tool install ifc-console    # puts the ifc-console command on your PATH, viewer included
# or: pip install ifc-console

Or try it without installing: uvx ifc-console. To update later: uv tool upgrade ifc-console.

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.

Install from source (for development)

If you would like to work on the code itself, clone the repo and install from your checkout (needs git and uv):

git clone https://github.com/nbharathik/ifc-console
cd ifc-console
uv tool install .

To update later: git pull, then uv tool install . --force. For working on the code itself, see Development.

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.

Acknowledgments

Inspired by Bonsai MCP. If you would like to work with the Bonsai viewer in Blender instead of a standalone terminal, check that project out.

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.1.tar.gz (1.5 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.1-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ifc_console-0.1.1.tar.gz
  • Upload date:
  • Size: 1.5 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.1.tar.gz
Algorithm Hash digest
SHA256 d49f48354145ed823095dc4a375d61bdf6121d77efacc2b65dd052a0b09a0e96
MD5 371a734c3c1f665148333a2ab8423f96
BLAKE2b-256 355239a9c3a33db847bd48fbf53f058efcc590a87040f17e94cdc5f9e8c8c3ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for ifc_console-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: ifc_console-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 daaab6d3b59ccb91bd4492d4b128cc28937e2717f94b80e4210bd1cb72ba927d
MD5 1b98948915a0fba65fb6e9bfa3b2a7c9
BLAKE2b-256 dc3b82bee874f5794d5b9b9657ffbeac28acad2a10cf5d15a2e61606dc3271ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for ifc_console-0.1.1-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

This release

0.1.1 This release

2 files

0.1.0

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