OpenCADIrrigation Open the app

AI assistant

Design → AI assistant… (AI, IA, ASK), its button in the status bar, or Ask the AI on any message card opens an AI agent that works on the open project in a panel docked beside the drawing (a bottom sheet on phones), so you watch the drawing change while it works. It runs a model of Anthropic (Claude, through the Messages API) or of OpenAI (GPT, through the Responses API), with your own API key for that company: the browser (or the desktop app) calls the company's API directly, with no server of this project in between, and the company bills the usage to your account. The panel shows the tokens of every answer and of the conversation with an estimate in US$ at the list prices below, which may change.

Company Tier Model Id US$ per million tokens, input / output
Anthropic top Claude Fable 5.1 claude-fable-5-1 10 / 50
Anthropic top Claude Opus 5.5 (the default) claude-opus-5-5 4 / 20
Anthropic intermediate Claude Sonnet 5.5 claude-sonnet-5-5 2 / 10
Anthropic fast Claude Haiku 5.5 claude-haiku-5-5 0.10 / 0.50 (5 × above 100 000 input tokens)
OpenAI top GPT-6 Astra gpt-6-astra 10 / 50
OpenAI intermediate GPT-6.1 Sol gpt-6.1-sol 2 / 10
OpenAI intermediate, earlier releases GPT-6 Sol, GPT-5.6 Terra gpt-6-sol, gpt-5.6-terra 2 / 10, 2 / 12
OpenAI fast GPT-6 Luna gpt-6-luna 0.10 / 0.50

OpenAI prompts above 272 000 input tokens cost 2 × input and 1.5 × output; the settings also show the cache prices of each model. Every model takes five depths of reasoning, from quick to maximum (balanced by default). Claude Fable 5.1 and GPT-6 Astra may think for several minutes on one step, and Claude Fable 5.1 is offered only to organisations with 30-day data retention (otherwise the app says so and suggests Claude Opus 5.5). On Claude Fable 5.1, Opus 5.5 and Sonnet 5.5 a request a safety classifier declines is answered by another model on Anthropic's side, priced at the model that answered. Switching to the other company's model, or between OpenAI models, starts a new conversation; between Claude models the conversation goes on.

Starting with the AI

The app opens on an empty project with a start screen that asks where the area to irrigate is and whether you want to design with the assistant (not when the address already says what to open, an example, the tutorial or a shared project, nor after recovered work; "Don't show this screen at start-up" and a switch in the assistant's settings turn it off). The place is an address or place name searched on OpenStreetMap (you pick among the matches) or coordinates in any usual form; the project is georeferenced there and the satellite map shows. Design with AI opens the assistant beside the drawing with the place and your description, or a request to start a new design, waiting in its box; nothing is sent before you press Send. Start without AI leaves you on the empty, georeferenced project. On phones the assistant has a button in the top bar that spins while it works and shows a dot when it waits for an approval, an answer or a plan decision (the docked panel's button does the same).

How it works

