CNC Machining Program Manager CLI Tool with Status, Add, List, Search, Remove, Export, Stats and Config Commands

0 0 Updated: 2026-08-02 11:29:16

CNC machining program manager is a command-line tool designed for managing CNC machining programs. It offers commands for status viewing, adding new entries, listing all entries, searching, removing, exporting data, displaying statistics, and configuring preferences. Data is stored in JSONL format in ~/.cnc/ directory. This tool simplifies CNC program management with structured output and error handling.

Install
npx skills add https://github.com/bytesagain/ai-skills --skill cnc
Skill Details readonly

From Workshop to Command Line: The Evolution of CNC Program Management

To be honest, the first time I saw this CNC machining program manager, the first thought that popped into my head was: what on earth is this thing for? After all, in our day-to-day exposure to CNC machining, aren't we all just relying on the machine's built-in control panel and copying programs over via USB drive? But after I took a closer look at this command-line tool, I realized I had seriously underestimated it.

In plain terms, this tool is essentially a command-line assistant specifically designed for managing CNC machining programs. In the past, when we managed program files, we either had to dig through piles of folders or rely on memory to match which program corresponds to which part—honestly, that was exhausting. Now, with this tool, you can directly view the current status in the terminal, add new programs, list all programs, search for the one you want, remove unwanted programs by number, and even export data, view statistics, and adjust configurations—all in one smooth, fluid workflow.

Hands-On Experience: The Commands Are Intuitive, No Complicated Detours

I specifically went to check out the project page on GitHub and found that its usage is extremely simple—basically one command does it all. All operations are carried out through the scripts/script.sh script, followed by different subcommands. For example, if you want to check the current status, you simply enter:

scripts/script.sh status

Want to add a new program record? Use the add command. Want to view all records? Use list. Want to search for a specific program? Use search. Want to remove a program? Use remove, and it removes by number, which is very convenient. In addition, there's export to export data to a file, stats to help you compile various statistics, config to view or set configurations, plus the two standard commands help and version. Each command corresponds to a clear, distinct purpose, so it's hard to get confused.

Data Storage: JSONL Format, Simple Yet Reliable

Regarding data storage, this tool uses the JSONL format—that is, one JSON object per line. The advantage of this format is that the structure is clear, and since each line is independent data, it's easy to read and also easy to parse with other tools. All data is stored in the ~/.cnc/ directory. If you don't want to use the default location, you can also change the directory by setting the CNC_DIR environment variable—it's quite flexible.

What I found particularly thoughtful is that its output is structured and goes directly to standard output (stdout), making it very easy to pipe the output into other scripts or automation workflows. It also follows a simple convention: it returns exit code 0 on success and exit code 1 on error. While this design is simple, it's genuinely useful when writing automation scripts—you can determine whether a command executed successfully based on the exit code, without having to parse through a bunch of messy output.

My Usage Insights and Notes of Caution

To be honest, I haven't actually used this tool in a real workshop, since I'm not in machining myself. But just by looking at the project's design philosophy, you can tell the author truly understands the pain points of CNC program management. It consolidates all those tedious program file management operations into just a few commands, eliminating a lot of hassle.

Here are a few things to keep in mind when using it:

  • The installation is simple—just use npx skills add https://github.com/bytesagain/ai-skills --skill cnc and you're done, provided you already have Node.js and npm installed.
  • If it's your first time using it, it's recommended to start with the status command to check the current state and see whether the data directory has been created.
  • When adding program records, try to fill in the information as completely as possible, so that later searches using the search command can be more accurate.
  • Don't casually modify the JSONL file format in the ~/.cnc/ directory—if you break it, the tool might not be able to read the data anymore.
  • If you don't want your data to stay in the default directory, set the CNC_DIR environment variable in advance to avoid data being scattered across different locations later.

Who Is This Tool Suitable For?

If you're a CNC machine operator, a process engineer, or someone working on automated production line integration, this tool should help you save a considerable amount of time. It can serve as a central console for managing your CNC programs—you no longer need to rummage through folders. Just type a few commands in the terminal, and you'll know what programs exist, what their status is, and how to make adjustments.

Moreover, this tool is open source and hosted on GitHub. The repository is bytesagain/ai-skills, and the author is BytesAgain. If you have any special requirements, you can go straight to the source code, modify it, and adapt it to better fit your own usage scenarios.

All in all, this CNC machining program manager may not look impressive at first glance, but in an actual production environment, it should prove quite effective. If you happen to have a need for CNC program management, why not install it and give it a try? After all, installation is just one command, and the cost of trying it out is practically zero.