Getting set up
Start here
A one-minute walkthrough of the terminal, and a checklist whose every line is checked against something real. Nothing on this page is ticked because it probably happened.
The sixty-second tour
one minute- Status
- Not started
- Stopped at
- —
- Finished
- —
- Steps
- 8, each anchored to an element in the terminal
The tour runs inside the terminal, because that is what it is about. This page starts it and remembers where it stopped; the walkthrough itself opens over the live screen. A step whose target is not on screen is skipped rather than shown pointing at nothing.
First-run checklist
in progress- Create an account so your work is stored on the serveroptional9 accounts exist on this machine.This build ships the account routes (POST /api/auth/register, /api/auth/login) but no sign-in screen, so there is no button here that would create one. Until there is, everything you save is kept in this browser only — kit/store.js reports that as durable: false and says so wherever it matters.Checked against GET /api/auth/status
- Open the watchlistPut a company on a watchlistNo lists stored yet.Checked against the `watchlists` document, via kit/store.js
- Import a portfolioImport holdings, so every screen can be recalculated against themNo positions stored yet. A CSV import is the fastest way in.Checked against the `portfolio` document, via kit/store.js
- Open preferencesChoose a density, theme or default tickerNothing stored — the app is following its shipped defaults, which is a valid state.Checked against the `prefs` document, via kit/store.js
- Open the terminal and start itTake the sixty-second tourNot started.Checked against the `onboarding.tour` preference
- Open the keys pageOptional: configure an API keyoptionalNone of the 11 optional credentials are set. Every screen still renders; the ones that need a key say which one.Checked against GET /api/pages/environment
Not signed in — changes are kept in this browser only and are not on the server.
What the tour covers
- Every screen is in hereSixty-two screens, grouped by what they answer. The sidebar is the escape hatch: it survives a screen that fails to render, so there is always a way back.
#singularity-sidebar - Set the company onceType a ticker and press Enter. Every screen that takes a company follows this one field, so you do not re-enter it per screen.
#singularity-sidebar .ticker-input - Or jump straight to a screenType a mnemonic — SOVW, WACC, ECAL, NEWS — and press Enter. Every screen has one, including the ones not listed in the sidebar.
#singularity-sidebar .command-shell - The screen listGrouped by subject. The filter above it narrows the list as you type.
#singularity-sidebar .sidebar-nav - What you are looking atThe header names the screen and the company it is currently about.
#terminal-viewport .viewport-header - Where you have beenBreadcrumbs and recently-viewed. The as-of stamp for the screen sits on the same row.
[data-sgc-chromerow] - Every number carries its sourceClick a provenance chip to see the exact request behind a figure, and whether it came from the live source or from a cache replay. The chip links through to the source health page.
.sgkProv - The screen itselfScreens fetch live. A panel that cannot reach its source says so rather than showing a zero — an empty state here is a real answer, not a bug.
#terminal-viewport .workspace
Each anchor above is a selector that exists in static/app.js, static/chrome.css or frontend/kit/panel.js today. If one of them is renamed, that step disappears from the tour rather than breaking it.