Euler Copilot
The Copilot is the assistant built into every screen of Euler. Ask it a question and it answers from your own project and from these docs. Ask it to do something and it does it through the same operations and checks the screens use: it opens the right screen, fills in forms, edits labels, accepts episodes, queues layers and builds exports. Anything that changes your data or spends money waits for your yes first.
Opening it
The assistant floats in the corner of every screen. Click it, or press Ctrl+I (Cmd+I on a Mac), to open or close it. Ctrl+K still opens the command palette.
The panel floats over the screen, so nothing underneath is squeezed. On a wide window you can dock it to the side as a drawer; on a phone it opens as a sheet from the bottom. Conversations are kept per person: a teammate never sees your threads, and you never see theirs.
Each screen starts you with suggestions that fit what is in front of you. On Review with an episode open, for example: Explain this receipt, Accept this episode, Show the flagged span in 3D. The first suggestion everywhere is What can you do here?
What it sees
It knows which screen you are on, which project and episode you have open, which panel is showing and which episodes you have selected. It reads text about your data: names, readiness numbers, check results, labels, captions, run progress, error messages and costs. It never sees your frames or video. See Privacy.
What it can do
Every action is one of the platform’s own operations, held to your role: it cannot do anything for you that your account cannot do on the screen. A viewer’s assistant reads and explains; a reviewer’s can also accept, reject and edit labels; an engineer’s can also run and configure the pipeline; an admin’s can also manage the team.
| Area | What it does | Try asking |
|---|---|---|
| Projects and workspaces | Lists, opens, creates, renames and moves projects; sets the training target | ”Create a project for the kitchen clips in Home tasks” |
| Sources | Registers a bucket, tests a connection, renames, copies a source into another project, opens the drop zone for an upload | ”Copy the kitchen source into Ego showcase” |
| Runs | Starts and cancels runs, reports progress, explains what failed, resolves a checkpoint | ”Why did the last run stop?” |
| Annotation and layers | Shows which layers are on and what they cost, queues a layer for some or all episodes, rebuilds 3D, cleans up tracks and hands | ”Run hand pose on ep000 only” |
| Readiness | Explains a receipt check by check, re-measures and re-scores, routes failing episodes to review | ”Explain this receipt” |
| Review | Lists episodes, accepts or rejects them, edits labels, captions, dense text and sub-tasks | ”Accept this episode and label it pouring” |
| Curation and exports | Previews and applies a curation strategy, saves slices, builds, seals and re-exports | ”Export the accepted episodes in LeRobot format” |
| Sharing | Creates, lists and revokes read-only share links | ”Share the accepted episodes for seven days, no downloads” |
| Costs and audit | Estimates what a run will cost before you start it, shows spend, reads the audit log for admins | ”What would depth on the whole project cost?” |
| Team | Lists members, invites a teammate, resends or revokes an invite, changes a role | ”Invite sam@acme.com as a reviewer” |
| Docs | Searches these docs and answers with numbered citations | ”How do I connect an S3 bucket?” |
| Navigation | Takes you to a screen, selects an episode, opens a panel, turns a layer on, points at a control | ”Take me to the 3D view of ep004” |
An admin can switch whole areas off for a workspace in Settings, under Copilot. Docs and navigation are always on.
Confirmations
Reading and navigating happen straight away. Anything that changes your data, spends money or cannot be undone stops at a confirmation card first. The card shows:
- What it will do, in plain sentences, for example “Accept episode ep000 in usa-ego-v4. It moves to the accepted queue and is included in the next export.”
- What it costs, when it spends: the estimate, what it is based on, and the per-episode figure.
- Whether it can be undone.
- Who may approve it, when the action needs a role you do not have.
Press Approve and exactly that action runs, once, with exactly the values shown; it cannot turn into a different action after you approve. Press Reject and nothing runs; the assistant says so and may offer another way. A card expires after ten minutes, and reloading the page brings back any card that is still waiting.
When you do many review edits in a row, the first review card offers Do not ask again for review edits. It covers accepting, rejecting, labels and text edits for the rest of that conversation only, and every edit it covers still lands in the audit log.
Confirmation policy
Each workspace has a confirmation policy, set by an admin:
| Policy | What asks first |
|---|---|
| Confirm every change (the default) | Every change, every spend and every action that cannot be undone |
| Confirm spending and deletions only | Only actions that spend money or cannot be undone; plain edits run straight away |
| Allow autopilot | With autopilot switched on in the assistant, nothing asks; with it off, every change asks |
Whatever the policy, every action is recorded in the audit log with your name, the conversation it came from and who approved it.
Navigating and filling forms
The assistant can move the app for you. It opens screens, selects an episode at a moment in time, opens the 3D or depth panel, turns a layer on and points at the control you asked about.
When an action belongs on a form, such as adding a source, creating a project or inviting a teammate, it fills the form and stops. You check the values and press the screen’s own Save. It never presses Save for you. Uploads work the same way: it opens the drop zone, and you choose the files.
Citations
When an answer comes from these docs, it carries numbered markers like [1] that link to cards under the answer, and each card opens the section it used. If the docs do not cover a question, it says so rather than guess.
Levels and budgets
The assistant has three levels. An admin picks one per workspace in Settings, under Copilot.
| Level | Best for | Relative cost |
|---|---|---|
| Balanced (recommended) | Everyday work: questions and navigation run at the economy rate, and anything that changes data gets the stronger reasoning | A few cents to about 15 cents per action |
| Economy | Questions, docs and navigation. When you ask for a change, it hands that request to the balanced level so the change is done carefully | Under 1 cent per question |
| Thorough | Long multi-step work where care matters more than cost | About 2 to 3 times Balanced |
Two limits bound what the assistant spends:
- Per-action budget (default $0.25): one request, with all its steps, stops before it would pass this amount and tells you how far it got.
- Monthly cap (default $25 per calendar month, UTC): once it is reached, the assistant stops until the next month or until an admin raises the cap.
Both count toward your workspace’s weekly model budget, never instead of it. The assistant shows what the current request has spent as it works, and Settings shows this month’s spend against the cap.
The work it starts, such as a run or a layer job, costs the same as when you start it yourself, and the confirmation card shows that cost before anything is queued.
Privacy
Your frames never leave the platform. The assistant is text only. What it sends to its language model is text about your data: project and workspace names, readiness numbers, check results, labels, captions, run summaries, error messages and costs. Frames, video, images and file contents are never sent. Vision work runs on Euler’s own self-hosted models.
This is enforced in code, not by convention. Every piece of context and every action result passes a check before the model sees it, and that check refuses image bytes, embedded images and media file paths. A change that tried to send a frame would fail at that check instead of shipping pixels.
A share link the assistant creates is shown to you once, in the step that made it, and is not stored in the conversation.
Limits
- No uploads by chat. It opens the drop zone; your browser sends the files.
- No account administration. It cannot create or delete organisations, issue API tokens or read secrets, and it never sees passwords.
- Step limit. One request runs up to twelve steps, four at the economy level. If it needs more, it stops, tells you what it finished and what is left, and you can ask it to carry on.
- Budget stops. It stops before passing the per-action budget or the monthly cap, and says which one.
- It can be wrong. It reports what the platform returns, cites its sources and asks before it changes anything, but check numbers that matter on the screen they came from.
From your own code
The same assistant is available over the API as a stream of events, so a script or an internal tool can drive it. It is held to the same roles, confirmations and budgets.
| Endpoint | Purpose |
|---|---|
POST /v1/copilot/chat | Send a message; the reply streams as server-sent events |
POST /v1/copilot/confirm | Approve or reject a waiting confirmation by its id |
GET /v1/copilot/threads | Your conversations |
GET /v1/copilot/settings | A workspace’s level, budgets, areas and confirmation policy |
GET /v1/copilot/budget | This month’s spend against the cap |
GET /v1/copilot/manifest | The screens, panels and forms it can act on |
curl -N -X POST "https://api.euler.sudotank.com/v1/copilot/chat" \
-H "Authorization: Bearer <your API token>" \
-H "Content-Type: application/json" \
-d '{"message": "Why did my last run fail?", "screen": {"route": "run", "project_id": "kitchen-pilot"}}'
A confirmation arrives as a confirmation event carrying a confirm_id. Send
that id to /v1/copilot/confirm with "decision": "approve" or "reject".
Full request and event shapes are in the API reference.
Next
- What it changes for you: Pipeline settings, Review and Readiness.
- Wiring your own agent to Euler instead: MCP quickstart.