Wundur

Log ·

Cursor joins Claude Code, and Keleuo starts on Windows

Keleuo now runs a second agent. By the evening Cursor Agent sessions worked in both views, reopened with their history, and had every model on the account to choose from. The morning went into how Chat and Terminal run an agent, and into getting Keleuo going on Windows.

Cursor Agent sessions

Start a session with Cursor and it runs cursor-agent, Cursor's command-line agent. In Chat you get the same view as a Claude Code session: the reply as it streams, file reads, edits with their diffs, shell commands with their output, and the turn's token count when it ends. Cursor's subagents show as subagent cards and in the Agent panel, with their description and how long they took. Cursor only reports when a subagent starts and finishes, so the card can't show what it did in between.

Cursor doesn't stop to ask before it acts when it runs in the background, so a Cursor session in Chat offers Cursor's own modes rather than Allow and Deny buttons:

Terminal view runs Cursor's own interface on the same chat, where it asks before acting as it normally does. Chat follows along by reading Cursor's record of the chat each time a turn ends. Stop sends Ctrl+C, Cursor's own stop key.

Reopening a Cursor session brings its history back. Cursor keeps each chat in an SQLite database that isn't documented, so Keleuo reads it with a reader for each version of the layout it knows, and falls back to a note if none of them can read it. The database is opened read only, so Cursor's files are never locked. One chat on the test machine was 428 MB, mostly file snapshots, so Keleuo reads only the records it needs.

Images work in both views. In Chat they go with the message. In Terminal, pasting an image or attaching one from the message box types its path, which Cursor turns into [Image #1] the way Claude Code does.

Pick a model, then how hard it thinks

Cursor's model list is long. Its 259 model ids turn out to be 41 models, each in some of seven effort levels, some with a thinking or a fast version. The menu showed every one of those as a model of its own. Now the model menu is a list box you can type into, filtered by name or id and grouped by family (Claude, GPT, Gemini, Grok, Composer and so on). An effort control beside it picks the level, with Thinking and Fast as toggles where the model has them. Keleuo always resolves your choice to a real id from Cursor's list, picking the nearest effort when the exact one doesn't exist.

Claude Code sessions get the same effort control. It sets Claude Code's --effort (low, medium, high, xhigh or max), in Chat and in Terminal. Changing it restarts the agent, straight away if it's idle or after the current turn.

Claude Code can't list its own models, so its list is one Keleuo keeps by hand: the aliases, then the Claude 5 and Claude 4 model ids.

Chat and Terminal each run the agent their own way

Until now a session ran one copy of Claude Code and both views showed it. Now each view runs it the way that suits it: Chat runs it headless and reads its output, and Terminal runs Claude Code's own interface. Switching views ends one and picks the conversation up in the other. Nothing goes to the model until your next message.

You can't switch in the middle of a turn, while a permission prompt is open, or while a background subagent runs, because the switch would cut that work off. The other tab dims and shows a spinner, and hovering it tells you why.

Switching back is instant if nothing has happened since. The view you left keeps its agent idle for up to ten minutes, with its prompt cache warm, and only one of the two is ever allowed to write to the conversation. While the terminal interface starts up, a skeleton of its screen holds its place and fades once it has drawn.

There is a cost the commit measured: the terminal interface starts each request with about 6,000 more tokens of setup than headless mode, so the first message after switching writes those to the prompt cache instead of reading them. The old arrangement, one terminal interface for the whole session, is still there under Settings > Chat > Hybrid Chat and Terminal, marked experimental.

Terminal view over SSH

A session on another machine now runs the agent's own interface there, the same as a local one. Terminal view shows it, Chat follows it, and permission prompts show in both, so Allow and Deny in Keleuo's window reach the agent on the other machine. Nothing has to be installed there. What Keleuo puts on the remote is removed when the session ends, even if the connection drops.

Keleuo on Windows

Keleuo builds and runs on Windows. On a Windows 11 PC, Claude Code sessions work in Chat and in Terminal, and shell terminals run PowerShell. Programs that Keleuo starts no longer flash up console windows, and the title bar can be dragged without clicks on its buttons moving the window.

The title bar has a new menu button on every system, which opens the whole menu. On macOS the menu bar stays too. System, Light and Dark moved out of the title bar into the View menu.

Two things are still Unix only: starting Keleuo a second time opens a new window on Windows instead of handing over to the open one, and the output of Claude Code's background commands isn't found there yet.

Claude's questions show as questions

When Claude Code asks you something with its question tool, Chat used to show it as a permission prompt, "Allow AskUserQuestion?". Now it shows a card with each question and its choices as buttons, with descriptions on hover. A single question with one answer goes as soon as you click. Several questions, or a "choose any", wait for Submit. Skip declines. Afterwards the card reads "Answered: …".

Smaller things

All entries