CNCjs Review, Pricing & Features

CNCjs is a free, open-source, web-based interface for CNC machines running Grbl, Marlin, Smoothieware, or TinyG. Learn features and how it works.

Category
Productivity
Pricing
Free/Open Source, from Free
Verified
Not yet
Last updated
July 18, 2026
Free PlanWeb AppAPIOpen SourceSelf-Hosted

Overview

CNCjs is a free, open-source, web-based interface for controlling CNC machines running Grbl, Marlin, Smoothieware, TinyG, or g2core firmware. It runs as a lightweight Node.js server — commonly on a Raspberry Pi — and streams G-code to the machine's controller board over serial, Bluetooth, or WiFi, while exposing a full control dashboard through any web browser.

As a community-maintained open-source project distributed under the MIT license, CNCjs has no corporate ownership, funding history, or headquarters — it is developed and supported by contributors via its GitHub repository rather than a commercial company.

Key Features

CNCjs provides 3D toolpath visualization, a G-code sender/console, manual jogging controls, workspace and coordinate management, macro support, and widgets for probing, spindle/laser control, and firmware-specific settings.

Recent releases have added support for the CNC xPro V5 controller and FluidNC firmware on ESP32 (enabling WiFi-based control), along with UART reliability improvements and new jog-cancel commands, while companion projects like cncjs-shopfloor-tablet and cncjs-controller extend it to tablet-optimized shop-floor UIs and custom integrations.

Pricing

CNCjs is entirely free and open source under the MIT license, with no paid tiers, subscriptions, or commercial edition. It can be freely used, modified, and redistributed, including in commercial hardware products, without royalty fees.

The only cost to users is the hardware it runs on (typically an inexpensive Raspberry Pi or an existing laptop) and the CNC controller board itself; the software has no licensing cost.

Key Features

Pros & Cons

Pros

  • Completely free and open source under the permissive MIT license
  • Browser-based architecture allows remote control from any device on the network
  • Broad support for multiple popular CNC firmware types in a single tool
  • Actively maintained with ongoing support for newer hardware like ESP32/FluidNC controllers

Cons

  • Requires some technical setup (Node.js, serial/network configuration) compared to plug-and-play commercial software
  • No official commercial support, warranty, or SLA — support relies on community and GitHub issues
  • Interface and feature set are more utilitarian than polished commercial CAM/control suites
  • Documentation can lag behind the fastest-moving firmware and hardware compatibility changes

Pricing

Frequently Asked Questions

Is CNCjs free?

Yes, CNCjs is completely free and open source under the MIT license, with no paid tiers or commercial version.

What CNC firmware does CNCjs support?

CNCjs supports Grbl, Marlin, Smoothieware, TinyG, and g2core firmware, and has added official support for FluidNC running on ESP32 controllers.

Can CNCjs run on a Raspberry Pi?

Yes, CNCjs is commonly installed on a Raspberry Pi, which then acts as a lightweight server that can be controlled remotely from a browser on any device on the same network.

Does CNCjs require an internet connection?

No, CNCjs runs locally on your network; it does not require an internet connection to control a CNC machine, only a local network connection between the controlling device and the server.

What is the difference between CNCjs and Universal Gcode Sender?

Both are free, open-source G-code senders, but CNCjs is browser-based and network-accessible (allowing remote control from any device), while Universal Gcode Sender (UGS) is a native desktop application.

Who maintains CNCjs?

CNCjs is maintained by an open-source community of contributors through its GitHub repository (github.com/cncjs/cncjs) rather than a commercial company.

Related Tools