Skip to content
AlbertCode SWE

Browser interface

The browser workspace puts the conversation, Albert's steps, the plan and the diff, the app and its tests, the repository's files and a terminal side by side. Start it from a terminal:

Terminal
cd your-project
albertcode web

albertcode --ui does the same. It opens in your default browser, signed in, on the folder you started it in. To make albertcode always open the browser, set ALBERTCODE_SURFACE=ui. Each session has an address of its own, ending in /s/ and the session's id, so a bookmark or a reload opens it again.

The browser and the terminal interface work on the same sessions: a session started in one is there in the other, and what Albert does shows in both as it happens. If a page ever asks you to open AlbertCode from your terminal, run albertcode web again: a new version of AlbertCode signs in again.

The workspace

┌ AlbertCode   Session  Project  Git  Evidence  View  Settings  Help ─────────────────────────────────┐
│ SESSIONS     ‹ │ Show prices in euros   shop ⎇ main · Governed              │ Changes Files App Tests │
│ ✎ New session  │                                                              │ Context Task            │
│ ⌕ Find a sess… │  You     Show the prices in euros                            │                         │
│ ▾ S shop     3 │  Albert  ▸ 3 steps before answering                          │ The inspector: the      │
│   ● Show pri…  │  ┌ Task · Plan waiting for you ─────────────────────────┐   │ change, the files, the  │
│   ○ Fix the c… │  │ ✓ Read the project  ◆ Plan ready  ○ Build  ○ Checks  │   │ app, its tests, the     │
│ ▸ N notes    2 │  └ Approve and build · Revise · Reject ─────────────────┘   │ context, the task       │
│                │  ❯ Ask anything, or say what to change    Governed · model   │                         │
│                ├ Terminal (Ctrl+`) ───────────────────────────────────────────┤                         │
└ ● Live · shop · main ──────────────────────────── Governed · model · MCP 1/1 · Inspector ───────────┘
  • The menu bar at the top: every command, by area. See The menus.
  • Sessions, down the left: every project with its sessions under it, each with a lamp that says whether it is working (it moves), waiting for you (amber) or stopped with an error (red). New session starts one in the project you are in; Find a session searches titles and what was said. Each session's ⋯ has Rename, Pin, Stop, Archive and Delete, and ‹ folds the list to a rail of its projects.
  • The conversation: your messages, Albert's answers, and each task as a card with Albert's steps as he takes them, what he read, wrote and ran, a stage at a time, and the answers its gate takes when it needs you. See While Albert works.
  • The message box at the bottom: the mode (Governed; Direct, with Ask each write or Auto-approve; or Ask only), the model, the agent, and + to attach files. Type / for slash commands.
  • The inspector on the right (Alt P): the change, the repository's files, the app, its browser tests, the context and the task in full. See The inspector.
  • The terminal, under the conversation (Ctrl `). See Terminal.
  • The status bar: whether the service is live, the folder and its branch, the mode, the model, the MCP servers connected, and a button for the inspector.

Every session (Alt B) shows every session as cards by day, searched across titles and what was said, with the projects on the left. On a narrow window the sessions and the inspector fold away and come back from the buttons at the top.

The menus

Session

Item What it does
New session (Alt N) A fresh conversation in this project. Sessions at work carry on
Every session (Alt B) Every session as cards by day, to search and open
Rename…, Pin or Unpin Name the session; keep it at the top of its project
Fork A new session holding this one's messages, to try another way
Export…, Import… Save the session as a JSON file; open one saved that way
Archive or Unarchive Take it off the list, or bring it back
Stop (Esc) Stop what Albert is doing in this session
Delete… Its messages go; its tasks and their evidence stay

Project

