Cncjs auto level installation HELP

good day to all of you in this forum,
I am not able to install the autolevel on my CNCJS program: I am not a software engineer .
I do not understand how to use the downloaded pack for installing it .
Any help is appreciated.
Thanks in advance.

We need a bit more information. What is “auto level”? I’ve been using CNCjs for a while, no idea what that is.

@Griff Autoleveling, as it relates to CNC router use, is kind of like the bed leveling your Prusa does. Basically you probe a non flat surface and the gcode gets adjusted to change your Z height based on that surface map.
CNCjs does not have this built in (yet), but someone wrote an extension that will allow you to do it. I haven’t tried and this is one reason I still have bCNC installed. It’s been a frequently requested feature and I think by version 2.0 it’ll be included.
@Ambro, you might have better luck on the CNCjs GitHub site. Or give @Julien a minute and he’ll figure it out. What are you running CNCjs on?

1 Like

Hi @Ambro,

@neilferreri knows me too well, I couldn’t resist looking into it since I did not know about a CNCjs extension for autoleveling like bCNC has.

The only one I found is this one, is this what you are trying to install ?

I had a go at installing it, it’s in fact a CNCjs extension that works like a CNCjs pendant: it’s a separate piece of software that you have to run once CNCjs is already executing, it will connect to the CNCjs application and react to the a specific “autolevel” keyword.

The installation depends on which OS you are using, I tried on Windows10. I’m afraid it’s a little involved (but doable):

  1. install “git”
  2. install “node.js” (which should also install “npm”)
  3. open a console window (search box, type “cmd”, a black text mode window appears)
  4. download the code for the autolevel extension by typing “git clone
  5. it will have created a directory “cncjs-kt-ext”, enter it (cd cncjs-kt-ext) and install the extension by typing “npm install”
  6. now you need to figure out which network port CNCjs runs on. If you are using a CNCjs “server” install, it is most likely 8000. If you are running the CNCjs standalone application, you will need to go to “View” menu, “View in browser”, this will open another CNCjs interface in your browser, and the port number will be displayed at the end of the URL (in my case it showed “”, so the port is 61678. It changes everytime you relaunch the CNCjs app unfortunately.
  7. launch the Autolevel extension, still from the command line, by typing “node .” from inside the cncjs-kt-ext directory. It should print something like

Connected to ws://localhost:61678?token=[a very long string of characters]
Connected to port “COM16” (Baud rate: 115200)

Almost there, now you need to create a macro in CNCjs (clicking the “+” in the Macro widget), name it “autolevel”, and paste exactly this piece of text:


And then your are done with the install. To use the feature,

  • you will need to have a probing device attached to the Shapeoko controller’s PROBE input
  • if the probing device is mechanical (e.g. a push switch), you can proceed.
  • if the probing device works by detecting electrical contact, you need make sure the surface of the piece you want to probe conductive, for e.g. a PCB it is already, for other material the usual trick is to wrap aluminium foil on the top surface
  • You then set your job zero on the piece as usual (the autolevel macro expects that it is the lower left corner of the job though), leave the cutter at 0,0,0, and run the autolevel macro from CNCjs

I have not actually run the macro on a real example, I tested all of this on a simulated Shapeoko to make sure the extension is sending the G-code commands when prompted, but if anyone is interested, I can certainly try it “for real”.


Thanks Griff for the reply,
That feature is used to compensate for the errors introduced by the machine plane and it is very important to mill PCB. I did download the extension from but I do not really understand how to install it.
Thanks for helping,

1 Like

thanks ,
could you please spend few more words on points 1 through 7 ?
What do you mean with " install git ? and node.js ?
I did download the code requested on point 4.
Thanks again.


  • you can forget about 1) for now, since you have downloaded the cncjs-kt-ext zip file already
  • for installing the “Node.js” framework, go to and download the correct installer for your OS (is it Windows?), and execute it.
  • extract the zip file of cncjs-kt-ext somewhere you like on your computer, then try to follow steps 3,5,6,7

If you are not comfortable with using the Windows command line window, you should start by getting familiar with that.

If you feel this is too complicated, you are probably better off trying bCNC, which has autolevel by default (I think?). If you still want to try, I’ll do my best to help you following the steps and getting this to work.


Learned something new today and it’s only 6;56 am.

Been thinking about making simple pcb’s for various wiring projects, been wondering if doable on SO3. I’ll wait ‘til leveling is added to CNCjs. Or try bCNC.

Thank very much to all for the assistance.
I did try to installa the extension for CNCjs and I di try to make bCNC working but they are too tricky for me !
I found a program called " Candle " on the WEB and it is very simple to install . It runs very well under windows _10 . It also has auto_levelling included. It is very strightforward to use.
I would recommand it .
Thanks again for the kind assistance .

1 Like

This is a g-code sender I did not know about, interesting, thank you. Let us know your feedback once you have successfully used autoleveling with Candle, I’m sure some here will be interested.

I did try this morning with a very simple PCB : it is working well .
Please note that auto_levelling is called height_map here !
Thanks for all.

1 Like