Contents

Coding Agents

The agent panel runs a coding agent you already have inside the project, and holds the conversation with it. Zasper speaks the Agent Client Protocol (ACP) to the agent, so the agent does its own thinking and Zasper shows the conversation and does what the agent asks of the editor.

The agent is yours, signed in with your own account and subscription. The conversation stays between the agent and the Zasper on your machine, which sends none of it anywhere.

What You Need

Agent Install Then
Claude Code npm install -g @agentclientprotocol/claude-agent-acp Sign in once by running claude in a terminal
Gemini CLI npm install -g @google/gemini-cli Sign in once by running gemini in a terminal
Codex npm install -g @zed-industries/codex-acp Sign in once by running codex in a terminal

Claude Code is started as claude-agent-acp when that is on your PATH. Without it, but with npx and claude both installed, Zasper starts the adapter through npx. That first start downloads the adapter and can take a minute or two; later starts take seconds. Gemini CLI is started as gemini --experimental-acp and Codex as codex-acp.

Claude Code is the agent tested most so far. Any other agent that speaks ACP can be started by its command line.

The project folder must be trusted, because an agent acts in it: it edits files and runs commands. See Trusted Folders.

Opening the Panel

The bot button in the top bar opens the agent panel on the right of the editor. With no chat open it lists the agents Zasper knows:

While an agent starts, the panel shows how long it has taken. Cancel gives up and stops the agent’s process.

A Chat

Type in the field at the bottom and press Enter to send; Shift+Enter starts a new line. While the agent works the send button becomes Stop, which cancels the turn.

The conversation streams in as the agent works: its messages, its thinking folded under Thinking, its plan, and a row for each tool call. A row opens to what the call did: the output of a command and how it exited, or the change it made to a file. Pressing the row’s file opens it.

The chat is kept on the server, not in the tab. A reload or a second tab shows the same conversation, and a turn carries on with no tab open. New chat in the panel’s title stops this chat’s agent and goes back to the list of agents.

What the Agent May Do Without Asking

An agent asks before it edits a file or runs a command. The question appears in the chat with the agent’s options as buttons, and the agent waits for your answer. The menu above the chat sets which questions are answered for you:

Mode Answered without asking
Ask every time Nothing
Allow edits Edits, moves and deletes of files
Allow edits and commands Those, and commands

A question the mode answered says Allowed by this chat’s mode. The mode belongs to the chat, and every tab showing the chat sees it change.

Mentioning a File, a Cell or an Output

@ in the message field finds a file by name, or by its folder: @data/ lists what is in data. Files that .gitignore leaves out are listed too, dimmed and after the rest, since a dataset often is one of them. The agent is sent a link to the file and reads it itself.

In a notebook, a cell’s menu has Add Cell to Chat and Add Output to Chat; both are also in the command palette. The cell’s source, or its output as text, goes with the next message as it is on screen, unsaved edits included.

What a message mentions shows as chips above the field, and in the message once sent.

Notebooks

Every agent is given Zasper’s own MCP server, through zasper mcp, with no setup. With it the agent can read a notebook’s cells and outputs, change cells, run them in the notebook’s live kernel, and look at the kernel’s variables and dataframes. The tools are listed in Zasper’s MCP Server, which also covers using them from an agent you run outside Zasper.

A notebook open in Zasper shows the agent’s work as it happens. A cell the agent is running names the agent beside its running time, and a cell it ran carries a bot mark in its gutter. A file the agent writes reaches open tabs as a save does, and the tab says the agent wrote it.

When the agent reads a file you have open with unsaved edits, it is given the tab’s text, so it sees what you see rather than what is on disk.

Reviewing and Undoing a Turn

When a turn ends, the files it changed are listed under it, each marked A, M or D for added, modified or deleted. Pressing a file opens a diff of it, Before the turn against Now: the file as it is on disk, so it holds anything changed since the turn too, and the tab says so when it does.

You can put back as much or as little as you want:

A file put back is struck through in the list and still opens, to show what the turn had done to it. If a file has changed since the turn, Zasper names it first and asks; Undo anyway loses the later change, Keep them leaves everything as it is.

The changes are found by snapshotting the project at the start and end of each turn, so every change counts, however it was made: the agent’s own edits, a command it ran, a notebook tool, and any edit you made in the meantime. This needs git installed. The snapshots are kept in a repository of Zasper’s own under ~/.zasper/checkpoints/; your project’s repository is never touched. Files that .gitignore leaves out, folders such as node_modules and .venv, and files over 20 MB are not snapshotted.

A chat’s snapshots are kept while it runs and let go when it ends. A project not snapshotted for 30 days has its snapshots removed. Deleting ~/.zasper/checkpoints/ by hand is safe; it loses only the review and undo of turns already taken.

Past Conversations

The clock button in the panel’s title lists the agent’s past conversations in this project, newest first, and picking one goes on in it. For Claude Code this includes conversations held with claude in a terminal in the project. The button appears only for an agent that can list and reopen its conversations.

The agent replays the conversation into the panel. What Zasper added and the agent did not keep, such as its questions and your answers or a command’s live output, does not come back. Zasper keeps no history of its own.

When Something Looks Wrong