Browser-based enterprise validation lab for turning rough endpoint, compliance, readiness, and fleet-management ideas into visible, testable, and shareable prototypes.
Not one single app — a collection of practical tools for testing enterprise client workflows before they become production systems.
All dashboards open in the browser with no setup. They fall back to embedded demo data when no live helper is running.
./tools/run-demo.sh client # Client Readiness Dashboard
./tools/run-demo.sh macos # macOS Enterprise Dashboard
./tools/run-demo.sh fleet # Fleet Command Center
./tools/run-demo.sh optimizer # MQ Client Optimizer
./tools/run-demo.sh mqmirror # MQ MirrorOr open directly:
open "docs/Client Readiness Dashboard.html"
open "docs/macOS Enterprise Dashboard.html"
open "docs/Fleet Command Center.html"If you see IGEL-CLIENT-01 in a dashboard, it is using demo data — that is expected.
Live demo: mcamner.github.io/Design-Prototype
| Component | Status | Live helper | Demo fallback |
|---|---|---|---|
| Client Readiness Dashboard | Active | Yes | Yes |
| Fleet Command Center | Active | Yes | Yes |
| macOS Enterprise Dashboard | Active | Yes | Yes |
| Certificate Expiry Timeline | Active | Partial | Yes |
| MQ Mirror | Active tool | Yes | No |
| MQ Client Optimizer | Active tool | Yes | Yes |
| MQ Site Fix Advisor | Prototype | No | Yes |
| MQ Asset Downloader | Prototype | No | Yes |
python3 helper/macos_agent.py # basic
sudo python3 helper/macos_agent.py # MDM / profile / user data
# → http://127.0.0.1:38764/statuspython3 helper/client_readiness_agent.py
# → http://127.0.0.1:38765/statusEdit helper/fleet_clients.json, then:
python3 helper/fleet_collector.py
# → http://localhost:38766Each configured client must expose a Client Readiness Agent on port 38765.
| Port | Component |
|---|---|
7070 |
MQ Mirror live server |
38764 |
macOS Enterprise Agent |
38765 |
Client Readiness Agent |
38766 |
Fleet Collector |
Watches your macOS GUI context and streams equivalent terminal commands in real-time to a local web page.
./tools/mqmirror/start.sh
# → opens docs/handoff.html at http://127.0.0.1:7070CLI commands:
python3 tools/mqmirror/gui_to_cli.py list
python3 tools/mqmirror/gui_to_cli.py watch --compact --ignore-terminalEvaluates bundled baselines for IGEL OS 12 + Citrix, macOS + Citrix, and macOS enterprise CIS-style compliance.
python3 tools/mq-client-optimizer/mq_client_optimizer.py list-baselines
python3 tools/mq-client-optimizer/mq_client_optimizer.py analyze \
--baseline macos-enterprise-cis-lite --sampleLocal Flask server that generates Draw.io diagrams from natural language descriptions via an LLM backend.
cd tools/drawio-generator
./start.sh
# → http://127.0.0.1:5001Requires a .env file — copy .env.example and fill in your API key.
Design-Prototype/
├── docs/
│ ├── index.html
│ ├── ARCHITECTURE.md
│ ├── SAFE-SHARING.md
│ ├── handoff.html ← MQ Mirror live UI
│ ├── Client Readiness Dashboard.html
│ ├── Fleet Command Center.html
│ ├── macOS Enterprise Dashboard.html
│ ├── Certificate Expiry Timeline.html
│ ├── MQ Fleet Report.html
│ ├── MQ Asset Downloader.html
│ ├── MQ Site Fix Advisor.html
│ └── MQ Client Optimizer.html
├── helper/
│ ├── client_readiness_agent.py
│ ├── fleet_collector.py
│ ├── fleet_clients.json
│ └── macos_agent.py
└── tools/
├── redact-macos-agent-status.py
├── drawio-generator/
├── mq-client-optimizer/
└── mqmirror/
Agent output may include hostname, serial, IP addresses, usernames, and certificate subjects. Redact before sharing:
curl -s http://127.0.0.1:38764/status | python3 tools/redact-macos-agent-status.pySee docs/SAFE-SHARING.md for the full redaction guide.
| Doc | Purpose |
|---|---|
| GitHub Pages | Product-style front door |
| Demo Gallery | Visual overview of the prototypes |
| Architecture | Helper agents, ports, and data flow |
| Safe Sharing | What to redact before sharing output |
| Project Map | How the repo is structured |
| Project Status | Active, rough, and next-step areas |
| Roadmap | Planned hardening and next milestones |
This is a design and architecture exploration, not a finished product. Some live modes depend on helper agents that may be local-only, external, or future work.
Mattias Camner — Infrastructure / Platform Architect
MIT