Working in the lab · Chapter 8 of 14

Copilot

What it can and can't do, approvals, cost.

~3 min read6 sectionssame text as the guide inside the lab
All chapters

Keys are written for macOS, the way the lab prints them — on Windows and Linux read as Ctrl, as Alt, as Shift, as Enter.Keys are shown for Windows / Linux to match your platform — on a Mac, Ctrl is and Alt is . Every binding: Keyboard shortcuts.

RoRo Copilot lives in the last-but-one rail icon: an agent that sees your project and the platform around it and proposes changes — honest about what it did, what it cost, and what it may not do alone.

What it can see

Every read is automatic and shows as an activity line.

  • Your projectlist_files, read_file (the live buffers, unsaved edits included), search_files (string or regex), read_output (the dock's log).
  • The machineslist_machines: codename (the id the SDK, the API and the Run rail use), qubits, list price per shot, status, queue.
  • A price, from the serverquote_run has the platform price a .qasm for a machine and shot count and relays it verbatim. A quote holds nothing and submits nothing, and the copilot never multiplies numbers itself.
  • This project's runslist_runs / read_run: status, cost, the credit line the Output pane prints (a refund is certain only when the record says approved), the counts.
  • The librarylist_library / read_library_item pull an example's README and program in, so "add a QAOA example" starts from verified code.

What it can do

  • Writewrite_file pauses the loop for an approval card: Edit or New file, the reason, a compact +/− diff. Apply writes through the ordinary save path; Decline is an answer the model must live with.
  • A change set — several files proposed in one round become one card headed N files: a row each with +/−, its own diff and a tick, then Apply all / Apply selected / Decline all. Applying is sequential and the copilot is told file by file what landed — one question for one edit, never a half-applied refactor.
  • Run Pythonrun_python asks first, then runs the file on the browser kernel: local and free. The output goes to the model, not the dock.
  • Explain — the Output pane's Explain this result / error is the same metered turn.

From the editor

Select code and a small bar appears — or press ⌘., which takes the current line when nothing is selected: Explain · Fix this · Add comments · Write a test · Ask about this…. Nothing is sent until you click one. It starts an ordinary turn: the file and line range are quoted in the transcript, it costs credits, Stop ends it, and any edit still arrives as a card.

What it cannot do

No way to submit a run or spend run credits — a quote is a price check; hardware stays behind the Run rail's confirm. Nothing written or run without a card. The model is anonymous: the platform picks it.

Cost, visibly

Every turn is metered as AI credits. The footer shows N cr this session · balance · metered per turn, read when the panel opens. There is no per-message ceiling: the cost trail, Stop and your balance are the controls. Out of credits, the server refuses the next request before it is charged and the feed shows a Top up in the console card. After 40 tool rounds it pauses; Continue resumes.

Conversations and asks

Sessions are saved per project (Conversations…, +, the bin); switching rails never cuts off a streaming answer. Three starter chips, or a persona (hackathon, integration, research). Good asks: "What would 4000 shots cost on the cheapest real machine?", "Why did my last run fail?" — then read the diff before Apply.

Related: Python in the browser · Machines & credits · Run a circuit · Library