The console
The console manages your organization and projects. The sidebar carries two views — your project, and your organization.
| Page | Address | What it answers |
|---|---|---|
| Runs | /runs |
What runs do I have, and what did each one do |
| API keys | /keys |
Which credentials can push |
| Webhooks | /webhooks |
Where do events go |
Organization
Section titled “Organization”| Page | Address | What it answers |
|---|---|---|
| Overview | /organization |
Organization overview |
| Projects | /organization/projects |
What projects exist in this organization |
| Members | /organization/members |
Who else can collaborate in this organization |
| Notifications | /organization/notifications |
Invitations and workspace alerts |
| Settings | /organization/settings |
Who am I here, and organization settings |
Runs is the list
Section titled “Runs is the list”Runs is where signing in lands you, and the page is the list — there is no dashboard above it. It carries every run you can see: your own account’s and every account you hold a role in, interleaved and newest first, with an Account column and a Role column on each row.
Two facts sit above it: Storage used and Runs kept. Both are your own account’s, and both say so — the table below them spans accounts you may only be a viewer on, and nobody bills you for those.
What a row offers
Section titled “What a row offers”The row menu is built from the role you hold on that row’s account:
| Your role there | Labels | Delete | Hide and Unhide |
|---|---|---|---|
| Owner | Yes | Yes | Yes |
| Editor | Yes | Yes | No |
| Viewer | No | No | No |
An editor labels a run and cannot hide one, and the difference is what the act decides: a label changes how a run is found, while hiding changes who can see it.
A viewer’s row carries no menu at all. An action that would always be refused is not shown as a disabled control.
Tick several rows and the same acts apply to the selection. The filter — name, who pushed, and a date — narrows what is on screen; while it is on, an owner can hide every match in their own account in a single act, without the page listing them one by one.
Labels
Section titled “Labels”A label is the one thing on a run you write rather than the sandbox. Open a row’s menu, choose Labels, and type one — or click one the account already uses, so a near-miss spelling does not quietly become a second label.
Labels show under the run’s name, and each one is a link. Clicking it narrows the list to runs carrying it, and the rail above the table offers every label in use with a count beside it.
That narrowing is a place, not a setting. It lives in the address (/runs?label=nightly), so you can bookmark it, send it to a member, or open it in a second tab — and unlike the three filter boxes, it asks the run store for a different page rather than filtering the one already on screen. Click the active label again to clear it.
A label is lower-cased for you, and can use letters, numbers, and . _ -. One run carries at most 20, and an account uses at most 200 different ones — the same on every tier.
Your first run
Section titled “Your first run”With nothing pushed yet, /runs offers one button. It creates an API key on your account, shows it exactly once, and puts it inside the whole curl command that pushes a run. Copy the command and you are done — the key is not stored anywhere and cannot be shown again.
A run’s own page
Section titled “A run’s own page”Click a row to reach /runs/{id}. It shows the run’s posture, who pushed it, how it ended, its size, and when it expires.
What the run printed is text. Nothing is linkified, no markdown is rendered, and characters that would reorder or erase what is around them are replaced with a visible spelling of themselves — a run’s output was written by code we did not run, and it is shown, not trusted. Output is read out of the stored archive, so it is never a row in a database of ours.
Past a quarter megabyte, each stream shows its end rather than its start: a run that failed says why on its last lines. The page says when that cut applied, and separately when the sandbox had already applied its own. The whole of it is always in the archive.
Every file downloads. A file the run left in results/ is served as an attachment with a type read from its bytes, never from its name — so a page a guest wrote downloads rather than renders. No storage URL, signed or not, ever reaches your browser: every byte crosses this API.
What is not here
Section titled “What is not here”There is no page that runs anything. A run is the record of something that ran on your machine; this console keeps it, shows it, and hands it back.