by Kentucky-ai
Open-source (Apache-2.0) PDF takeoff for construction & flooring — the first engine an AI agent drives natively over MCP, not bolted on. Rooms measured on the wall faces, symbol sweeps, materials + quantities with full provenance, built for preconstruction. Runs entirely in your browser.
# Add to your Claude Code skills
git clone https://github.com/Kentucky-ai/opentakeoffLast scanned: 9/5/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-09-05T08:04:44.648Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}opentakeoff is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Kentucky-ai. Open-source (Apache-2.0) PDF takeoff for construction & flooring — the first engine an AI agent drives natively over MCP, not bolted on. Rooms measured on the wall faces, symbol sweeps, materials + quantities with full provenance, built for preconstruction. Runs entirely in your browser. It has 109 GitHub stars.
Yes. opentakeoff passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/Kentucky-ai/opentakeoff" and add it to your Claude Code skills directory (see the Installation section above).
opentakeoff is primarily written in TypeScript. It is open-source under Kentucky-ai on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh opentakeoff against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The measurement engine for building plans—built so an AI agent can drive it, and so an estimator wants to.
A takeoff is the act of measuring quantities off a construction drawing. OpenTakeoff does it two ways over one engine: 47 MCP tools for an agent, and a browser canvas for a person. Agents and people share the takeoff document and quantity calculations. Each sheet carries its calibration; measurements carry geometry, method and authorship. Recalibration updates quantities together, incompatible imports report scale conflicts, and agent measurements carry an explicit review status. See the Phase 1 test guide.
For agents · Try the canvas · The engine's contract · For the person at the canvas · The data layer · Research · Fork it · Contribute
The two manuals: agent manual · user manual
Read this in: 日本語 · 한국어 · 简体中文
Watch it: an autonomous agent runs a takeoff, live, no cuts (2:47) · hospital finish plan → report in about a minute (1:14) · canvas walkthrough (1:10) · One-Click Area (0:51)
One-Click Area is temporarily gated. The flood engine is being re-validated against a wider plan corpus. Until that finishes the One-Click tool is off the canvas rail (
Oreports the gate) and theone_click/detect_roomsMCP verbs are not registered (a default build ships 45 tools). Trace rooms with Area (A) in the canvas andmeasure_polygonover MCP; every other tool, sweep and derivation is unchanged. A build lifts the gate withVITE_ONE_CLICK=1(canvas) /OPENTAKEOFF_ONE_CLICK=1(server). Sections and videos below that show One-Click describe the engine as it returns — seedocs/design/ONE_CLICK_GATE.md.
| You are | Go here |
|---|---|
| An estimator with a bid due | Open the canvas—drag in a plan, no account, nothing uploads. The user manual gets you from a blank tab to an exported takeoff in five minutes, and its working order is the sequence to run on a real bid set. |
| An AI agent—or the person wiring one up | npx -y opentakeoff-mcp, then the agent manual: the operating model, the standard finish every takeoff ends with, what the engine refuses to guess, and why. Tool-by-tool reference is mcp/README.md. |
| A developer building on the engine | AGENTS.md is the repo map and the ship discipline; FEATURES.md maps every capability to the code that does it. |
| A crew that wants its own copy | Fork it—your own instance on your own URL in a few minutes, Apache-2.0, nothing phones home. Same path if you're going to send a pull request. |
OpenTakeoff is a client-only browser app, so the canvas runs the same on Windows, macOS, ChromeOS and Linux in any current Chrome, Edge, Firefox or Safari. Nothing installs, nothing uploads, and no feature is gated on an operating system.
Ctrl / Alt / Shift on Windows and Linux, ⌘ / ⌥ / ⇧ on a Mac — and the handlers have
always treated ⌘ and Ctrl as the same key. Press ? in the canvas for the current list.npx -y opentakeoff-mcp runs on Windows, macOS and
Linux, and CI runs the full MCP suite — typecheck, tests, build and the packaged smoke test — on
windows-latest as well as ubuntu-latest on every change.python capture\capture_server.py selftest (or the py
launcher) rather than python3. Neither it nor the optional server/ AI sandbox is
needed to use the canvas.Measuring quantities off a plan is the input to every construction bid—how much floor, how much wall, how many fixtures, at what scale, on which sheet. It happens thousands of times a day. Until OpenTakeoff there was no open-source takeoff engine at all, web-based or otherwise, and nothing an autonomous agent could call.
OpenTakeoff is that engine, with two front ends over identical geometry:
npx -y opentakeoff-mcp, 45 tools, on the
official MCP registry. An agent opens a plan,
reads the title block, sets the scale, floods the rooms, checks its own work on a rendered
overlay, and hands back a marked-up planset PDF.Neither is a wrapper around the other. The MCP server imports
web/src/lib/{oneclick,sheets,geometry,totals} directly, so a shape committed by an agent is
field-identical to one committed by a hand at the canvas—same flood mask, same corner snap,
same waste math, same refusal messages.
Provenance is the load-bearing part. Every shape records the scale it was measured at, the method that produced it (vector flood, raster trace, hand-drawn, agent-proposed), whether a human corrected it, and the machine's original boundary frozen beside the correction. Downstream, that's an audit trail a PM can read. Upstream, it's a labeled (geometry → finish) pair—the training signal takeoff models have never had at scale. That second use is not a side effect; see the data layer.
sheet_graph / resolve_tag / find_schedule
(#87)derive_transitions does the same over MCP.
Flood-traced rooms don't share edges, so what's actually there is proximity in two flavors that
mean different things: finishes changing inside one open space commit as a butt joint, while
rooms parallel across a partition come back withheld as questions—the transition is a
threshold in a doorway, and nothing in a trace record says where the doorway is. Committing
34 LF of threshold because two rooms share 34 LF of wall would be a wrong bid with a machine's
confidence behind it (#202)symbol_sweep—every instance of a repeated symbol from one marqueed example, crossing
scales only by a stated ratio, never a searched onemark_verdict / delete_verdict—an agent signs its own work as a graphite AGENT
diamond; only a human hand mints the green APPROVED seal