Agents can use Koloft too

An agent lives in its terminal. On its own it cannot put a file in front of you, leave a line for tomorrow's session, or use the browser you are signed into. Koloft gives it two things: a koloft command, and the web tabs in its own Workbench.

The koloft command

Every session Koloft starts gets a koloft command: Claude, Codex, Muse or Antigravity, on this Mac and on a remote folder's machine. It is on by default. The switch is Settings ▸ Extensions ▸ "Let agents use Koloft". Turning it on reaches sessions you start after that. Turning it off stops the command in every session at once. When an agent changes a scheduled job, a small message pops up to tell you.

With it, the agent can:

Workbench and note

Passwords and codes

When the session needs something only you know, and you are on your phone, it can ask in your butler's Discord channel, on a card that names the session (see passwords and codes on Discord), which says what happens to what you type. The agent never sees it.

With no Discord channel bound, all three are refused with a message that says so.

Scheduled jobs

Sessions

session list and session new take --workspace <folder> to reach another folder in the sidebar, by its name or its full path. A session started into another folder this way sits at the top of that folder's list (see sessions an agent starts). The folder may be a remote folder: the session then runs on that machine, and a Claude Code session there is reached with session send, since Claude's own messages between sessions stay on one machine.

With "Let agents use Koloft" on, every session is also told which helper fits which job. Work that needs its own branch or worktree goes to a Koloft session started with -w. It never goes to a hidden helper, or to a branch in the folder other sessions share.

Each command prints its answer, so the agent sees what happened. The agent runs koloft help for the rest.

GitHub

Your butler, Koloft's own AI that you talk to from the sidebar or from Discord, uses the same commands. Only it, with a Discord channel bound, can send you files or a picture of a page on Discord. See what your butler can do.

Koloft's Settings, Extensions page: two switches, both on. Let agents drive this Browser, and Let agents use Koloft.
Settings ▸ Extensions: the two switches that decide what an agent may use

Your browser, for the agent

Browser tools for agents normally start a browser of their own. It is a second browser you cannot see, and it is signed into nothing. Koloft offers its web tabs instead. Every session on this Mac gets a secret CDP address (CDP is the Chrome DevTools Protocol, the way tools steer a browser). A browser tool that uses it steers that session's own web tabs. This works while Settings ▸ Extensions ▸ "Let agents drive this Browser" is on. How the address reaches the tool differs by tool.

playwright-cli, for every agent

playwright-cli (a command that controls a browser: open a page, click, type, read it) comes with Koloft. Every Claude Code, Codex, Muse or Antigravity session on this Mac can run it by name, with nothing to install. With "Let agents drive this Browser" on, it opens its pages as new web tabs of that session, marked as driven by the agent. With it off, it starts a hidden browser of its own. A session's web tabs take one tool at a time. If the Playwright MCP tools below (an MCP server is a box of tools an agent can call) are already driving them, the second tool is refused.

Claude Code

chromium.connectOverCDP(process.env.KOLOFT_BROWSER_CDP)

Codex

Koloft hands the address to the Playwright MCP server in your Codex settings. If your Codex settings have an @playwright/mcp entry, its browser tools open tabs in Koloft and not a browser of their own. Those tools and playwright-cli reach the web tabs. To let them, the session's sandbox (the box Codex runs commands in) gets the network and Playwright's cache folder, for that session only. A session started with Skip permission prompts on has no sandbox, so it needs none of this.

What to expect

case what happens
it connects It just drives. Koloft asks nothing; the switch is its one control. Codex, on its usual permissions, asks you once per thread whether to allow the tool. That question is Codex's own.
pages it opens Background web tabs with an unread dot, not in front like koloft open, since a tool driving a browser may open many pages at once. No pane opens by itself, and the tab it is driving is marked.
pages it can see That session's tabs only. Each session has its own address, reachable only from this Mac, behind a path no one can guess. A Claude Code session on a remote folder also reaches it from that machine, through Koloft's ssh link.
turning it off Settings ▸ Extensions ▸ "Let agents drive this Browser". Off cuts whatever is connected right now. A session you start after that goes back to its own browser. A session already running keeps the old address, and its tool fails until you restart that session.
the trade The agent drives the browser you are signed into. That is the point, and it is what the switch is for.

Claude Code on a remote folder

A Claude Code session on a remote folder can drive its web tabs too, through Koloft's own ssh link to that machine. There it works only through playwright-cli, not Playwright MCP tools. Koloft puts playwright-cli on the machine with npm (Node's package tool) the first time the session runs it (see what Koloft installs there), and it finds the address on its own each time it runs.

If you run tools another way (Claude Code)

Not there yet

Next page → Sessions on a timer