The Desktop Agent
SphereHarness 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.
Starting it
The agent runs in the Windows system tray. It starts:
- When you click Open Desktop Agent on your CAD system's SphereHarness ribbon. (In AutoCAD the button is Desktop Agent, and the commands
COPILOTAGENTandCOPILOTboth do the same thing.) If the agent is not running yet, the ribbon starts it. - When you launch it yourself, or with Windows if you tick Start with Windows in Settings → Agent. That is off by default, as is Start hidden (tray only).
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 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.
- Click it to open a place to type.
- Drag it anywhere. On release it snaps to the nearest screen edge, and remembers where you put it — per monitor arrangement, so docking and undocking a laptop does not lose it.
- Right-click it for the menu: Open chat (Sign in… when you are signed out), Macros…, Markup board…, Settings…, Channels and services…, Hide balloon (tray keeps running), Sign out and Exit.
Three things are shown on the disc itself, so you can read the state without opening anything:
- A red unread badge when messages have arrived from one of your channels.
- A health dot at the bottom-left — hover it for CAD sessions healthy, No CAD session connected, or A CAD session crashed.
- A macro glyph at the bottom-right that opens the macro library, and turns red while a recording is running. See Macros.
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.
- Ctrl+Alt+Space opens and closes it from anywhere. You can change that in Settings → Agent (Show / hide hotkey), or clear it if it clashes with something.
- Enter sends, Shift+Enter is a newline, Esc closes it, and Ctrl+Enter opens the full chat window instead.
- The answer appears inline underneath, with a button to carry on in the full window.
- It has buttons for the markup board and, when voice is enabled, for talking — the talk hotkey is Ctrl+Alt+V by default.
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
- Enter sends; Shift+Enter starts a new line.
- Type
/to open the command palette —/help,/clear,/compact,/stop,/usage,/verbose,/context,/think, and in the card also/restart,/settings,/sessionsand/model. - The paperclip attaches a file to the message.
- Replies are rendered as formatted text — headings, lists, tables, and code blocks with a Copy button. Screenshots SphereHarness takes appear inline.
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.
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.
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, the notification bell, and a Settings and more menu holding Settings…, Channels and services…, Refresh CAD sessions, the Dock submenu, the coding-agent options, Send feedback… and Sign out. The Close button hides the window; it never exits the agent.
The notification bell
A bell in the header, with a count on it when something has arrived that you have not read. It is how a reply to one of your support requests reaches you without your going to look, and it is where announcements from your partner or from the SphereHarness team appear.
- Click it for the last 20: the title, the text and when each arrived, with Mark all read at the bottom. Clicking one marks it read, and then a support notification asks the chat to show that request (so you read its current state, not the notification's frozen text) while anything carrying a link opens the link.
- A tray balloon is raised as well, so a notification is not missed because the card is behind your CAD window. One balloon per check, never one per notification - five answers arriving together are one interruption.
- It is checked every 60 seconds, and only while you are signed in. The first check after you sign in sets the count but raises no balloon, because a balloon means "this arrived while you were sitting here".
Every message you send gets a progress block underneath it, in the conversation itself. Its top line always shows and refreshes every second while the turn runs — how long it has been going, how many CAD calls it has made, how many of those are dialog-driving (driving the CAD's windows rather than its API), and the last operation with how long ago it ran. Clicking that line opens or closes the list below it.
The list holds one line per call, oldest first, naming the operation, what it was given and which CAD session it ran on, then how it ended and how long it took — CreateExtrusion distance=20 isCut=false · Inventor #9184 — completed 2.5 s. A ⌨ marks a dialog-driving call and a ✋ a permission ask; sub-agents get their own line too. The list has a fixed height and scrolls, so a turn of two hundred calls never pushes the conversation off the screen: it follows the newest line while the turn runs, and stays put if you scroll up in it.
The block is open while the turn runs and collapses to its one-line summary when it ends — 96 tool calls · 78 CAD · 34 dialog-driving · 15 min 0 s — which a click re-opens. A turn that called no tool gets no block at all. A turn that is mostly dialog-driving is SphereHarness working around a capability it does not have as an operation; it says so in one sentence when it starts. The model's reasoning can be shown too — Settings → Agent, off by default.
[SetDialogElement ×8 — completed] tool lines inline.The Target box
Under the header is a Target drop-down. It decides which running CAD session this conversation works in.
- (let the model choose) is the default. Each request is routed by what it names — which is fine when only one CAD is running, and fine when you say “in NX”.
- A named session — for example Siemens NX #208696 — pins the conversation to that one running instance. The document is whatever that instance has open.
- Launch … entries appear greyed for CAD systems you have installed but are not running. Choosing one is an action, not a selection: it starts that CAD, and the box goes back to (let the model choose).
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 SphereHarness 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.
- Allow once — this one, now.
- Always allow … this session — that operation, without asking again, until the agent restarts.
- Reject.
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.
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:
- Work on one CAD does not interleave with work on another — each CAD has its own queue, and a macro run holds its CAD for the whole run.
- Ambiguity is refused rather than guessed. If it is not obvious which session you mean, you are asked, or you set the Target.
Asking for help, and telling us what you think
Two different things, both from the chat card.
- A support request opens a thread somebody answers. Ask for one in the chat, and a diagnostics zip - the SphereHarness logs, your CAD's own recent logs and crash dumps, what is installed and which add-ins are loaded - can be built and attached as the request is created. Collecting uploads nothing on its own. You can attach any other file you already have, ask what the status of your requests is, add a message or another file to one that is open, and close it when you are done. The reply comes back through the bell. Full details on Support requests.
- Feedback is what you think of the product, not a question. Send feedback… on the Settings and more menu opens a short dialog: your words, an optional Rating from 1 to 5, and Send. It gets no request number and nobody is obliged to reply, which is why it is the right place for "this is awkward" rather than "this is broken".
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 SphereHarness Settings application, on the SphereHarness page: Show chat panel inside the CAD (legacy).
- It is one setting for every CAD system, not one per CAD.
- It is read when the add-in loads, so restart the CAD application after changing it.
- Turning it on changes where you can type. It does not change how messages are routed — that still goes through the desktop agent either way.
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
- Chat Basics — how to phrase requests once you have somewhere to type.
- Markup Board · Macros · Variations
- Getting Started · Sign In & Out · Settings & Languages
- Channels & Messaging — the same agent, reached from your phone.
- Support Requests - the bell, opening a request with your logs attached, and feedback.
- Troubleshooting & FAQ