SABLE

You're signed out

Your work keeps running — tasks continue in the cloud and will be waiting when you return.

Go to ashleystewart.com →
SABLE
G Ashley · authorized users only

Waiting for your email…
Tap the link in the email — this screen signs in by itself — or type the 6-digit code:

Use a different email · check spam for "Sable sign-in" the first time

SABLE

My Workspace

#TaskRepoRouteStatusPR

New Task — opens its chat with Oracle

PR-only writes — Oracle never pushes to main (SBL-015)

Oracle needs confirmation

Changes


    

Ask Iris about this task

She can see this task's status, transcript, diff and files. Asking her changes nothing and queues nothing.

My Profile

My Knowledge

Facts, decisions and preferences Oracle should carry into every conversation. Company records apply to everyone and win if they conflict with yours.

My email addresses

Any of these signs you in to this account, and a report sent to any of them appears in your Reports. One report is listed once, however many of your addresses it went to.

My usage

Loading…

My fallback chain (SBL-011)

OrderCredentialKindEnv refHealth

Personal accounts power only your tasks. Values are never shown — only the env-var name that holds them.

Link a personal account

Terminal

A shell in the runner container — node, npm, git, python3, pandoc, LibreOffice, Chromium. Work inside it is free. Anything that leaves it — a push, a deploy, publishing — is held for approval, exactly as it is for Oracle.

How to use this
1. Start a session. Press Open a terminal. To work on a repository, put owner/name in the box first and it is cloned for you; leave it blank for an empty scratch container.
2. Type a command and press Enterls, npm test, git status, python3 script.py. cd is remembered between commands, so you stay where you moved to.
3. Three kinds of command. Most run immediately. A few ask first — anything that rewrites history or deletes in bulk. A few are refused outright and become an approval request instead: pushing, deploying, or sending anything outside the container.
4. The container is temporary. It is yours until the session ends. Commit and push (which asks for approval) if the work needs to outlive it — files left in the container are gone when it stops.
Long output is trimmed from the MIDDLE, so the command you ran and its final result are both always visible.

      

Spaces

A Space holds files and the conversations about them. Anything you ask Iris inside a Space already has its files — you never attach them twice. Your uploads stay yours: they are not read by the fleet or by any report.

Bug reports

Things handed to Oracle to investigate. Oracle decides whether each one is a fault it can fix, or a change that needs approval first — you are never asked to make that call.

Report a bug

Sessions

Work done in Claude Code or Cowork on your own machine, brought here so it is visible alongside everything else. These did not run on Sable's runner.

Where do these come from?
Claude Code writes every session to a .jsonl transcript on your own machine, under ~/.claude/projects/. Sable cannot reach that folder — your browser has no access to it — so a session gets here one of two ways.

One session, by hand: press Import a session above and pick the .jsonl file. Importing the same file again UPDATES that session rather than making a second copy, so it is safe to re-import as work continues.
All of them, from the machine: run the courier, which reads the folder directly:
node scripts/import-session.js --all
It needs SABLE_URL and SABLE_SESSION set in your environment; it imports as you, into your account.

Only the conversation is carried over — the messages, and counts of the tool calls. Sable does not receive your files, your keys, or the repository itself.

Reports

Upload a report

Send history (admin) — from the mailer ledger

Sent (ET)ReportFileModeRecip.

Create a report route (admin) — no code

Setting recipients emails those people — this is a live distribution change (audited).

Live mailer library (reports.gashley.com) — reference

NameStreamModified

Read-only view of the existing reports dashboard. These stay served there too — nothing is disabled.

Fleet — AS Agents

Loading fleet status…

Purpose and department come from the fleet roster; status comes from the fleet's own /status. An agent in the roster that is not reporting is shown as such rather than hidden.

Admin

Team — who is using Sable, and how much
MemberRoleTasksDoneFailed

Settings

Iris waits this long after you stop speaking, then sends. At 0 it fires.

Default OFF. With it off, Iris drafts an email and you press Send — so a misheard voice command can never mail a colleague or customer. Turning it on removes that gate for every outbound action. Change is audit-logged.

Credentials — org keys & per-user keys

LabelAssigned toKindEnv var (IT sets value)Status
Sable runs these same checks automatically at 4:00 am ET, and notifies you only if one changes state.

Per-user keys serve only that user's tasks. Sable stores the variable NAME only — IT pastes the value into Railway under that exact name.

Routing rules (SBL-012) — edit, no deploy

OrdTask classMatch keywordsModelRunner

Users

EmailCodingReportsAdminActive

A person who does both registers for both services under one login. Report-only users never see coding; coding-only users never see reports. Admin and services are independent — an admin may legitimately lack a service.

Audit (last 100)

IIris your guide 🔊 🗑