The agent keeps a to-do list of the task, asks you questions as cards with options when something is missing (the task waits for the answers), presents its plan, and works through the program's own tools: 75 tools sent with every request, 205 more operations it finds and runs (find_operations, run_operation), any menu command (run_command, the dialogs run without opening) and about 150 settings (get_setting, set_setting), so it reaches the functions of 1.6.0 too (pump stations, reservoirs, the agronomy dialogs, the power and water analyses, the technical documents and the title block, block references, layer states, comparisons, the points wizard and stake-out points, islands of areas, inserting a project) and the editing commands (stretch, fillet, chamfer, break, join, explode, convert to area). It reads the same numbers as the reports, changes the project through the same functions as the menus and dialogs (drawing, network, catalogue, system flows, the design, its corrections, the automatic layouts, the analyses, the quote, exports), keeps the project's AI notes (requirements, your answers and decisions, saved in the project file and editable in the settings, each update one undo step), reads the design playbook of the project type (12, written from the gallery examples) and the example projects, finds the site from an address (OpenStreetMap Nominatim: at most one search a second and 8 per conversation), sets the georeference and the base map, downloads the terrain and the climate through the app's own downloads, and imports the drawings and GIS files you attach. It can also read a data sheet you attach (PDF, image or text, up to 20 MB) and add its items to the catalogue, checked before they go in, and write the project's technical report, which can be copied or put on the drawing as text. A long attachment is not put in the message: the model reads the parts it needs (read_attachment) or has the smaller model of the same company (Claude Haiku 5.5 or GPT-6 Luna) read up to 200 pages or 20 000 lines of it and answer its question (summarize_attachment), whose tokens count in the meter and the spending cap. docs/AI_TOOLS.md, generated from the coverage map, lists what it reaches: every function a user can reach (command actions, drawing tools, aliases, menu items, dialogs and their options, panel fields, status bar, view options) is covered or marked as having no meaning for the AI, each with its reason; a test fails when a new command, tool, menu item or dialog has no route. The system prompt states the network rules, the design run and the permissions and indexes a reference manual the model reads when it needs it (read_manual, 20 topics generated from the code: items and their fields, design parameters, message codes, tools and operations, the engine's values, and a worked example replayed against the real tools); the prompt and the tool definitions are cached between requests.

Vision

view_snapshot takes one picture of the drawing over a base map: by default the satellite image whenever the project is georeferenced (Esri World Imagery, or Google with your key), so the model draws over what is really on the ground, and otherwise the map on screen; the model can also ask for the map on screen, a street map or none. The tiles are fetched off screen, so your view and base map never change. The model also chooses what the drawing is coloured by in its picture (layer colours, pressures, velocities, pipe sizes, the lowest and highest pressure of each zone, or every zone in its own colour with its name at its valve) and what is marked on it: the design messages at their items, numbered as in the Messages list, and its own changes of the task (added in cyan, changed in amber, removed as a dashed red outline), so it checks its work; your screen stays as it is. Every picture states its exact pixel-to-world mapping, and image_to_world converts the positions the model reads on it, optionally snapping them onto the ends and lines of existing items so that new pipes meet the old ones; a picture drawn before the georeference changed is refused. trace_region outlines a field, lawn, pond or roof from one point inside it by image analysis on the imagery (the region grows over similar colours and texture up to the tolerance at which its area stops growing, before it leaks into the next field), far more exactly than corners picked by eye, and trace_fields outlines every field of an area at once (roads, hedges, specks and regions cut by the edge of the area left out). The model can zoom into a part, label the items, draw proposed shapes with preview_geometry before creating anything, and read the ground with terrain_picture (hillshade, colours by elevation, contours, slope, aspect), terrain_profile and terrain_info. Pictures are as large as the model reads them pixel for pixel: up to 2000 pixels and about 3.6 megapixels on Claude Opus 5.5, Sonnet 5.5 and Fable 5.1, otherwise 1568 pixels and about 1.15 megapixels, with the shorter side at most 768 pixels on OpenAI's models; aerial and relief pictures go as JPEG, which keeps long conversations within the request size, and attached photos are turned upright and scaled to at most 2000 pixels a side. On Claude Opus 5.5, Sonnet 5.5 and Fable 5.1 the status line shows the model's short progress notes between steps. The panel has a button that attaches a picture of your view; pictures and files can also be pasted into the message box (Ctrl+V) or dropped on the panel. A setting (on by default) sends, after each round of changes, a picture framed on what changed, with the changes marked. A photo you attach that carries its GPS position (as phones write it) comes with where it was taken in the project and the nearest item, and the model can pin it to the drawing with add_photo_comment: a review comment at that place keeping a small copy of the photo and what the model read in it (a pump's nameplate, the state of a valve box), shown in its properties. Before it exports a drawing sheet, the model looks at it with preview_sheet: the sheet as it will print, with a check of overlapping, tiny or cut texts, a drawing that fills too little of its viewport or runs out of it, empty title-block fields and the north arrow, scale bar and legend, each finding with where it is, so it fixes them first.

Pointing

"Mark a point" and "Mark a line" above the message box show the assistant where: every click on the drawing adds an orange mark labelled A, B, C… (a line ends with a double click or Enter; Esc drops it), each with an optional note ("pump", "mainline up to here"). The marks go with your next message with their coordinates and show in the assistant's pictures, so "the pump at A, the mainline along B" is read exactly; the assistant may also ask you to mark a place. They are not part of the project (no undo step, not saved) and go when you clear them or open another project; on a phone the assistant's sheet closes while you mark and comes back when you finish. The commands MK and MKL start them too.

Voice

A microphone button beside the message box dictates the message through the browser's speech service, in the interface language (Chrome, Edge and Safari; there is none in Firefox nor in the desktop app): the words being recognised show in a small bubble above the button and each confirmed phrase goes into the box at the cursor, to be read and sent as if typed. The first use says where the voice goes.

Saved conversations

A reload of the page, or the project opened again later in the same browser, brings its conversation back as it was, and the model goes on with the exact earlier history; an answer the closing page cut short shows as stopped, with Try again. Rewinding a restored conversation takes back only the conversation (the project's undo history does not survive a reload).

A project can keep several conversations: Conversations of the project in the panel lists them, the most recent first, by their first message; a new conversation leaves the current one in the list, and any of them opens again or is deleted. /new starts a new one keeping the current, /clear deletes the current. The browser keeps the 24 most recently saved conversations of all projects. A conversation exports to a JSON file and imports back, without the key (taken out of every text) and without the photos you attached (a note stands in their place); an imported conversation goes on with the program's own system prompt, so import only conversations of yours. The same project open in two tabs of the browser keeps the conversation of the first one only, and the second says so.

Control

What it may do is set in the settings: read only; plan first (it explores with reads only and presents a plan; changes start once you approve it); ask before each change (the default: a card with Apply, Skip and Stop, also for each request to another service, where Enter applies and Esc skips, and Apply the rest of this task applies this change and the next ordinary ones of the task without asking, large deletions, requests to other services and exports still confirmed); or apply changes automatically (saving a file, setting the georeference and deleting more than 20 items are still confirmed). The card runs exactly what it showed: the input of a call is fixed when it is planned, and so is the selection it acts on. Settings are classed by their effect: a view switch is a read, a custom map server and the program's own settings are changes always confirmed, with the host shown. What you change on the drawing while it works stays apart from its changes, which are steps of their own in Edit → Undo, before and after yours. You can type while it works (the message reaches it at its next step) and stop it at any time. Approving a plan with "apply automatically" runs that task without asking; the mode chosen in the settings stays for the next tasks. After an error or a stop the answer offers Try again (the same message, when nothing of it reached the model) or Continue, and the settings when the fix is there (a key refused, a model the key cannot use). Every answer that changed the project is one history entry with Undo these changes, and every message has Rewind to here, which takes the project (through the undo history) and the conversation back to before it. A task ends at its step limit (50 by default, up to 200) or at its spending cap (US$ 2 by default at list prices, with a warning at 80 % and a Continue button for another cap). The cap is the app's own: the model is shown no token countdown (a task budget made it stop early and suggest a new conversation), and its instructions say there is ample context. Under every answer, Costs by step lists each request of the turn: the tokens read from and written to the cache, those outside it, the output, the pictures and PDFs, the effort and what made a step dearer (the cache not used, a change of model or effort, a large request); /cost says the share read from the cache. Long conversations are summarised on the company's server (Anthropic from 150 000 input tokens, after clearing old tool results from 80 000 while keeping the notes, the plan and the to-do list; OpenAI from 200 000, with older pictures dropped from the request); a setting turns this off. Quick commands: /new, /design, /check, /review, /report, /quote, /export, /plan, /clear and /cost. /review runs read-only whatever the mode: the model looks at the zones, the messages marked at their items and the pressures and velocities over the drawing, reads the messages and the report tables, and answers with a checklist (OK, attention or problem, with the figures and where to fix each point), changing nothing. Standing instructions in the settings apply to every conversation ("always PVC PN 80 on the mainline"), and the conversation saves as Markdown. Conversations are not saved with the project, so shared files and links never carry the chat or its pictures. What is sent, when, and how the keys are kept: Storage, privacy and network access.

The settings also have Test the connection to the model chosen (one minimal request along the same path as the real ones: whether the key, the account and the model accept it, the time, the tokens, the cost, the limits of the account and any field it refused), Adjust the effort to each stage (Claude models: after a round of plain edits and reads only, the next step runs at low effort; planning, designing, checking, pictures and errors go back to the effort chosen, and the cached conversation stays), Tell me when the app is in the background (the title of the tab blinks when the task waits for your approval, questions or a plan, or ends while you are in another tab or window) and Allow system notifications for the same. The project's content (its notes, texts and names) reaches the model as data, never as instructions, and AI notes that came with a file written in another browser are read as information until you choose Use as mine.