# OpenTakeoff > Free, open-source (AGPL-3.0) construction takeoff engine that a person and an AI agent drive the same way. Open a plan (PDF, image, or .zip plan set), set the scale, trace areas with a 45°/90° angle lock, then apply waste % and per-condition supporting materials, and export quantities (SF/SY/LF/EA) as CSV/JSON. A person clicks the canvas; an agent calls the identical engine over MCP (`npx opentakeoff-mcp`) and gets the identical number, with the scale and origin of every measurement recorded. Built for flooring; the measuring engine works for any trade (drywall, paint, concrete, sitework). No account, no upload: the canvas keeps plans in the browser. OpenTakeoff is an open-source alternative to subscription takeoff software — and the first takeoff engine an AI agent can drive natively, not through screen scraping or a bolted-on chat layer. It is a static web app: self-hosting is one `npm run build` and any static file host. ## Docs - [Live app](https://opentakeoff.kentucky-ai.com): try it in the browser — includes a bundled sample plan (a real medical-center floor finish plan) - [README](https://github.com/Kentucky-ai/opentakeoff#readme): features, quick start, and [Fork it](https://github.com/Kentucky-ai/opentakeoff#fork-it) — your own instance on your own URL, and the contributor path - [MCP server](https://github.com/Kentucky-ai/opentakeoff/blob/main/mcp/README.md): `npx -y opentakeoff-mcp` on the [npm registry](https://www.npmjs.com/package/opentakeoff-mcp) — `load_plan`, `read_sheet_text`, `set_scale`, `measure_polygon`, `view_sheet`, `takeoff_summary`, `export_takeoff`, and more - [Agent usage guide + example transcript](https://github.com/Kentucky-ai/opentakeoff/blob/main/docs/MCP.md): how an agent opens a plan, adopts the scale, traces rooms, and exports a takeoff over MCP - [User guide & shortcuts](https://github.com/Kentucky-ai/opentakeoff/blob/main/docs/USER_GUIDE.md): every tool, keyboard shortcut, and the totals math - [Changelog](https://github.com/Kentucky-ai/opentakeoff/blob/main/CHANGELOG.md): what shipped, when - [AGENTS.md](https://github.com/Kentucky-ai/opentakeoff/blob/main/AGENTS.md): repo map and conventions for coding agents contributing to the codebase ## Key facts - **Agent-native**: the same engine answers to a person at the canvas or an AI agent over MCP — not two implementations, one. Every shape records its provenance: scale, method, and person or agent. - **MCP server**: `opentakeoff-mcp` on npm, official MCP registry listing, 53 tools on a default build — an agent loads a plan, reads the title block, adopts the scale (never applied silently), traces rooms on the wall faces, and exports the same payload the app autosaves. - Measuring: Area, Rectangle, Linear, Surface-Area (walls), Count, Deduct. One-Click Area (flood-fill room detection) is temporarily gated while it is re-validated; `VITE_ONE_CLICK=1` / `OPENTAKEOFF_ONE_CLICK=1` lift the gate - Drawing aids: 45°/90° angle lock (polar tracking with ⇧ hard-lock, commits the on-axis point), live angle + segment-length readout at the cursor, endpoint snap - Scale: auto-detects the drawn scale note per sheet, or calibrate from a known dimension - Conditions: color + CAD hatch per finish, waste %, multiplier, wall height, border thickness - Assemblies: per-condition supporting materials with coverage rates → rounded order quantities - Reports: per-condition SF/SY/LF/EA with and without waste + a materials buy list; CSV/JSON export - Storage: IndexedDB + localStorage only — client-side, private by construction - Stack: React 18 + Vite + pdf.js; the whole app is a static build - License: AGPL-3.0-only — [fork it](https://github.com/Kentucky-ai/opentakeoff/fork), ship it, build a product on it, and publish your changes when you run a modified copy for others (Apache-2.0 through commit 84c7f48e). Pull requests from a fork run the full CI; tested PRs from agents merge under the same bar as anyone's - Maintained by Kentucky AI (applied AI R&D, Louisville, KY): https://kentucky-ai.com