A web-based interface for CNC milling controllers running Grbl, Marlin, Smoothieware, or TinyG firmware.

CNCjs is an open-source web application that provides a graphical interface for CNC milling controllers. It acts as a server that communicates with machine hardware, allowing users to control their equipment through a web browser. The software is typically deployed on a server or a single-board computer like the Raspberry Pi to manage the connection between the computer and the CNC hardware via serial communication.
The application supports several common firmware types, including Grbl, Marlin, Smoothieware, and TinyG. Users can upload G-code files, monitor machine status in real time, and manage the milling process from any device with a compatible browser. It includes a responsive design to accommodate small screens and tablets used in workshop environments, ensuring that operators can monitor their machines without needing a full desktop workstation.
The software is built using Node.js and can be configured via a JSON file or command-line arguments. It supports a variety of external pendants, including options for USB keyboards, numpads, and Raspberry Pi GPIO controls. For production environments, a simplified tablet UI is available to optimize the interface for shop floor use. The system allows for the creation of custom widgets and pendants through provided boilerplate code, enabling users to extend the functionality of the interface to meet specific hardware requirements.
Deployment is handled via npm, and the server can be configured to allow remote access or specific mount points for serving static files. The architecture allows the server to remain connected to the CNC controller while multiple clients view the status or send commands. This makes it suitable for environments where the controller is located in a noisy or dusty area and the operator prefers to work from a remote terminal.
CNCjs serves as a centralized control panel for hobbyists and professionals operating CNC machinery with compatible firmware.
A personal cloud system for managing home servers through a visual interface and Docker container deployment.
A web based Linux server control panel for managing websites, databases, containers, and AI agent runtimes.
Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.