← Back to list

Mendix in Docker, One Command🐳

How one npm command (and a lot of stubborn debugging) turned my terminal into a headless Mendix studio

Vishnu Prasath T A · 2026-06-01 04:31 · 2 claps · 4.3 min read
#mendix #mxcli #docker
Open on Medium ↗
Wiki topics: 💻 · Programming ☁️ · DevOps & Cloud 🥊 · Combat Sports

Mendix in Docker, One Command🐳

How one npm command (and a lot of stubborn debugging) turned my terminal into a headless Mendix studio

npx mx-studio-automate

npx mx-studio-automate

The itch 🤔

If you’ve used Mendix, you know Studio Pro — the big, friendly visual editor where you click your way to an app. It’s great. But it’s also a window you have to open, a GUI you have to drive by hand.

I had a different idea:

What if my AI assistant could build, check, and run a Mendix app entirely from the command line — and I never had to open Studio Pro at all?

Spoiler: it can. And the journey to get there was equal parts “wow, this actually works” and “why is this build hanging for 39 minutes?” 😅

Grab a coffee. This one’s a ride.

First, a myth to bust 🧨

When people hear “Mendix without Studio Pro,” they assume I’m faking or emulating Mendix. Nope.

Studio Pro is really just a dashboard wrapped around real engines:

  • 🖱️ Click in the domain model / pages → the model engine that reads & writes the .mpr
  • 🔴 See red error markers → mxbuild / mx check
  • ▶️ Hit Run Locally → builds the app + spins up a runtime + a database

My setup just drives those same engines from the terminal — the real mxbuild.exe, the real Mendix runtime. Two steering wheels, one engine.

🚗 Pull quote: “It’s not a simulator. It’s the same Mendix machinery — just headless.”

The cast of characters 🎭

To go GUI-free, my AI agent needs four tools working together:

  • 🛠️ mxcli — edits the Mendix model from the command line
  • 🔎 mxbuild — the error checker (same one Studio Pro uses)
  • 🐳 Docker — runs the app + a Postgres database in containers
  • 🔬 Chrome DevTools — lets the agent verify the running UI

The problem? Setting all of that up by hand, on a fresh machine, is a chore. So I packaged it.

Enter: mx-studio-automate ✨

One command checks (and fixes) your whole environment.

One command checks (and fixes) your whole environment.

One command:

npx mx-studio-automate

It scans your machine, auto-installs the safe stuff, and gives you copy-paste instructions for the heavy stuff (like Docker, which needs admin rights). It even wires up the AI agent’s config so it’s ready immediately.

mx-studio-automate  v0.3.0
✔  mxcli            found   v1.4.0
✔  mxbuild          found   11.10.0
✔  JDK 21           found   21.0.11
✔  Docker           found   29.3.1
✔  Chrome DevTools  found
✔  AI agent config  found
🎉  All set!

Safe to re-run any time — it only ever fills the gaps.

❓ Reader check: How long does setting up a new dev environment usually take you — minutes, or a “clear your afternoon” kind of thing? 👇

The headline trick: build & run, no Studio Pro 🚀

npx mx-studio-automate --run

Behind the scenes it does the whole Mendix deployment dance:

  1. Generates a Docker stack (app + Postgres)
  2. Builds the app package with mxbuild
  3. Boots it all in Docker
  4. Hands you a live URL

A real Mendix app, running in Docker, launched from one terminal command.

A real Mendix app, running in Docker, launched from one terminal command.

And because builds can be slow and silent, I added a live loader so you always know it’s alive (and won’t rage-quit mid-build):

⠹  Building app package… 1m 12s — please don't close this window

Then, for the edit→see loop, there’s --reload — a hot reload that pushes your changes into the already-running app in seconds, no cold restart:

npx mx-studio-automate --reload          # rebuild + reload
npx mx-studio-automate --reload --css    # styling only, instant

💡 Tip box: After the first --run, you never cold-start again. Edit → --reload → refresh browser. That's the whole loop.

A little terminal eye-candy 🎨

Because if you’re going to stare at a CLI all day, it might as well be pretty. The intro draws itself in — mx as a faint outline, studio in crisp white, automate in Mendix blue:

 _ __ ___ __  __
| '_ ` _ \ \/ /
| | | | | |>  <
|_| |_| |_/_/\_\
    _             _  _
 ___| |_ _   _  __| (_) ___
/ __| __| | | |/ _` | |/ _ \
\__ \ |_| |_| | (_| | | (_) |
|___/\__|\__,_|\__,_|_|\___/
             _                        _
  __ _ _   _| |_ ___  _ __ ___   __ _| |_ ___
 / _` | | | | __/ _ \| '_ ` _ \ / _` | __/ _ \
| (_| | |_| | || (_) | | | | | | (_| | ||  __/
\__,_|\__,_|\__\___/|_| |_| |_|\__,_|\__\___|

🎬 GIF — Record the intro animation (mx → studio → automate revealing top-to-bottom) and drop a short looping GIF here. Tools: ScreenToGif (Windows) / Kap (macOS). Caption: “Yes, I spent an embarrassing amount of time on a terminal banner. Worth it.”

So… should you use it? 🧭

If you’re a Mendix developer who:

  • 💻 lives in the terminal,
  • 🤖 wants an AI agent to drive your project,
  • 🐳 likes running apps in Docker, and
  • 🙅 would rather not open a heavy IDE just to check for errors —

…then give it a spin:

npx mx-studio-automate

It’s open source, MIT-licensed, and on npm. ⭐

What I learned 📚

  • The “magic” of low-code tools is just real tooling with a nice UI — and you can absolutely reach the tooling directly.
  • A good CLI is honest: do the safe magic, but tell the user clearly when they need to act.
  • Half of shipping a dev tool is debugging other people’s environments — spaces in paths, stale cookies, version twins, hidden prompts.
  • And a little terminal polish goes a long way. 💙

👋 Your turn

Have you ever ditched a GUI for the command line and never looked back? Or is there a tool you wish had a headless mode? Drop it in the responses — I read every one.

If this was useful, a few 👏 claps help more people find it. Thanks for reading!


메타데이터
post_id
781154324dc6
slug
mendix-in-docker-one-command-781154324dc6
url
https://medium.com/@vishnuprasath011/mendix-in-docker-one-command-781154324dc6
canonical_url
https://medium.com/@vishnuprasath011/mendix-in-docker-one-command-781154324dc6
author_url
https://medium.com/@vishnuprasath011
status
ok
fetched_at
2026-07-12 00:07:18