design-iq
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 8 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Collaborative modeling and architecture, with AI at the table.
designIQ: Model together. AI at the table.
designIQ is a Git-native workspace where teams model their business and their architecture
together, live: processes (BPMN), decisions (DMN), Wardley Maps, Team Topologies,
Event Storming boards, Context Maps, Value Chains and plain Markdown, with Mermaid diagrams
inside the documents. Every model is a file in your repository; edits sync in real time in
the browser and in VS Code, and a release is a pull request, so review and governance stay
where engineering already works. AI assistants join through MCP: they read the same live
models, explain them, check them and propose changes.
BPMN and DMN are the notations with the deepest tooling: derived process and decision
views, decision simulation and test suites, and todos anchored to BPMN elements.
Docs: miragon.github.io/design-iq, with
getting started, self-hosting, the MCP
integration and the decision records. The site is built from docs/.
- Model live: every model file (
.bpmn,.dmn,.owm,.tt,.storm,.cm.json,.vc.json,.yaml,.md) syncs as a shared Y.Text document; the web client and VS Code
bind their editors to it. The browser has a visual modeler for BPMN, DMN, Wardley Maps,
Team Topologies, Event Storming boards and Context Maps, a rendered view for Markdown
documents (links between models open inside designIQ,mermaidfences drawn as
diagrams), and a text view for every file. A Mermaid diagram lives as amermaidfence
in a document, next to the prose that explains it, and the validator checks its type.
Login authenticates, repos authorize: what you see and edit follows your git write
permission. - Release as PR: one click cuts a branch from
origin/<default>, pushes and opens
the PR. The PR is bot-authored, with you as the commit author, so you can approve
your own release. Merge = approval: governance stays at the git provider (CODEOWNERS /
branch protection), not in the tool. - AI joins in: agents read, check and edit the live models of every notation through
the Live Host's own/mcpendpoint, and people who have the model open see them as
co-editors; apps-capable chats (claude.ai, Claude Desktop, ChatGPT) open the modelers
inline. The read-only MCP server answers from any checkout without a running host, the
AI skill layer (capture, import, review, feedback, export …) travels with the content
repo, andexport-process-skillpackages a process with its resolved dependencies as a
portable skill for any agent.
Run it in 5 minutes
Evaluation mode is one container with no login (LIVE_AUTH=none: everyone is the local user):
docker run --rm -p 8301:8080 -e LIVE_AUTH=none \
-e LIVE_PUBLIC_URL=http://localhost:8301 ghcr.io/miragon/designiq-live-host:latest
LIVE_PUBLIC_URL is the URL you actually open: deep links, the MCP resource audience and
the same-site check on browser requests derive from it, so a published port other than the
container's 8080 has to say so, or the editors never sync.
The server is up at http://localhost:8301 (/healthz answers): the web app, the VS Code
extension (designiq.serverUrl = ws://localhost:8301, no sign-in needed) andpnpm --filter @designiq/live-host test:sync all work right away. What it serves is this
repo's example content, cloned into the container on the first request and thrown away
again with --rm.
Your own models. A content repo is any checkout with a root designiq.yml naming its
models folder (the legacy name bpmiq.yml is still read);process-documentation-starter
is the template. Name it, and mount a volume so the clone, the live edits and their
lineages survive a restart:
docker run -p 8301:8080 -e LIVE_AUTH=none -e LIVE_PUBLIC_URL=http://localhost:8301 \
-e GITHUB_REPO=<owner>/<repo> -v designiq-data:/data \
ghcr.io/miragon/designiq-live-host:latest
That clone happens without credentials, so the repo must be public; private repos (and
release-as-PR) need the GitHub App. Already have a checkout? Bind-mount it and the host
serves it in place, no clone: edits write through to your working tree, git diff
shows them, you commit as usual. Nothing is fetched then, so GITHUB_REPO is a pure label
(any <owner>/<name>, no GitHub repository behind it):
git clone https://github.com/<owner>/<repo> my-processes # or your own; needs a root designiq.yml
docker run -p 8301:8080 -e LIVE_AUTH=none -e LIVE_PUBLIC_URL=http://localhost:8301 \
-e GITHUB_REPO=acme/my-processes -e LIVE_HOST_CONTENT_DIR=/content \
-v "$PWD/my-processes:/content" -v designiq-data:/data \
ghcr.io/miragon/designiq-live-host:latest
(A /content without a usable root designiq.yml (or legacy bpmiq.yml) is not a content
repo: the host says so at boot and clones GITHUB_REPO instead, which is where a made-up
label then fails.)
A real login is your OIDC identity provider plus a GitHub App for authorization. The
15-minute path ships a Keycloak: docs/on-prem/idp-quickstart.md.
From source (Node >= 23.6; TypeScript runs directly via type stripping, no build step):
pnpm install # pnpm, never npm/yarn (workspace: protocol)
pnpm --filter @designiq/web build # the Live Host serves apps/web/dist
LIVE_AUTH=none pnpm live-host # sync + API + web app on http://localhost:8301, no login
# with a login: the IdP quickstart (docs/on-prem/idp-quickstart.md) + your GitHub App
# (one-time vendor step): GITHUB_REPO=<owner>/<repo> pnpm --filter @designiq/live-host create-app
More entry points: pnpm web:dev (web client with hot reload, proxies to the Live Host),pnpm validate (content validation of the example repo, runs in CI on every PR).
Ask the models: open Claude Code in the repo
(.mcp.json auto-connects the read-only MCP server, packages/mcp) and ask "Walk me
through order-to-cash" or "What should we automate first?".
To reach the live, write-capable endpoint of the running host instead, point a client at/mcp. On a LIVE_AUTH=none host no credential is needed:
claude mcp add --transport http designiq http://localhost:8301/mcp
Claude Desktop's custom-connector dialog expects OAuth, so bridge a no-auth host inclaude_desktop_config.json:
{
"mcpServers": {
"designiq": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:8301/mcp"]
}
}
}
Restart Desktop fully (Cmd+Q) afterwards. Against a real deployment the client fetches an
OIDC access token itself (Claude Code: claude mcp add --transport http designiq https://<host>/mcp --client-id designiq-mcp --callback-port 8765 with the quickstart realm);
see docs/mcp-integration.md.
What's in this repo
This repository is the full self-hostable platform. Miragon also operates a hosted
multi-tenant SaaS; its tenant provisioning and billing control plane is not in this repo,
but the cell mode it drives is. The code you read here is the code the SaaS runs
(ADR 0004).
| Path | Package | What it is |
|---|---|---|
apps/live-host/ |
@designiq/live-host |
The platform server: Hocuspocus (Yjs) sync + REST API + web app on one port. Multi-repo, per-(user,repo) authz, release-as-PR. Published as ghcr.io/miragon/designiq-live-host. |
apps/web/ |
@designiq/web |
Collaborative web client: visual modelers (bpmn-js, dmn-js, the Miragon renderers), the rendered Markdown view (Mermaid fences drawn as diagrams) + Monaco on a shared Y.Text, repo overview, and the MCP-App widgets. |
apps/vscode/ |
design-iq |
VS Code extension: opens designiq:// model documents synced through the Live Host; signs in through the host's own login (editor sign-in). |
packages/mcp/ |
@miragon/design-iq-mcp |
Read-only MCP server exposing a content repo's models of every notation (discovered from designiq.yml; the process views derived from BPMN), over stdio + Streamable HTTP, npx @miragon/design-iq-mcp --root <path>. Read-only, against a checkout; the live, writable MCP endpoint lives in the Live Host (/mcp). |
packages/notations/ |
@designiq/notations |
Notation registry + model analysis: one descriptor per notation (extensions, editor language), extract (file→graph), derive (graph→view, incl. the rich process and decision views), and the designiq.yml content discovery (legacy bpmiq.yml still read). |
packages/validator/ |
@miragon/design-iq-validator |
Platform validator (bin designiq-validate): designiq.yml discovery + BPMN/DMN structure and BPMNDI/DMNDI coverage + cross-model reference integrity + the schema check of .tt/.cm.json/.vc.json + a parse check for every other notation. Runs against any checkout via --root. |
packages/… |
— | Shared foundations: http-kit, github-app, contracts, live-client, ui-kit, api-client; see CLAUDE.md for the full map. |
process-documentation/ |
— | Example content repo (designiq.yml + BPMN/DMN example models and an Event Storming board + the AI skills in .claude/skills): the MCP/validator example AND the content-repo contract, mirrored to Miragon/process-documentation-starter ("Use this template"). |
deploy/ |
— | Docker Compose reference for self-hosting. |
docs/ |
— | Platform docs: concept, multi-repo architecture, MCP integration, ADRs, self-hosting, extending. The docs site is built from here. |
Self-hosting
Everything the hosted SaaS runs, on your infrastructure: the GHCR image (or your own build),
the Compose reference under deploy/, GitHub App setup, reverse-proxy/WebSocket notes, and
persistence. Start at docs/on-prem/. Coming from 4.x (before the rename to
designIQ)? Read docs/upgrading-to-5.md first.
Extending
The provider layer is a pair of ports (apps/live-host/src/ports/git-provider.ts andapps/live-host/src/ports/connection-source.ts), so a GitLab connector is a newadapters/gitlab/ folder against existing contracts, not a fork. Session issuance has the
same seam for SSO. Boundaries are CI-enforced
(ADR 0003); guides live in
docs/extending/.
Contributing · Security · MIT © Miragon GmbH
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found