Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Chatter NC EditorNew to Visual Studio Code? Get it now.
Chatter NC Editor

Chatter NC Editor

Chatter.dev

|
1,602 installs
| (1) | Free
A powerful G-code editor and FTP extension
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Chatter NC Editor Extension for VS Code

Thanks for checking out the Chatter NC Editor extension for VS Code! This extension is designed to make it easier to edit NC files. As of today, code comprehension is built for Fanuc-style code (including Haas). Support for additional code syntax such as Heidenhain and Siemens is planned for the future.

This is plugin is currently in beta, and we welcome any feedback!


Features

Code Comprehension & Navigation

The extension parses operations, tools, offsets, and probing cycles into the sidebar for easy navigation. For more information on the comprehension rules, see the section Explination of Code Comprehension below.

FTP Client

The extension features a built-in FTP client for easy file transfer to and from your machine. To use the FTP client, you must first configure your machine's IP address and credentials by pressing "Add Your First Machine". Once connected, you can browse the machine's file system and download files by double clicking them. You can also upload files by dragging them into the FTP panel. To add additional machines, press "Add New Machine". To configure additional settings, such as port and base directory, click the gear icon in the top right corner of the FTP panel.

Git-Based Version Control

The extension features a simplified interface for git-based version control. It allows you to commit changes to the "master" branch of the repository. There are three buttons:

  • Initialize - Initializes a git repository in the current working directory if one does not already exist. Equivalent to git init
  • Commit - Commits all changes to the "master" branch of the repository. You will be prompted to enter a commit message after clicking the button. Equivalent to git add . and git commit -m <commit message>
  • Discard Changes - Discards all changes since the last commit. Equivalent to git reset --hard HEAD

In the Version History panel, click a commit to check it out. This is equivalent to checking out that commit in git. You will be in a "detached HEAD" state, meaning that any changes you make will not be saved to the repository. To save your changes, you must commit them. To return to the latest commit, click the top commit in the "Version History" panel. This will return you to the "master" branch. Equivalent to git checkout <commit hash>

Right clicking a commit in the Version History panel will also display the option to "Reset here". Upon confirmation, this will reset the repository to the state of the selected commit. Equivalent to git reset --hard <commit hash>. IMPORTANT: This will permanently discard any changes made since the selected commit. This action cannot be undone.

Toolbox

The toolbox panel is a collection of tools to make formatting G-code easier. The current tools are:

  • Add Spaces Between Blocks - Adds a space between each block of code if there are adjacent blocks
  • Remove Spaces Between Blocks - Removes spaces between each block of code.
  • Add Trailing Decimals - Adds a decimal place to dimensional blocks that are missing one. For example, "X1" becomes "X1.". This applies to codes X, Y, Z, A, B, C, I, J, K, R, and F
  • Add Trailing Semicolons - Adds a semicolon to the end of each line of code if there is not already one.
  • Add Line Numbers - Adds line numbers to each line of code, starting at N10 and incrementing by 5 for each line.
  • Remove Line Numbers - Removes line numbers from each line of code.
  • Remove Blank Lines - Removes blank lines from the code.
  • Sync Channels - If you are running a "multi channel" machine using sync codes, open two documents next to each other and lines will be added to synchronize at codes M100 through M199.

Snippets

The snippets section allows you to store commonly used blocks of G-code for easy insertion. To add a snippet, highlight the line(s) of code you want included in your snippet, right click, and press "Create G-Code Snippet". You will be prompted to name your snippet. To insert a snippet, right click in the editor and press "Insert G-Code Snippet". You will be prompted to select a snippet from the list of available snippets. The snippet will be inserted at the cursor location.

Requirements

  • Visual Studio Code
  • Git (if using version control)

Explination of Code Comprehension

The NC comprehension is designed to make it easier to navigate NC files. It reads the NC code line by line and makes the following assumptions:

  • "T" blocks represent tools (see Require M6 for tool changes setting to change M6 requirement)
  • Valid offsets are G54, G55, G56, G57, G58, G59, and G54.1 P***
  • Given that G52 and G53 are not modal, they are ignored
  • "S" blocks represent spindle speed
  • Operations are defined as a comment line (encased in parentheses) preceded by an empty line
  • Tools and offsets are inherited from the previous operation (ie modal). They are marked with "Inherited from {operation name}" in the sidebar
  • Any code encased in parentheses is a comment
  • Any text following the ";" character is a comment
  • Any line that starts with a "%" character is a header

Current Code Comprehension Limitations

  • The extension does not currently support subprograms
  • Inherited spindle speeds do not currently consider M03/M04/M05 commands
  • Only tested with Haas and Fanuc code
  • Only supporting Renishaw probing cycles at this time

Roadmap

  • Extend comprehension to include Heidenhain and Siemens code
  • Thumb drive identification (ensure code is synced between local and remote)
  • Expanded G-code comprehension for diffing
  • Ability to add remote repositories (Chatter Vault)
  • ITAR / CMMC compliance via the cloud (Chatter Vault w/ GovCloud)
  • Support for on-premise git remotes

Extension Settings

  • Require Tool Change Block - Only register tool changes when one of the valid tool change blocks (defined below) is present on the same line as the T block. (default: true)
  • Tool Change Codes - Codes to detect a tool change line. Only used if "Require Tool Change Block" setting is active. (default: M6, M06)
  • Operation Detection Mode - Determines how operations are detected. (default: Auto)
  • Default Git Branch - The default branch to use when initializing a git repository. (default: master)
  • Enable Telemetry - Send anonomized usage data to Chatter to help us imporve the extension. No NC data is sent with this telemetry. (default: true)
  • Rename Files While Transferring - Prompt to rename files when transferring from computer to machine

About Chatter

Chatter is a manufacturing software company based in Roseville, CA, and our mission is to modernize the way that shops use their data. This company was started in a working machine shop, born out of frustration with most software tools for industry being expensive, outdated, and difficult to use. Our goal is to make software that provides real, tangible improvements to the way that shops operate.

Our first product, Chatter Machine Monitoring, is used in shops around the world to provide realtime notifications, remote viewing, and analytics for CNC machines. This extension is our first step towards building a suite of tools around the idea that your shop's data should be accessible and connected at all points in the chain.

We hope you enjoy this extension, and we welcome any feedback!

Twitter: @peteoxenham

Instagram: @chatter.dev

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft