The Workbench

An agent edits files, starts a server, tells you to look at a page. In a plain terminal you open a second window for each of those, and lose track of which belongs to which chat. In Koloft every session tab has a Workbench beside it, and so does each folder. The agent's own terminal stays untouched next to it.

The Workbench does not jump around while the agent works. Nothing follows the agent's writes by itself. A file opens when you click it, or when the agent asks for it on purpose (see agents). ⌘⏎ makes the Workbench full width and back.

Folded down

The folded Workbench card: 6 files, +7 −2, and under Docs three Markdown files: release-0.5.md, storm-alerts.md and NOTES.md
the card you see with the Workbench folded

⇧⌘B folds the Workbench down to a small card beside the terminal: how many files this session changed, and the Markdown or HTML files it wrote. Click the diff line to open Changes, a file to open it.

A Codex session gets the same card, and so does a session on a remote folder, Assist's pick included. On a remote folder the line count catches up at most every ten seconds, and an HTML file opens as a web page read from the machine.

Files ▸ Changes

The files this session touched, each with its diff right there. You read what the agent did without typing git diff. The base switch picks what to compare with: changes since the branch started, or only the ones not committed yet.

Each hunk (one block of changed lines) has ✎ comment in its header. Click it, write a note, press ⏎: the file path, the hunk and your note land in the session's input box, not sent. You read it over and press ⏎ there. The same in a Codex session and on a remote folder. While the session waits for your OK on something, or has ended, the button is greyed and says why.

The Changes list: four files the session touched on the left, and the diffs of forecast.ts and server.ts on the right, added lines in green and removed lines in red
the four files this session touched, with every diff in one scroll; the one you click is scrolled to (on a phone: the diff pane only)

Files ▸ Browse

The whole folder as a tree. A switch shows the files git ignores too. Once a Claude session writes to its scratchpad (its own folder for working files), that folder shows here too, on a remote machine as well.

The Browse tree of the tidewatch folder on the left, and README.md shown as a rendered page on the right
the folder tree, with README.md open as a rendered page (on a phone: the rendered README only)

File tabs

Web tabs

A real browser, not a preview. Logins stay, downloads work, popups open, and Chrome extensions run. When the agent runs open <url>, the Workbench opens on that page, and your cursor stays in the terminal. If the agent's session is not the one on screen, you are not pulled over: the page waits in front when you click that row. A page you open with ⌘-click lands in the background with an unread dot, and so does one an agent opens while driving the browser (see agents). Neither is loaded until you click it. Eight tabs per session; a ninth pushes out the one you used longest ago.

Typing in the address bar suggests this project's pages first, the ones you visit most on top (up to six). A file path typed there opens that file: an HTML file as a web page, any other file the Workbench can show as a file tab. So does a file name from the session's folder (its worktree, in a worktree session), like index.html or src/app.ts. On a remote folder the file comes from the machine, and an HTML file opens as a web page there too. Plain words run a search.

A web tab in the Workbench showing a local API docs page at localhost:4173, with an address bar, back, forward and reload buttons, and the button that picks a part of the page
the project's own docs page, served on localhost, in a web tab (on a phone: the page only)

Point the agent at one part of a page

To the right of the address field is a button. Its tip reads Pick an element and paste it into the session. Click it and move the mouse over the page: the part under the mouse lights up. Click that part (the click does not reach the page). Koloft puts this in the session's input box, without sending it:

Add what you want done and press ⏎; your cursor is already back in the terminal. To stop picking without pasting anything, press Esc, click the button again, or click anywhere else in Koloft; picking also stops if the page goes to a new address. While the session waits for your OK, has ended, or the page is not showing, the button is greyed and its tip says why.

Every agent gets the same paste. On a remote folder, the picture is copied to that machine, into ~/.koloft/element-picks, and the paste names that path. Koloft deletes each picture after about a day. On a remote machine, it deletes old pictures the next time it saves a new one there.

Terminal tabs

While the session is running, ⌃` opens a shell in its folder (up to eight). Run a test or check git there, and leave the agent's terminal to the agent.

A terminal tab named zsh in the tidewatch folder, after running ls and git log
a shell of your own, in the same folder as the session (on a phone: the shell lines only)

The GitHub button

In a GitHub project a GitHub button sits next to Files. Click it to open the branch's pull request in a web tab, or the repo page when there is none yet. When the branch has a pull request, the button shows its number and a dot: green, its checks passed; amber, still running; red, one failed. Right-click it for more:

The checks need gh (GitHub's command-line tool) signed in; without it the line says Checks · install gh or Checks · run gh auth login. In a folder picked for a git account, gh reads them as that account instead. The same on a Codex session. On a remote folder the commit and push run on the remote machine, and gh runs on your Mac.

A folder's own Workbench

Each folder in the sessions list has a Workbench too, one that belongs to no session. Click the folder's own row: the folder's start page shows (the one with buttons to start a new session), and the Workbench button on the right (or ⇧⌘B) opens that folder's Workbench. It has Files of the folder, file tabs and web tabs, and no terminal. It stays closed until you open it, and its tabs come back when Koloft starts again.

In a GitHub project, a click on the open issues or open pull requests count (on the folder's row, or in its git panel) opens that list on GitHub in this Workbench. A session that was on screen keeps running; click its row to go back. Click the same count again and the same tab comes forward. On a remote folder it works the same, and the counts are greyed while the machine is not connected.

The note

One plain-text note per folder. Sessions come and go; the note stays. A remote folder's note is kept on your Mac. Your butler has a note of its own, Notes · Alfred (with the name you gave it), shown while the butler or one of its helpers is in front.

The note for the tidewatch folder: a short plain-text to-do list
the note sits under the folder's sessions. ⌥⌘N jumps into it. It saves itself as you type (⌘S saves right now).

What it won't do

Next page → Agents can use Koloft too