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 project —
list_files,read_file(the live buffers, unsaved edits included),search_files(string or regex),read_output(the dock's log). - The machines —
list_machines: codename (the id the SDK, the API and the Run rail use), qubits, list price per shot, status, queue. - A price, from the server —
quote_runhas the platform price a.qasmfor 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 runs —
list_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 library —
list_library/read_library_itempull an example's README and program in, so "add a QAOA example" starts from verified code.
What it can do
- Write —
write_filepauses 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 Python —
run_pythonasks 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