Getting Started
The Run Workspace
What the workspace shows you while the agent works, and the controls for steering, refining, and sharing
Once you submit a run, the new-run form gives way to the workspace. This page is the field guide: what each surface shows, what every header button does, and the keyboard shortcuts that make it faster.
The layout
Two side-by-side panels with a resizable divider between them, plus the agent chat that slides in from the right as a drawer:
- Live code / progress (left, while running). Shows the agent's code blocks as they execute, with a step counter. On Pro+ this is the full Python source; on Free it's a step summary. The same code lands in the exported reproducibility script.
- Result viewer (right). Empty until the first fit lands, then fills in with the curve, parameter table, CIs, R², QC flags, and a one-paragraph interpretation. The plot is interactive — hover for point values, switch to residuals, toggle palette, copy the equation. When a run reports multiple fits (e.g. ΔΔCt across a panel of targets), they render as separate cards in the same viewer.
- Agent chat (right-side drawer). Streams every step the agent takes — the columns it identified, the model it chose, the tools it called, the warnings it raised. Treat this as the audit narrative, not just chatter. The drawer toggle lives in the header; on a completed run it's also where you ask follow-up questions.
The workspace header
The header sits above all three panels and surfaces every action you can take on the current run:
Refine
After a run completes, click Refine to open a prompt box. Type the change in one sentence:
- “Try a 5PL fit instead.”
- “Exclude the 100 µM replicate.”
- “Fix bottom to zero.”
- “Use the Results sheet.”
- “Convert concentrations to nM.”
The agent processes the refinement against the same data and run state — no new file upload, no new picker selection. The new fit replaces the previous one in the result panel; the chronological narrative of what changed (and why) lives in the agent chat drawer. Refines do not count as a new run against your monthly quota.
Stop
While a run is in progress (the status pill reads running), the Stop button cancels it. The Run is marked as failed, which means it does not count against your monthly run quota — failed and errored runs are excluded from the count. Use Stop when you spot the agent heading down the wrong path early: picking the wrong reference column, or trying to fit a non-sigmoid to clearly sigmoidal data. The chat history survives the stop, so you can read what went wrong before starting fresh.
Duplicate
The Duplicate button clones the run setup — same workflow, same prompt, same plot config — into a new draft run named <original> (copy). Useful when you want to try two different model choices in parallel, or when you're iterating on a prompt and want the original result around as a baseline. You re-attach the input file in the new draft.
Share link
The share icon copies the run's URL to your clipboard. Today, that URL is private to the run owner — every API endpoint that backs the workspace (events, chat, results) checks that the signed-in user is the same one that created the run. The button is mostly useful for copying the link to your own bookmarks or another tab. Multi-user sharing isn't shipped yet; on Team plans it's coming with shared workspaces.
Progress
While a run is running, a Progress button shows the count of code blocks the agent has executed. Clicking it opens the live code panel pinned full-height, which is the easiest way to follow long-running freestyle analyses.
Export
Available once the run completes. See Quick start step 9 for the full menu. The short version: PNG and the Python reproducibility script are the two most-cited exports; the audit bundle is the one to attach if a reviewer asks for provenance.
The agent chat
The chat is two-way. While the run is going, the agent is narrating; once it finishes, you can keep typing. Three flavors of follow-up work without going through Refine:
- Questions. “Why did you pick the quadratic over the linear fit?” “What does the shallow Hill mean here?” The agent answers from the run state without re-fitting.
- Inspections. “Show me the residual plot.” “What was the standard recovery on the 5 ng/mL point?” The agent runs the small computation and replies in chat or updates the viewer.
- Refinements as plain text. Anything you could have said via the Refine button can also go in chat. They're equivalent — Refine just gives you a more deliberate input box.
What the agent is actually doing
Under the hood, every analysis follows the same three-step pattern: read the file, fit the right model, report the result. The agent picks the fit tool from a fixed catalog —fit_dose_response_4pl, fit_standard_curve_tool, fit_enzyme_kinetics_tool, calc_qpcr_ddct, and so on — so the numerical backbone is identical whether you reach the assay through the picker or describe it in a custom prompt. The catalog of fit tools is fixed; only the orchestration around them is LLM-driven.
The freestyle / Custom Analysis path opens up the full Python runtime (pandas, NumPy, SciPy, matplotlib) for assays that don't have a dedicated tool — power-law fits, custom normalizations, plate-effect corrections. The same report_fit contract is used for the result, so the viewer and exports look the same.
Keyboard shortcuts
Three global shortcuts are wired across the run views:
- ⌘ K / Ctrl K — open the command palette (every action lives in here)
- ? — open the cheatsheet
- ⌘ / / Ctrl / — toggle the runs sidebar
Inside the command palette you can fire export, refine, duplicate, and copy-share-link without leaving the keyboard. The agent chat composer also responds to ↵ to send, ⇧ ↵ for a new line, and / to open an inline command menu.
When something hangs
Runs cap at 30 minutes of active agent time, plus a 20-step ceiling on code blocks; the cleanup loop sweeps stale states every 5 minutes. If a run sits in running longer than feels right (most fits are 20–40 seconds), open the chat drawer — the agent usually says exactly which step it's on. If the chat itself isn't updating, reload the page; the workspace reconnects to the run state on a fresh load. If it's still stuck after that, hit Stop and email hello@gradiancebio.com with the run ID — we read every report.