Type what you want carved. Chip designs it, checks it, and carves it on a FoxAlien XE-Ultra 8080 CNC — no CAM software, no G-code, no jargon.
Project description
Chip
Type what you want carved. Chip does the rest.
Chip is a desktop app that turns a plain-English sentence — "I want a sign that says The Hendersons with a pine tree on each side" — into a carved piece of wood on a FoxAlien XE-Ultra 8080 CNC machine.
It is built for one very specific user: a retired carpenter in his 70s who knows everything about wood and nothing about software. There are no file formats, no coordinate systems, no G-code, and no settings panels in the main flow. You describe the thing, look at a picture of it, tap the wood you clamped down, follow a photo checklist, and press one big button.
Honesty section: Chip is built for exactly one machine — the FoxAlien XE-Ultra 8080 (840 × 840 × 120 mm, GRBL/grblHAL over USB serial). Machine limits live in config so contributors can adapt it, but nothing else has been tested. If you have a different machine, expect to do some work.
Install
For the workshop PC (Windows): download ChipSetup-<version>.exe from the
latest release and run it.
Windows SmartScreen will warn about an unknown publisher — click More info →
Run anyway (the exe is unsigned; this is expected).
For technical users (any OS):
pip install chip-cnc # add 'chip-cnc[trace]' for picture tracing
chip # launches the app
chip --demo # full app with a simulated machine, no hardware needed
chip --self-check # verifies the install, exits 0 when healthy
The PyPI package is chip-cnc; the import package is chip.
What it does
- Describe it: type (or dictate with Win+H) what you want. An AI designer lays out text and art on your board. No API key or internet? Templates and manual editing still work; only the "ask for help designing" features gray out.
- See it: a true-to-size preview on a wood-textured board. Drag things around with big handles, or just type "make the name bigger".
- Carve it: the app walks through clamping, the right bit (with a photo), setting the start point, and probing — then streams the job with a giant STOP button on screen the whole time.
Everything technical — API keys, serial ports, feeds and speeds tables, logs, firmware info — lives in a hidden Admin area for the person who set the app up.
Safety disclaimer
CNC machines spin sharp tools with real force and can injure you and destroy material. Chip adds software interlocks (homing/zeroing requirements, envelope checks, probe confirmations, an always-visible stop), but you are responsible for safe operation: eye protection, dust control, secure clamping, and never leaving a running machine unattended. The software is provided as-is, without warranty of any kind, per the Apache-2.0 license.
Development
git clone https://github.com/brettbergin/chip
cd chip
pip install hatch
hatch run test # pytest (Qt runs offscreen)
hatch run lint # ruff
hatch run typecheck # mypy
hatch build # sdist + wheel
See CONTRIBUTING.md for the ground rules and
DECISIONS.md for the judgment-call log. The architecture in
one line: pipeline/, models/, store/, and the GRBL protocol code are
pure Python (no Qt) and headless-testable; ui/ imports everything; nothing
imports ui/. A test enforces this.
License
Apache-2.0 — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chip_cnc-0.1.0.tar.gz.
File metadata
- Download URL: chip_cnc-0.1.0.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41d0daeb1120355c3abfe571755d31cd1a1fee941b44afdf6377d2c5596b0fc3
|
|
| MD5 |
030f2ee28f5bd397644f68ea196f96c5
|
|
| BLAKE2b-256 |
8d30857367cc1c2854a5ed7d1879be81a8417998242255c8235eefd52c491160
|
Provenance
The following attestation bundles were made for chip_cnc-0.1.0.tar.gz:
Publisher:
release.yml on brettbergin/chip
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chip_cnc-0.1.0.tar.gz -
Subject digest:
41d0daeb1120355c3abfe571755d31cd1a1fee941b44afdf6377d2c5596b0fc3 - Sigstore transparency entry: 2158859185
- Sigstore integration time:
-
Permalink:
brettbergin/chip@2d7454e679ea4e0a180182ba5c6a75d3eb8693b6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/brettbergin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2d7454e679ea4e0a180182ba5c6a75d3eb8693b6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file chip_cnc-0.1.0-py3-none-any.whl.
File metadata
- Download URL: chip_cnc-0.1.0-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a76ca3c34a098062739dd23c6d64cd1d93d6a827e7ccf4e170c880a4d60b4647
|
|
| MD5 |
a1a29a2df6496175073508c506aa0223
|
|
| BLAKE2b-256 |
4a3f3c4edba378d75e9eae38a4c0db25e653d68f422a120998612ee60edddfd0
|
Provenance
The following attestation bundles were made for chip_cnc-0.1.0-py3-none-any.whl:
Publisher:
release.yml on brettbergin/chip
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chip_cnc-0.1.0-py3-none-any.whl -
Subject digest:
a76ca3c34a098062739dd23c6d64cd1d93d6a827e7ccf4e170c880a4d60b4647 - Sigstore transparency entry: 2158859207
- Sigstore integration time:
-
Permalink:
brettbergin/chip@2d7454e679ea4e0a180182ba5c6a75d3eb8693b6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/brettbergin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2d7454e679ea4e0a180182ba5c6a75d3eb8693b6 -
Trigger Event:
push
-
Statement type: