The Desktop Agent

CoPilot lives beside your CAD system rather than inside it. A small floating balloon sits on top of whatever you are working in, one keystroke brings up a place to type, and the same conversation reaches every CAD system you have running — including two at once.

This replaced the chat panel inside the CAD window. That panel still exists and is switched off by default; see the legacy panel at the foot of this page. If you are reading older notes that tell you to open a task-pane tab, this page is the current answer.

Starting it

The agent runs in the Windows system tray. It starts:

Once it is running, closing any of its windows only hides them. Exit on the tray menu is the only thing that stops the agent.

The CAD Co-Pilot agent icon and status in the Windows system tray
The agent in the tray. Hover it to see whether it is connecting, connected, stopped, or not signed in.

The balloon

A small round disc that floats above every window. It is blue when you are signed in and grey when you are not, and the glyph on it is a chat bubble — or a microphone when voice is switched on, or a padlock when you are signed out.

Three things are shown on the disc itself, so you can read the state without opening anything:

Hidden the balloon by mistake? The show/hide hotkey brings it back, and Settings → Agent has Reset balloon position for when it ends up on a monitor you no longer have.

The quick ask bar

One line, floating near the top of the screen, for the question you want to ask without leaving what you are doing. It is what a balloon click opens by default.

The quick ask bar and the chat card are two views of one conversation. Ask in the bar, open the window, and the exchange is already there.

The chat card

The full window: the conversation, the input box, and the controls. It is what the CAD ribbon button opens, and what Ctrl+Enter from the quick ask bar opens. Drag its edge to resize it, or use the card menu's Dock submenu to pin it to the left, right, top or bottom edge of the screen instead of leaving it floating.

Typing

The Send button becomes Stop only when the box is empty. While a turn is running, the blue Send button turns into a red Stop — but only if you are not typing. If you have started a follow-up message, clear the box to reveal Stop.

Choosing which AI answers

Just above the input box there is a small AI drop-down — which AI answers in this chat: your own API key, or a coding agent — with a gear beside it that sets the chosen one up. The quick ask bar has the same choice on its menu.

Each option tells you whether it is ready to answer, and that verdict is the backend's own pre-flight check — the same check it makes when you press Send — rather than the picker's separate opinion of what “configured” means.

Setting up a coding agent is not always one click. Gemini CLI can be installed for you; Claude Code and Codex need their own command-line tool installed and an interactive login first. The set-up window does what it can and then tells you the command still to run, rather than reporting success and failing at send time.

Choosing which model it uses

Beside the AI drop-down is a Model drop-down. It lists what the AI you picked actually offers — a coding agent's list comes from the agent itself, and your own API provider's comes from the list its /models endpoint returned when you pressed Fetch models in Settings. Nothing in that list is a name we keep here, so it cannot go stale.

Leave it on (the agent's own default) to let the agent keep whatever model it is configured for. Pick one and it applies to the agent already running: your next message uses it, with no restart and without losing the conversation you are in.

The choice is remembered per agent, so a model you chose for one coding agent is never asked of another, which that other agent would simply refuse. You can also type /model in the chat to see the model in force and what the agent offers, or /model <id> to change it.

The box is editable, so you are not limited to the list. A list can lag — a model released after the adapter was built, an id your account is allow-listed for, a deployment name on your own endpoint. Type it and press Enter, or click away, and it is sent exactly as you typed it. If the agent takes it, it is used from your next message and appears in that agent's list next time marked (added by you), so you can tell your own entries from the ones the agent named. If the agent refuses it, the chat says so in the agent's own words, you stay on the model you were already using, and the refused id is neither kept nor added to the list.

The Model boxes in Settings → Coding agents & MCP work the same way and share the same store, so the chat card, Settings and /model never disagree about which model is in force.

With CAD CoPilot server chosen as the AI, the Model box is greyed out: the server picks the model for each turn itself — your own registered key if you have one, otherwise your organisation's.

The header

The header shows who you are signed in as, and — when the answer is not coming from the platform's model — what is answering it, so you always know whether you are on your own key or your own coding agent.

The icon buttons open the markup board, the macro and variation library, and a Settings and more menu holding Settings…, Channels and services…, Refresh CAD sessions, the Dock submenu, the coding-agent options and Sign out. The Close button hides the window; it never exits the agent.

There is also a Last turn drawer — every tool the last turn called, what each one answered, and how long it took. It is the fastest way to answer “what did it actually just do?”

The Target box

Under the header is a Target drop-down. It decides which running CAD session this conversation works in.

Pick the Target when you have more than one CAD open. If a request names no session and more than one could serve it, CoPilot refuses and lists them rather than guessing — which is correct, but costs you a round trip. Picking first avoids it. It also saves tokens; see Spending fewer tokens.

The tray menu

Right-click the tray icon for: Open chat, Open the full chat window, Show balloon, Ask my coding agent…, Settings…, Open status…, Start relay / Stop relay, Sign out and Exit. Double-clicking the icon opens the chat.

Hovering the icon tells you the connection state — starting, connecting, connected, stopped, or not signed in.

Permission cards

Before CoPilot does anything destructive to your model — and before it changes its own sensitive settings — a card headed Permission needed appears on whichever surface is open.

Each card belongs to one CAD session and says so, with a count when more than one is waiting (“Siemens NX #208696 · 1 of 2 waiting”). You have two minutes to answer from the moment the card becomes visible, and a tray notification fires so that a card behind another window does not sit unanswered. A request that was withdrawn leaves a one-line note with a Dismiss button rather than a stale card.

When your chat is being answered by your own coding agent rather than by CoPilot's model, that agent supplies its own permission wording, so the buttons will read however it phrases them.

Several CAD systems at once

The agent is one process talking to every CAD add-in that is running, so you can have SOLIDWORKS and NX open together and address each in turn. Two things follow:

The legacy in-CAD chat panel

The chat panel docked inside the CAD window is still in the product but switched off by default. It can be turned back on in the CoPilot Settings application, on the CoPilot page: Show chat panel inside the CAD (legacy).

With it off, a CAD system that has the add-in installed shows a short panel saying that chat has moved and that the session is still connected, plus the ribbon commands.

See also