Inventory management, reimagined for the AI age
Run your shop by asking
inventory.chat is full inventory and job costing for custom shops, built so that everything the screens can do, the chat can do too. Quote a job, log what came off the saw, reprice the book when steel moves — by saying it, or by clicking it. Same operations either way.
For cabinet shops, fab shops, sign shops and anyone else quoting one-off work. Founding accounts lock their price for life.
Called 5 tools
find_material("walnut 8/4")estimate_board_feet(length_in: 84, waste: 0.15)add_component("steel base, powder coat")apply_labor(bench: 18.5, finish: 4.0)price_quote(margin: 0.32)
Every number here came from your costing engine. The model picked the tools and filled in the arguments — it never does the arithmetic.
One system, two ways in
Not a chatbot bolted onto an app
Most software with a chat window can answer questions about your data. This drives it. Both surfaces call the same registered tools, so anything you can do in the UI you can do by asking — and the reverse.
Click through it like any app
Forms, tables, filters and reports. Everything has a screen, because some work is faster with your hands and some people simply prefer it.
Walnut moves to $16.20/bd ft → this quote and every other one using it reprices to $4,077.
Or just say what you want
Put it the way you'd say it across the bench. Useful when you're on the floor with dirty hands and a form is the last thing you want to fill in.
- "We burned three sheets of maple on the Henderson job"
- "What's my margin on everything open right now?"
- "Walnut went up 12% — what does that do to my quotes?"
- "Reorder anything under two weeks of stock"
- "Why is this job $400 more than the last one?"
Both surfaces call the same registered tools
One registry, one permission model, one audit trail. A tool built for a screen is available to the chat the same day — and to any MCP client you point at your account.
Where the numbers come from
The model never does your arithmetic
This is the part that matters when it's your margin. The language model reads what you asked, picks which operations to run, and fills in the arguments. Your costing engine computes every figure.
Deterministic maths
Board feet, waste factors, labor and margin are calculated by the same engine that runs the UI. Ask the same question twice and you get the same number, because nothing about the price is generated.
It shows its working
Every reply lists the tools it called and the arguments it used. If it picked the wrong material or misread a quantity, you can see that immediately rather than discovering it in the total.
It asks before it writes
Reading is free. Anything that changes stock, pricing or a live quote is confirmed first, and lands in the same audit trail as a change made by hand — with a note that it came from chat.
What's underneath
A costing engine worth talking to
The chat is only as good as what it can operate. Underneath is a parts database you define and a formula engine built for made-to-order work.
Parts you define
Every shop's material list is different. Create the fields you actually track — species, gauge, alloy, finish, repeat — instead of forcing your stock into someone else's schema.
Units that convert
Buy by the sheet, consume by the square foot. Buy by the pound, quote by the part. Set the conversion once and stop doing it in your head.
Labor and overhead as real costs
Separate rates for cutting, assembly, finishing and install. Overhead applied the way your accountant actually wants it applied.
Formulas, not fixed markups
Write the pricing rule your shop already uses — waste factors, minimums, quantity breaks — and have it applied the same way on every quote.
Reprice when material moves
Change one cost and every affected job, quote and product updates, with a list of which customers it touches.
Quotes that show the work
Materials, labor and overhead broken out separately, so you can defend the number when someone pushes back on it.
Open by default
Bring your own AI
The same tool registry is exposed over MCP, so your shop's data isn't locked behind our chat window. Point Claude, or anything else that speaks the protocol, at your account and it can quote, look up stock and reprice jobs under exactly the permissions you granted.
Built on RubyLLM, so adding a tool is ordinary Ruby — and every tool added is immediately available to all three surfaces at once.
- Standard MCP server, no bespoke integration
- Scoped tokens — read-only, or read and write
- Every call attributed and logged, same as the UI
- Your data is never used to train a model
One registry, three surfaces
Called by the web UI, by the built-in chat, and by any MCP client you authorise. Same validation, same permissions, same audit trail — whichever one made the call.
Who it's for
Built around how your trade actually quotes
The maths is the same underneath. The units, the materials and the thing that goes wrong are not.
Cabinet Makers
Costed in sheets, linear feet, each.
Metal Fabricators
Costed in pounds, feet, each.
Sign Shops
Costed in square feet, rolls, each.
Furniture Makers
Costed in board feet, each, hours.
Upholstery Shops
Costed in yards, hides, hours.
Machine Shops
Costed in inches, pounds, each.
Making something else? Tell us what you build — the parts database is yours to define either way.
Early access
Get set up this week
Tell us what you make and we'll get your materials, rates and formulas in so you're quoting from real numbers rather than a spreadsheet.
- Founding accounts lock their price for life
- No card, no trial clock, no sales call
- Import your existing parts list to start
Questions
The ones worth asking
Can the AI make up a price?
No, because it never calculates one. The model decides which operations to run and what to pass them; the costing engine does the arithmetic and returns the figure. The same question always produces the same number, and every reply shows which tools ran and with what arguments.
What if I don't want to use the chat at all?
Then don't. Every function has a screen, and the app is complete without ever opening the chat window. It's a second way in, not a replacement for the interface.
Can it change things, or only look them up?
Both, but writes are confirmed before they happen and logged the same way a manual change would be, tagged as coming from chat. You can also issue read-only access to anyone who should be able to ask but not alter.
Is my costing data used to train a model?
No. Your parts, rates and quotes are yours. They are not used as training data, and they aren't shared with other accounts.
What's MCP and why should I care?
It's an open standard for letting AI assistants call an application's functions. Because we expose the same tools over it, you can drive your inventory from Claude or whatever you already use, instead of being stuck with our chat box. Scoped tokens mean you control exactly what it can do.
Do I have to fit my parts into your categories?
No. The parts database is defined per account — you create the attributes your trade cares about. That decision is the foundation of the product.
How long does setup take?
An afternoon for a small parts list, longer if you're importing years of material history. You can start with the handful of materials on your next job and add the rest as you quote — it's useful before it's complete.
Quote it, log it, reprice it — by asking
Founding pricing is locked for accounts opened during early access.
Founding accounts lock their price for life. No card required.