Woodchuck
Keeps every design's version history in a local git repository, so changes can be undone and tracked.
Files missing-tool issues and opens pull requests to share approved parts through the GitHub CLI when a writable repository is configured.
Optionally uses the OpenAI API for AI relighting and blending when placing a design into a room photo.
Allows secure remote access to Woodchuck over a Tailscale tailnet behind an owner lock, so it can be used from a phone.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Woodchuckadd panelling to the back of the open cabinet and update the cut list"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Woodchuck
Woodchuck is a furniture planner you talk to. You describe a piece of wooden furniture, Claude builds it with a fixed set of woodworking tools, and you both edit the same 3D model. A picture of a piece isn't enough to build it from, so every size is worked out from the design, checked after every change and set out on a cut list and workshop drawings you can trust before you cut timber. It runs on your own computer and keeps your designs there.

Get it running
You need these.
Node 24 or newer, which comes with npm.
git, which keeps every design's version history.
macOS or Linux. Windows isn't covered, since
start.shis a bash script.An Anthropic API key for the chat with Claude. Without one, everything except the chat still works.
An OpenAI API key if you want the AI blend in photo mode. It's optional, and each blend costs money.
Google Chrome or Chromium, only if another app will ask Woodchuck for pictures of a design.
Install the packages and make your settings file.
git clone https://github.com/shawn-durrani/woodchuck.git
cd woodchuck
npm ci
cp .env.example .envOpen .env and put your Anthropic key after ANTHROPIC_API_KEY=. Git
ignores .env, so your keys stay out of the repo. Then start it.
./start.shOpen http://127.0.0.1:8905. The first start builds the web app, which takes
a minute. After that start.sh only reinstalls or rebuilds when something
changed. Woodchuck answers on this computer only, and your designs are kept
in data/, which git ignores. docs/CONFIG.md lists every
other setting, such as the port.
To work on Woodchuck itself, run npm run dev and open
http://127.0.0.1:8906. That reloads the page as you change the code.
Turn on GitHub, if you want it
Woodchuck can file a missing tool as a GitHub issue and share a part you approve as a pull request. It stays off until you name a repository you can write to, such as your own fork. It works through the GitHub CLI, so install that and sign in.
gh auth loginThen add the repository to .env, written owner/name, and restart.
WOODCHUCK_REPO=you/woodchuckThe issues and pull requests it opens are public whenever that repository is. A missing tool's issue quotes your design only when you tick the box for it.
Keep it running, if you want
On macOS, one command hands Woodchuck to launchd, which starts it at login and restarts it if it stops. Run it from the checkout.
service/install-service.shOn Linux, run ./start.sh under your own service manager.
docs/OPERATIONS.md covers both, with restarts and
logs.
Updating
Pull the new code, then restart Woodchuck.
git pullRun ./start.sh again, or restart the service with
launchctl kickstart -k gui/$(id -u)/dev.woodchuck.server. It reinstalls
packages and rebuilds the web app when they've changed. A restart in the
middle of Claude's turn cuts that turn off, so wait until the chat is
quiet. An open window reloads itself onto the new version once nothing
would be lost.
Related MCP server: MCP Server for SketchUp
What it does
Claude designs with you. It builds a first draft straight away, so you watch it take shape, then pins its plan beside the model. While it works, the screen follows it through the same tabs and controls you'd use, and you can keep talking to it and editing.
It never fakes a design. Claude works with panels, joints, arrays, hardware and rules, and never writes code. When those can't express something, it stops and writes up the tool it needs.
Every size shows its working. A dado lengthens the shelf it holds, and the cut list says so. Change one size and everything that depends on it moves.
Checks run after every change. They catch overlaps, parts nothing holds up, joints out of proportion, parts too big for your stock and the rules you set. A design is ready to cut only when nothing is in error.
Joints come from a library of fourteen, from butt joints and pocket screws to Dominos, mortise and tenons, half laps, box joints and through slots. A drawer's bottom sits in grooves and its corners are rabbeted. Each says when it suits, which tools cut it and its usual proportions, and a worked example on two sample boards shows how it goes together.
Workshop drawings print at true scale. They come as a PDF on A4 or A3, with the main views, a drawing of each part, the cut list, the cutting plan, the drilling list, the Domino settings and the hardware list. Every size on them matches the cut list to 0.1 mm.
Cut layout buys the least timber. Tell it the boards and sheets you already have, and it cuts from those first, ripping narrower parts from wider boards, and buys only the rest. It places every part a saw kerf apart and lists the offcuts worth keeping. The cutting plan prints it on one page to take to the saw, each board by letter with its parts in cutting order and its rips.
Finishes look like timber. Pick a species and a Linolie Satin Wood Oil or Osmo Polyx-Oil colour for a material, a part or a single face, and the Finished look draws its grain under daylight, evening or workshop light.
Your room, with the piece in it. Photo places the design in a photo of your room at its true size. The optional AI blend relights the piece to match, and labels the result as not to scale.
Point at what you mean. Click parts, drag a box or drop numbered pins to tell Claude what to change. A change it suggests is drawn on the model as a ghost until you apply it.
Real parts, researched. Name a drawer slide or a hinge, or paste a link, and Claude researches it on the web and proposes a part card with its sources. Once you approve it, every design can use it.
Nothing is lost. Every change is one undo, whether you or Claude made it, and a version in a git history on your computer.
From your phone or another chat. Put Woodchuck on your own tailnet behind an owner lock to use it from a phone, as docs/REMOTE_ACCESS.md says. It's also an MCP server, so another chat app can work on the open design, as docs/MCP.md says.
The record console, in the design menu, is a worked example and the acceptance test in docs/TESTING.md. Its LP check fails until you change its drawer slides, and the example's card says why.
Your workshop
Claude plans around your workshop. Your workshop, in the design menu on the design's name, holds the tools you have, your usual finishes, the language Claude writes in and the country it searches for parts in. Claude reads them at the start of each message, and changing them never changes a design.
A new install starts with a standard home workshop. That's a table saw or track saw, a router, a drill/driver, a pocket-hole jig, chisels and clamps, with Linolie Satin Wood Oil for colour and Osmo Polyx-Oil Raw 3044 on birch plywood. Claude starts out writing in Australian English and searching for parts in Australia. Change any of them to suit you, and leave the country empty to search anywhere.
Documentation
docs/README.md lists every document by what you're trying to do.
ARCHITECTURE.md holds the settled design decisions and the reasons for them.
docs/CONFIG.md lists every setting and its default.
docs/OPERATIONS.md covers keeping it running, restarts, logs and your designs.
docs/REMOTE_ACCESS.md puts it on your tailnet, behind a lock.
docs/MCP.md connects another chat app.
docs/TESTING.md says what the tests hold.
CONTRIBUTING.md says how to send a change.
SECURITY.md says who can reach the app, what leaves your computer and how to report a problem privately.
Licence
MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
Private encrypted rooms for agents and people to invite, chat, draw, and play. Local and hosted MCP.
A room-based collaborative platform
Build your own tools from chat: design, test and host them on a shareable MCP server URL.
1- flockfsOAuthcom.flockfs
A real-time, multiplayer filesystem for agents and humans: shared files, live edits, history.
Related MCP Servers
- AlicenseAqualityBmaintenanceConnects MCP-aware AI clients to a live SketchUp session so models can be built and edited through natural-language prompts. Exposes typed tools for geometry creation, materials, booleans, edge chamfers/fillets, joinery, scene export, model introspection, viewport screenshots, and an optional arbitrary-Ruby escape hatch.24MIT
- AlicenseAqualityCmaintenanceConnects MCP-aware AI clients to a live SketchUp session so users can create and modify 3D models, apply materials, perform booleans and joinery, and export scenes through natural-language prompts.22MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to read and create geometry in an open Cadwork 3D document via a local bridge, with queued sequential execution, write approvals, undo support, and a live dashboard for monitoring activity.151AGPL 3.0
- AlicenseAqualityCmaintenanceEnables users to design flat-pack furniture such as bookcases, cabinets, cubes and desks through natural-language conversation, then generates CNC-ready DXFs, cut and hardware lists, printable assembly instructions and a quote request for a fabricator.610MIT