The StudyLoop Web UI brings live mentoring, body doubling, review, plans, and session evidence into one local browser workspace.
studyloop webOpen the address printed in the terminal. Keep that terminal running while you use the app.
!!! warning "Supported screens and connectivity" Use a laptop or tablet. Phone screens are not supported. The app also does not work offline: there is no service worker, so the StudyLoop server must be reachable whenever you open it.
Use Study Session when you want to understand, practise, debug, or teach back a specific topic.
- Open Study Session in the sidebar.
- Enter one topic. Arriving from the Today card's Start fills this in with the action the engine named and, when that action carried a first move, shows it beneath the topic — one passive thing to open and read for ten minutes before you begin, if you want it; Open the lesson opens the named lesson in the Course Explorer panel beside the picker.
- Choose an installed agent and set your energy from 1 to 10.
- Start the session and answer the mentor in the terminal or chat surface.
- Park tangents instead of switching tasks.
- End the session from the status bar so the summary and evidence are saved.
The terminal shown above is Kiro running inside the real StudyLoop session surface. Other installed agents appear in the same picker. Depending on the agent, StudyLoop renders either a live terminal or a structured chat surface.
The bottom status bar keeps the timer, topic, energy, wins, parked items, and review count visible without interrupting the conversation. A first move that arrived with the topic stays beneath the status bar for the whole session, with its Open the lesson control — a proposal on screen, never something the mentor says — and leaves with the topic when the session ends. It belongs to the material it arrived beside: retype or re-pick the topic in the picker and the move goes with the old one, and a session you rejoin carries none.
Use Body Double when the difficult part is starting or staying alongside the work rather than learning a new concept. It is for anything you are doing — study, a report, a tax return — so there is no topic list to choose from.
- Open Body Double.
- Name the activity in concrete terms, such as “trace one decorator call”. Arriving from the Today card's sit-with proposal fills this in with the plan's title and shows a first move beneath it — one passive thing to open and read for ten minutes, if you want one; ignore it freely. When the move names an indexed lesson, Open the lesson opens it in the Course Explorer panel beside the picker, so the session can start with it already open next to you.
- Choose an agent, and set the Pomodoro lengths if a time box would help.
- Start the body-double session. The page becomes the agent's screen: one strip at the top with the activity, the Pomodoro (Start Pomodoro, Pause, Resume) and End session, and the agent's console filling the rest of the window. The first move stays with you: it sits on the strip beneath the activity name for the whole session, with Open the lesson beside it when a lesson was named. It is a proposal on screen — the companion never says it, and nothing opens unless you press the button.
- Capture folds to one row under the console while the session runs.
Note opens the note composer (notes are filed under the activity) and
Park keeps a tangent for later without leaving the session; the
Pshortcut parks from anywhere. - End the session when the work block is complete. The page returns to the layout you had before it started.
Body Double deliberately uses the same session lifecycle as Study Session, so the work is still recorded and can be resumed later. The tone is lighter: the agent is there to maintain presence and help with the next small commitment.
Today reduces a crowded backlog to one recommended action using the time and energy you have, recent continuity, due reviews, and weak concepts. Treat it as a starting suggestion, not an instruction. If the action is wrong, choose a smaller one or move to Study Session directly.
An active study plan biases this recommendation — plan-aware guidance with tested ranking rules, not a filter: the card names the plan and milestone an action advances, a milestone above your current energy is shown as deferred with a reason, and an overdue review or fresh struggle can still outrank new milestone work. With no active plan the card is unchanged. See Study Plans.
When nothing plan-related fits the day's energy, the card proposes sitting with the plan and, beside the door, one first move — one passive thing to open and read for ten minutes, if you want one. When that move names an indexed lesson (with the course it belongs to and the word the match rests on), an Open the lesson button opens it in the Course Explorer panel beside the card; you stay on Today with the lesson next to it. A move that names only the milestone offers no button, because there is nothing indexed to open yet.
When the day can carry the work — the card's action is a plan-related repair, milestone or teach-back at medium or high energy — the same first move appears as a warm-up into it, on that action's own material, and ends then start … rather than nothing more: read the lesson you are about to repair for ten minutes, then start. The Open the lesson button follows it in the same way. Recall never carries a warm-up — reading the lesson before a retrieval test defeats the test — and an action unrelated to any plan carries none. Pressing Start on a study action hands it to Study Session with its topic, the day's energy and the first move already filled in, so the picker never opens blank on something the card just named.
The review screens use locally generated course material and your StudyLoop database.
- Flashcards schedule reviews with SM-2 and record each rating.
- Quizzes provide retrieval practice from generated question sets.
- Filters help narrow a large course or chapter before starting.
Generate material through the Content Pipeline before the review screens will have anything to show.
The Study Plans view lists plan status and milestone progress, opens the Markdown plan as a readable document, and lets you preview or record checkpoints. New plan begins with a free-text description, followed by manual structured fields; the form does not send that brain dump to an agent for decomposition. Plan with architect, beside it, starts the study-plan-architect interview as a planning session in the Study Session console (labelled as such, and the label survives a reload); the click itself creates no plan. See Study Plans for the full, current workflow.
- Courses browses ingested learning material and can copy a Socratic prompt for discussion.
- Mastery visualises concept relationships and weak links after evidence has been recorded.
- Parking Lot holds questions that matter but do not belong in the current focus.
- Notes can add context to a study session. Notes are optional and are not treated as evidence of learning by themselves.
The header controls the Pomodoro timer, theme, font, and text size. Preferences stay in the browser.
The speaker control enables StudyLoop announcements and exposes the voice
selector. Individual flashcards can be read aloud with their speaker button or
the T key. There is no automatic “read every card” mode.
Speech first uses the configured Kokoro-compatible server. If that is not available, StudyLoop can fall back to operating-system voices, and then to silence. See Voice Output for setup and privacy details.
To open StudyLoop from a tablet or another laptop on the same trusted network:
studyloop web --lanUse the address and password printed in the terminal. LAN mode uses HTTP Basic
Auth, but it is still intended for a trusted local network—not direct exposure to
the internet. A tunnel or reverse proxy changes the security boundary and is not
part of the supported quick path: its Origin header differs from the LAN host's,
so WebSocket connections through it are rejected by default. If you still need
one, set STUDYLOOP_ALLOWED_ORIGINS to a comma-separated list of exact origins
(scheme + host + port, no wildcards) — see
Troubleshooting.
- End any stuck session from the Web UI if the control is available.
- Run
studyloop doctor --fix. - Confirm the chosen agent launches normally from its own CLI.
- Restart
studyloop weband try one small session. - Use Troubleshooting if the agent remains unavailable.
ttyd is fully retired and installing it enables nothing: live sessions use
StudyLoop's own terminal (xterm.js over a WebSocket) or chat (ACP) surfaces,
and the server no longer spawns, proxies, or accepts a ttyd transport value
at all.

