
# Agents

Devkeepr treats a coding agent as a terminal that belongs to a project. It sits under that project in the Process Window, keeps its session across reboots, and can be handed a failing test run without you copying a single line of output. All of this works without Pro. The [MCP server](/docs/general/features/mcp-server) adds the other direction: agents starting things through Devkeepr themselves.

Devkeepr works with Claude Code, Codex, Cursor Agent, Gemini, Copilot CLI, Amp, OpenCode and Aider.

## Starting An Agent

Pick **New Agent** from a project's menu and choose which one. The menu is everywhere the project is: its heading in the Process Window, the command palette, the menu bar and the `dk` [CLI](/docs/general/features/cli-tool). The agent opens in a terminal in the project's directory.

You can also start an agent by hand in any terminal. Devkeepr notices, and the row moves up to the **Agents** section while it runs. When you exit back to the shell, it drops back to **Terminals**.

![Spawning a new agent from the per-row context menu](/screenshots/docs/spawn-shortcuts.webp)

## Picking A Session Back Up

When an agent exits, Devkeepr keeps the session it was in. Press play on the stopped row, or pick **Resume** from its menu, and the conversation continues where it left off, context intact. **Restart** starts a fresh one instead.

If you quit an agent but leave its terminal open, the row offers **Resume last** to get back into that session without opening a new terminal.

Stopping an agent from Devkeepr gives it a moment to exit cleanly and print its resume details, so the session is there for next time. Aider has no resume, so play starts it fresh from the original command.

## Fix A Failure In Place

When a process or CI run fails, its menu offers two ways to hand the problem to an agent. Either way the agent arrives already briefed: what ran, how it exited, the end of the output, and your latest commit and file changes. For a CI failure it can pull the full run logs as well.

- **Fix with** opens a fresh agent aimed at the problem, no blank prompt to fill in.
- **Fix in session** hands it to an agent you already have running in that project, including one in a workspace. It keeps the context it had, and you land on that agent to watch it work.

## What Each Agent Supports

What each agent can do comes down to the agent itself.

| Agent | Resume session | Fix with | Fix in session | MCP server |
|-------|:-:|:-:|:-:|:-:|
| Amp | ✓ | — | ✓ | ✓ |
| Claude Code | ✓ | ✓ | ✓ | ✓ |
| Codex | ✓ | ✓ | ✓ | ✓ |
| Copilot CLI | — | — | ✓ | ✓ |
| Cursor Agent | ✓ | ✓ | ✓ | ✓ |
| Gemini | ✓ | ✓ | ✓ | ✓ |
| OpenCode | ✓ | — | ✓ | ✓ |
| Aider | — | — | ✓ | — |

**Fix with** needs an agent that can start straight into a prompt, which leaves Amp, Copilot and OpenCode out. **Fix in session** only needs the agent running, so every one of them takes it. Aider doesn't support MCP.

## Where Agent Runs Show Up

With the [MCP server](/docs/general/features/mcp-server) connected, your agents start tests, builds and dev servers through Devkeepr instead of in shells you never see. Where those runs appear depends on where the agent is working:

- **In a workspace with an Activity panel**, every run opens there as a new tab, and the newest one is the tab on screen. This is the setup for working alongside an agent and watching what it does. See [Activity Panels](/docs/general/features/workspaces#activity-panels).
- **Anywhere else**, runs don't appear in the sidebar while they run or after they pass. A failed run always shows up under its project, so what needs you still reaches you.

A run an agent started carries a small sparkles glyph. Hover it to see which agent started it and the note it left about why. **Go to Claude session** in the row's menu, named for whichever agent it was, jumps to the conversation that started it.

Agents can start the same job twice on purpose, for example a second test run while the first is still going. The extra run doesn't get its own row. It shows under **Parallel Runs** in the first one's menu.

When you're done, **Dismiss Agent-Started** in a project's menu clears the finished rows your agents left behind. Your own rows, and anything still running, stay put.
