OpenTakeoff
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**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: ** 53 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
**Protocol work:** Takeoff Protocol draft and compatibility status—formalizing existing records; current takeoff behavior is unchanged.
**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 (O reports the gate) and the one_click / detect_rooms MCP verbs are **not registered** (a default build ships 53 tools). Trace rooms with **Area** (A) in the canvas and measure_polygon over MCP; every other tool, sweep and derivation is unchanged. A build lifts the gate with VITE_ONE_CLICK=1 (canvas) / OPENTAKEOFF_ONE_CLICK=1 (server). Sections and videos below that show One-Click describe the engine as it returns — see docs/design/ONE_CLICK_GATE.md.
---
The **Premium workspace** offers compact controls, searchable actions and sheets, personal panel arrangements, adjustable surfaces and larger sheet previews. It is the default when this browser has no saved layout choice; **Classic layout** remains available. See the workspace design and research.
Sheet navigation releases closed PDFs and embedded fonts from the tile workers;
see the 30-flip rendering check.
Beyond the PDFs in open tabs, at most four idle PDFs stay loaded (two on
a phone or tablet, or a browser that reports 4 GB of memory or less), least recently used out first; see the 12-PDF check.
Start here
| 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, AGPL-3.0, nothing phones home. Same path if you're going to send a pull request. |
Windows, macOS, Linux — all of it
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.
- **Shortcuts are platform-aware.** The app labels modifiers for the keyboard in front of you —
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.
- **The MCP server is tested on Windows.** 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.
- **Optional extras.** The bundled capture server is stdlib Python 3 and runs anywhere
Python does — on Windows invoke it with 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.
- **Locked-down enterprise fleets** (MSIX packaging, Windows Sandbox, Intune silent deploy) are
tracked in #226 and not yet built.
What this is