MacBuddy
CNSjs icon

CNSjs

Misc
3.8(76 votes)

macOS

Updated: Jun 17, 2026

CNSjs is a browser-based, open-source control interface that connects your Mac to CNC milling machines and routers running Grbl or other compatible motion controllers via a serial port.

What is CNSjs?

CNSjs (more formally known as CNCjs) is a web application that turns your Mac into a fully capable operator console for desktop CNC machines. Instead of wrestling with clunky proprietary software or a dedicated Windows box, you run a lightweight Node.js server on your Mac and control the spindle, jog the axes, and stream G-code — all from a tab in your browser. The interface works with Grbl, Smoothieware, and TinyG, covering the overwhelming majority of hobbyist and prosumer CNC routers, laser cutters, and mills in the wild.

I've used it to run a Shapeoko 3 and a 3018 desktop router, and the experience is remarkably polished for a free, community-driven project. The real-time DRO (digital readout), jogging controls, and G-code visualiser give you everything you'd expect from a commercial sender — without the price tag or the Windows dependency.

What does CNSjs do best?

CNSjs excels at putting a clean, information-dense operator dashboard in front of any Grbl-compatible machine without requiring you to buy or maintain dedicated CNC PC hardware. The built-in G-code visualiser renders your toolpath in 3D before you cut, which has saved me more than a few expensive spoilboard replacements. Macros let you script repetitive setup sequences — homing, probing, zero-setting — so you're not retyping the same dozen commands every session.

  • Real-time G-code streaming over USB serial, with feed-hold and emergency stop always one click away
  • 3D toolpath preview so you can spot crashes before the spindle does
  • Customisable widget layout — drag panels around to match your physical workflow
  • Macro library for repeatble probing and zeroing routines
  • Plugin architecture that the community has used to add laser mode, pendant support, and more

Where it lags behind commercial senders like Carbide Motion or UGS Platform is in out-of-the-box machine profiles — you'll configure feeds and limits yourself. That's a fair trade for a tool that costs nothing.

Is CNSjs free?

Yes — CNSjs is completely free and open-source under the MIT licence. There is no paid tier, no subscription, and no feature lock. You install it via Homebrew Cask or download the Electron-wrapped desktop app from the project's GitHub releases page. The only real cost is the time to set up your serial port permissions on macOS, which takes about five minutes and is well documented in the project wiki.

Who should use CNSjs?

CNSjs is the right tool for makers, fabricators, and small-shop machinists who already own a Mac and a Grbl-based CNC machine and don't want to keep a dedicated Windows workstation beside the router table. If you run a Shapeoko, X-Carve, 3018-series machine, or a self-built router with a Grbl controller, this is an immediate quality-of-life upgrade over the bare serial terminal or lighter senders like GrblPanel.

It is not the right fit if your machine runs Mach3/Mach4 or a proprietary motion controller (Haas, Fanuc, etc.) — those require their own dedicated software stacks. Likewise, if you want a guided, wizard-driven experience similar to Carbide Motion's machine setup flow, CNSjs will feel low-level by comparison.

How does CNSjs compare to Universal Gcode Sender?

Universal Gcode Sender (UGS) is the other dominant open-source G-code sender and the most direct comparison. UGS is a Java desktop application with a traditional windowed UI; CNSjs is a Node.js server with a browser front-end. In practice, CNSjs feels more modern and is easier to skin or extend via its widget/plugin model, while UGS has a more mature machine-profile system and doesn't require a running server process. I reach for CNSjs when I'm at my desk with a proper monitor; UGS wins when I need a self-contained portable app with no server to babysit. Both are actively maintained, so it genuinely comes down to preference.

Other tools worth knowing: Easel (Inventables' cloud sender, browser-based but proprietary and Shapeoko-centric), bCNC (Python, feature-packed but dated UI), and Candle (Qt-based, Windows-first). CNSjs sits comfortably above bCNC in polish and below commercial options in hand-holding — exactly where most competent hobbyists want to be.

What are the best CNSjs alternatives?

The strongest alternatives on macOS are Universal Gcode Sender (cross-platform Java, most feature-complete open-source option), bCNC (Python, best probing and auto-levelling toolset), and Carbide Motion (free but locked to Carbide 3D machines). For laser-focused workflows, LightBurn handles Grbl-based diode lasers far better than any general G-code sender. If your machine supports it, the official vendor app is always worth trying first — CNSjs earns its place when there is no vendor app, or when the vendor app is Windows-only.

Software Information

Software Name
CNSjs
Version
Latest
Developer
Category
Misc
OS Compatibility
macOS
Architecture
Apple Silicon & Intel (Universal)
License
Shareware
Language
English
File Size
Last Updated
Jun 17, 2026