Item What it does
Open a folder… Choose the repository new sessions work in
Clone a repository… Clone one from its address (GitHub, GitLab …) and open it
Recent The folders you used last
Worktrees… Another checkout of the repository on a branch of its own
Run the app Start the app and show it in the inspector. See Preview and browser tests
Browser tests The inspector's Tests tab
Files The inspector's Files tab
Terminal or Hide the terminal (Ctrl `) A shell in the repository, under the conversation
Architecture… What the repository is made of. See Architecture

Git

Item What it does
Changes The working tree's changes, in the inspector
Commit… Commit them, with a message you write or one Albert suggests
Pull, Push Bring in the branch's upstream (fast-forward only); push the branch
Switch branch…, New branch…, New worktree… Move between branches, or start one
Set up Git here A folder without Git gets a repository, on branch main

Evidence

Item What it does
Tasks… Every task by where it stands. See The task board
Evidence ledger… Every governed action, chained. See The evidence ledger
Requirements… What the app must do, and what proves it. See Requirements
Contract and memory… The boundary every task works within, and what Albert has learned here. See The contract

View

Item What it does
Changes, Files, App, Tests, Context, Task Open that tab of the inspector
Show the inspector or Hide the inspector (Alt P)
Show the agent's steps (Alt S) Every step of every task in the conversation, or each task folded to its card
Theme Match the system, or Nebula (dark), Aurora (light), Ember (dark), Ember light, Slate (dark) or High contrast
Show the time of each message

Settings

Item What it does
Settings… General, Providers, Models, MCP servers, Agents, Keys and About
Providers…, Connect a provider… Connect a model provider. See Models
Models… (Alt M) The model for this session
MCP servers… Your servers, the connectors to add, and what they offer. See MCP servers
Agents… Work as one of your custom agents
Language checks… Which languages each edit is checked in. See Language checks
Tools and skills… What this repository runs with. See Tools and skills
Commands, agents and plugins… Make, use and delete them. See Extending and Plugins
Sign out of this service On an AlbertCode service your organisation runs: forget its key in this browser

Help

Item What it does
Every command (Ctrl K) The command palette
Search the guide…, Keys and commands This guide, inside AlbertCode, searched as you type; it works offline
The guide online The same pages on the web
Service status The service, the engine, the model and what is connected
The classic page The page AlbertCode had before this workspace. See The classic page

The inspector

The inspector, on the right, holds what goes with the conversation. Alt P shows or hides it; on a narrow window it opens over the conversation.

Changes

The working tree's changes, file by file with their diffs, and the branch. A governed task's change stays in its own copy until you accept it, so it shows on its card, not here, until then.

Files

The repository's files, as a tree. Click a folder to open it and a file to read it, with line numbers; Files goes back to the tree. A file named in an answer opens here (see below).

To Do this
Make a file or folder New file or New folder, type its name, Enter. It goes into the selected folder
Rename ⋯ → Rename, or select it and press F2
Duplicate ⋯ → Duplicate. The copy is called "name copy"
Copy or move ⋯ → Copy or Cut, then a folder's ⋯ → Paste (or Ctrl/⌘ C, X, V)
Copy a path ⋯ → Copy path (full) or Copy relative path
Delete ⋯ → Move to Trash, or Delete (⌘ ⌫ on a Mac), then Move to Trash again to confirm
Open a terminal there ⋯ → Open a terminal here, or Terminal in the toolbar for the selected folder

The arrows move through the tree; → opens a folder, ← closes it, Enter opens a file. By design it will not work outside the repository or through a link, show or change Git's own folder, open or change a file that looks like it holds secrets (shown with a lock), or overwrite anything. Deleted items go to the Trash (the Recycle Bin on Windows), where you can restore them, and every change is recorded in the evidence ledger.

App

Run the app (or /preview) starts the repository's app with its dev script and shows it here, at desktop, tablet or phone width. The toolbar has Edit (change the page by clicking it), Logs, Reload, Open in browser, Restart and Stop the app. When the app fails or answers with an error, Ask Albert to fix puts what went wrong in the message box, to read and send. See Preview and browser tests.

Tests

The repository's browser tests, a step at a time: Albert writes them (as a task, so you approve the plan and the diff), the test runner is installed, a browser is found or downloaded, then Run tests checks every journey against the app. A failed test shows its error and screenshot, with Fix with Albert (a session of its own, given the error and how to run the test), Open the test, Download trace and Run again. See Preview and browser tests.

Context and Task

Context shows what this session's tasks used: tokens, the context each step had, and the cost when the provider gives one. Task shows the open task in full: its plan, every stage and step, its checks and reviews.

Terminal

Terminal in the Project menu (or Ctrl `) opens a real shell in the repository, under the conversation: zsh or bash on macOS and Linux, PowerShell on Windows.

  • Turn it on first. The first time, the panel says what it allows: what you type runs on your computer as you, outside the limits AlbertCode puts on the agent. Turn on the terminal turns it on; Use my terminal app instead opens your own terminal in the repository.
  • Tabs. New terminal (or Ctrl Shift `) opens another; each tab's × closes it.
  • Size. Drag the line at its top. AlbertCode remembers the height.
  • It keeps running. Hide it or reload the page: each shell carries on and comes back with what it wrote. A shell that has ended says so.

Only your own AlbertCode page can connect to it, a shared AlbertCode server never offers it, and no model key is in its environment. Turning it on or off and opening or closing a shell are recorded in the ledger; what you type is not. The ⋯ menu has Open my terminal app here and Turn the terminal off, which closes every shell it opened.

The command palette

Ctrl K (⌘ K on a Mac), or Every command in the Help menu, opens the palette: type to find a command, Enter to run it.

Area Commands
Session New session, Rename this session, Fork this session, Export this session as JSON, Pin this session, Stop what Albert is doing, Import a session from JSON
View Every session, Changes, Context and usage, The task in full, Show or hide the agent's steps
Evidence Tasks: where each one stands, Evidence ledger, Requirements and what proves them, Contract and memory
Project Architecture of this repository, Run the app and show it, Browser tests, Files of this repository, Terminal: show or hide
Configure Choose the model, Connect a provider, Work as a custom agent, MCP servers, Choose the repository for new sessions, Language checks after each edit, Tools and skills, Commands, agents and plugins, Settings, Theme: match the system and each other Theme
Help Help: search the guide, keys and commands, Service status
Commands Each of your custom commands, by name: it is put in the message box

Slash commands

Typed at the start of the message box. Enter picks the highlighted one from the list; a command that needs words after it waits for them, and Enter again runs it.

Command What it does Example
/plan <request> A governed change: a plan for your approval first /plan Add rate limiting to the login endpoint
/do <request> Change your files directly, asking before each write /do Fix the typo in README.md
/direct auto <request> Change your files directly, writes applied as they come /direct auto Rename getUser to fetchUser
/new Start a new session
/model, /mode The model for this session; the mode: governed, direct, auto or ask /mode ask
/agent <name> Work as one of this repository's custom agents /agent tester
/connect Connect a model provider
/mcp MCP servers: on or off, sign in, add a connector, import from JSON
/diff This session's change, or your working tree's
/stop Stop what Albert is doing in this session
/rename, /fork Rename this session; a new session holding its messages /rename Euro prices
/export, /import Save this session as JSON; open one saved that way
/attach Attach files to your next message
/open, /clone Open a project folder; clone a repository from its address /clone https://github.com/you/shop
/commit, /branch, /worktree, /pull, /push Git, as in the Git menu /branch feature/euros
/tasks Every task: where it stands, what it needs
/ledger The evidence ledger
/contract The contract here, and what Albert has learned
/requirements What the app must do, and what proves it
/architecture What this repository is made of, read from its files
/checks Which languages each edit is checked in; install the rest
/tools The tools and skills this repository runs with
/commands, /agents, /plugins Your custom commands, agents and plugins
/preview Run this repository's app and show it beside the session
/test Browser tests: write them, install the runner, run them
/files [path[:line]] The repository's files; with a path, that file, at that line /files src/cart.py:12
/terminal A shell in the repository, under the session
/theme, /settings Colours; theme, timestamps and keys /theme
/status The service, the engine and what is connected
/help, /docs Search the guide, keys and commands /docs browser tests

A repository can have commands of its own (see Extending): /name … runs one, and /server:prompt … uses an MCP server's prompt. A repository's own /requirements, /architecture, /files or /terminal takes the place of AlbertCode's, since those names are not reserved.

Keyboard shortcuts

Keys What they do
Ctrl/⌘ K The command palette
Alt N New session
Alt B Every session
Alt P Show or hide the inspector
Alt M Choose the model
Alt S Show or hide the agent's steps
Ctrl ` Show or hide the terminal
Ctrl Shift ` Another terminal
/ Go to the message box
Enter, Shift Enter Send; a new line
Esc Close a dialog; leave Every session; stop what Albert is doing
F2, Delete In Files: rename; move to the Trash, after you confirm

Keys and commands in the Help menu lists them all.

A file named in an answer

When Albert names a file in an answer, such as src/cart.py or src/cart.py:12, the name is a link: click it (or press Enter on it) and the file opens in the inspector's Files tab, at that line. Code in an answer is always shown as text, never run in the page.

The classic page

The page AlbertCode had before this workspace is still served, at /ui on the same service (The classic page in the Help menu), while every screen finishes moving over. It works on the same tasks, evidence and settings. The rest of this page describes it.

The classic layout

┌ Sidebar ──────────────┬ Top bar: session title · folder · Preview · Test · Files · Terminal · ⋮ ─────┐
│ AlbertCode  v1.51  ◧  │ ✓ Plan ─ ◆ Your approval ─ ○ Build in a copy ─ ○ Checks ─ … ─ ○ In your files│
│ ┌ repository ───────┐ │                                                                              │
│ │ S shop     Browse │ │   The page: Chat, or Requirements, Architecture, Tasks…                      │
│ │ Boundary · Run app│ │                                                   ┌ Side panel ──────────┐   │
│ └───────────────────┘ │                                                   │ Preview, Test,       │   │
│ ● New session         │                                                   │ Files, Terminal or   │   │
│ Search sessions       │                                                   │ a file               │   │
│ SESSIONS Projects|Days│                                                   └──────────────────────┘   │
│ ▾ S shop           3  │                                                                              │
│    ● Show prices…     │                                                                              │
│    ○ Fix the cart  1h │                                                                              │
│ ▸ N notes          2  │   ┌ message box · mode · model · attach ─────────────────────────────────┐   │
└───────────────────────┴───┴──────────────────────────────────────────────────────────────────────┴───┘
  • The repository card at the top of the sidebar: the folder you are working in, with Browse to choose another, Boundary for its contract, and Run app to start its app with one command.
  • New session and Search sessions, then every session under the folder it works in, the folder you used most recently first, each with a lamp that says whether its run is working or waiting for you. Days lists them by day instead. See Sessions and Chats about one thing.
  • ◧, at the top right of the sidebar, folds it to a rail (see Folding the sidebar).
  • The top bar: on Chat, the session's own title (click it to rename the session) and its folder; on any other page, that page's name. Then the side panels (Preview, Test, Files, Terminal), and the ⋮ menu with every other page and setting.
  • The gate track, under the top bar while the session has a governed task: where the task stands, from the plan to your files. See While Albert works.
  • The message box at the bottom of Chat, with the mode chip, the model chip, the agent chip and the attach button.

On a narrow window the sidebar folds away behind the ☰ button at the top left.

Folding the sidebar

◧ at the top right of the sidebar, or Fold the sidebar in the command palette, folds the sidebar to a rail of icons so the conversation gets the room. The rail keeps:

On the rail What it does
◧ Opens the sidebar again (Show the sidebar in the palette does too)
+ A new session
The magnifier Opens the sidebar and puts you in Search sessions
Each folder's mark Opens a session there: the one waiting for you, else the one at work, else the newest. A dot on the mark says one of its sessions is working (it moves), waiting for you (amber) or stopped with an error (red)

AlbertCode remembers whether the sidebar is folded. Focus mode hides it altogether.

Choosing a folder

Browse opens Open a repository, the folder picker:

  • On the left: Recent folders, Places (your home and its usual folders) and Storage (your drives).
  • The path at the top: click it (or press Ctrl/⌘ L) to type one.
  • Back, Forward and Enclosing folder, and New folder to make one here.
  • Folders that are Git repositories are marked Git.
  • Type to filter the list. Enter goes into the highlighted folder; Open (or Ctrl/⌘ Enter) chooses it.
Keys in the picker What they do
Ctrl/⌘ L Type a path
Alt ← / Alt → Back, forward
Backspace Enclosing folder (when the filter is empty)
↑ ↓, Enter Move, open a folder
Ctrl/⌘ Enter Use the highlighted folder
Any letter Filter
Esc Clear the filter, then close

Boundary also has Type a path instead, and Inspect boundary to read the folder's contract.

Changing folder puts the current session in the sidebar under the folder it was about; opening it again goes back to that folder. A run it had going carries on.

The ⋮ menu

Group Item Opens
Workspace Chat The conversation
Requirements Requirements
Architecture Architecture
Contract The contract: read it, write one, its history
Tools and skills Tools and skills
Commands, agents and plugins Commands, agents and plugins
Language checks Language checks
MCP servers MCP servers
Models and keys Models, the advanced settings
Assurance Tasks The task board
Evidence ledger The ledger
Session New session A fresh conversation
Clear this chat Empty the session open now
Help Documentation This guide, inside AlbertCode (see below)
Interface Command palette See below
Focus mode Hide the sidebar and the side panels' chrome
Light or dark Switch the theme
Refresh models Ask the providers for their model lists again

A dot on the ⋮ button means a task is waiting for you.

The classic command palette

Ctrl K (⌘ K on a Mac) opens the palette: type to find a command or a session, Enter to run it.

Command Shortcut, or the same as
New session Ctrl/⌘ Shift O
Choose a model Ctrl/⌘ '
Connect a provider /connect
MCP servers /mcp
Language checks — which languages each edit is checked in /checks
Commands, agents and plugins /commands
Each of your custom commands, by name Puts /name in the message box
Work as each of your custom agents /agent <name>
Work with no agent /agent default
Connectors — add Git, Playwright, PostgreSQL and more /connectors
MCP prompts and resources
Choose a folder Browse
Mode: Governed — plan, then approve The mode chip
Mode: Direct — ask each write The mode chip
Mode: Direct — auto-approve The mode chip
Mode: Ask only The mode chip
Open tasks Tasks
Open requirements Requirements
Open architecture Architecture
Open evidence ledger Evidence ledger
Open the contract Contract
Models and keys (advanced) Models and keys
Light or dark
Focus mode
List sessions by day, List sessions by project Projects and Days above the sessions
Fold the sidebar, Show the sidebar ◧ at the top right of the sidebar
Documentation — every command, page and button, with examples Documentation

Below the commands, the palette lists your sessions, each with its folder and day: pick one to open it. Typing a folder's name finds its sessions.

Slash commands on the classic page

Typed in the message box, these are answered by the page and never sent to a model:

Command What it does
/model [search], /models Choose a model
/connect [provider] Connect a provider
/new New session
/sessions [search] Find a session (opens the palette)
/help Open the command palette
/commands, /agents, /plugins Commands, agents and plugins
/agent <name>, /agent default Work as a custom agent; go back to none
/mcp [name], /connectors [search] MCP servers; the connector gallery

/plan <request> and /do <request> start a change (Chatting with Albert), /name … runs one of your custom commands, and /server:prompt … uses an MCP prompt.

Keys on the classic page

Keys Where What they do
Ctrl/⌘ K Anywhere Command palette
Ctrl/⌘ ' Anywhere Choose a model
Ctrl/⌘ Shift O Anywhere New session
Ctrl/⌘ Enter Message box Send
Esc A dialog Close it
Ctrl ` Anywhere Show or hide the terminal
Ctrl Shift ` Terminal New terminal tab
F2 Files Rename
Delete (⌘ ⌫ on a Mac) Files Move to the Trash, after you confirm
Ctrl/⌘ C, X, V Files Copy, cut, paste into the selected folder
↑ ↓ ← →, Enter Files Move, open or close a folder, open a file
Double-click a session's title Sidebar Rename it
Click the session's title Top bar, on Chat Rename it: Enter keeps the new name, Esc puts the old one back

Files on the classic page

Files in the top bar shows the repository's files beside the chat. Click a folder to open it, and a file to read it in the side panel; Back to Files returns.

To Do this
Make a file or folder New file or New folder in the toolbar. It goes into the selected folder
Rename Right-click → Rename, or select it and press F2
Duplicate Right-click → Duplicate. The copy is called "name copy"
Copy or move Right-click → Copy or Cut, then right-click a folder → Paste (or Ctrl/⌘ C, X, V)
Copy a path Right-click → Copy path (full) or Copy relative path
Delete Right-click → Move to Trash, or Delete (⌘ ⌫ on a Mac), then confirm
Open a terminal there Terminal in the toolbar opens one in the selected folder

By design it will not: work outside the open repository or through a link; show or change Git's own folder; open or change a file that looks like it holds secrets (shown with a lock); or overwrite anything. Deleted items go to the Trash (the Recycle Bin on Windows), where you can restore them. Every change is recorded in the evidence ledger.

The terminal on the classic page

Terminal in the top bar (or Ctrl `) opens a real shell in the open repository: zsh or bash on macOS and Linux, PowerShell on Windows. It opens in the side panel; the button in its header docks it under the chat instead, and back. AlbertCode remembers where you put it.

  • Tabs. + (or Ctrl Shift `) opens another. Close a tab with its ×, a middle-click, or Delete when the tab is focused.
  • Size. Drag the side panel's edge; under the chat, drag the panel's top edge, or double-click it to maximise.
  • Copy and paste. Select and press Ctrl C (with nothing selected it interrupts, as usual), or Ctrl Shift C and Ctrl Shift V. On a Mac, ⌘ C and ⌘ V.
  • It keeps running. Hide it, move it, or reload the page: each shell carries on and comes back with what it wrote. A shell that has ended says so; press Enter for a new one.

The terminal is off until you turn it on. The first time, the panel explains what it allows: what you type runs on your computer as you, outside the limits AlbertCode puts on the agent. Only your own AlbertCode page can connect to it, a shared AlbertCode server never offers it, and no model key is in its environment. Turning it on or off and opening or closing a shell are recorded in the ledger; what you type is not. Turn it off from the panel's ⋯ menu, which closes every shell it opened; Open in your terminal app there opens your own terminal instead.

Preview and Test on the classic page

Preview runs the repository's app beside the chat, and lets you edit it by clicking. Test runs its browser tests. Both have their own guide: Preview and browser tests.

Run app

Run app on the repository card is the quickest way to start the app with one command: AlbertCode fills in the command it found (such as npm run dev), or you type one, then Run. Open opens the app in a new tab, Stop stops it.

The side panel

Files, links and pictures you open from a chat, a plan, the task board or any page open in the side panel, beside what you were doing. Its header has Reload, Copy (the path or address) and Close.

Documentation

Documentation, in the ⋮ menu or the command palette, opens this guide in the side panel: every page, served by AlbertCode itself, so it works offline. Links between pages open in the panel; links to the web open in a new tab. ‹ All documentation goes back to the start. The same pages are published on the web, in the public repository's docs/ folder.

Light, dark and focus

Light or dark in the ⋮ menu switches the theme; by default AlbertCode follows your system. Focus mode hides the sidebar for a wider conversation; the ☰ button brings it back. To keep your sessions in reach with the same room, fold the sidebar instead.

From docs/browser.md in huynvic/albertcode-swe-agent at a8cef99 (15 Oct 2026), shown unchanged except for links. AlbertCode SWE Agent documentation, CC BY 4.0. Latest on GitHub.