Changelog

All the latest updates, improvements, and fixes to Devkeepr.

v2.1.x

v2.1.0

New

  • MCP server (Pro). Your coding agents connect to Devkeepr and work with everything it knows about a project: processes, output, logs, stack actions, services, CI runs, deployments. What an agent starts lands in the Process Window under the right project, outlives the conversation, and stays visible to you and to every other agent. Install per agent from Settings. Hibernating, waking and registering a project still need your say-so
  • Workspaces in the Process Window. Put up to four processes side by side in one pane, from one project or from several, and keep as many workspaces as you need. Drag a row in from the sidebar to add it, drag a tile by its header to rearrange, drop it outside the pane to take it out, and drag the gutters to resize. Cmd+1 to Cmd+4 jump between tiles, holding Cmd shows which number is which, and Cmd+Shift+Enter fills the whole window with the tile you are on, sidebar and all. Each workspace folds like a project, keeps its own sidebar section, and takes the name you give it
  • Tabs. Cmd+T opens a terminal beside the tab you are on, in a workspace tile or stacked behind the process you are viewing, so one slot holds as many as you need. Cmd+Alt+Left and Right walk the strip, Cmd+W closes a tab, and dragging a pill reorders them. A lone tab keeps the plain header it always had
  • Activity panels (Pro). Give a workspace a panel that follows its work: everything an agent starts from there, test runs, dev servers, CI runs, lands in it as a tab with the newest in front, instead of scattering rows down the sidebar. Notifications stay quiet while the panel is in view. Click a tab to look at it as long as you like, and the panel follows again when the next run starts
  • Previous runs. A row keeps its place when you restart it, so the name you gave it, its notification level and its tile all stay where you put them. The runs behind it stay reachable from the row menu, and open on the output they left behind
  • Collapsible projects in the Process Window. Click a project heading to fold its rows away and it stays folded, restarts included. Anything unsettled inside still shows a dot, and a process starting there opens the fold back up
  • Find bar in terminals. Cmd+F searches the buffer, and readline keeps its control keys
  • Dismiss Agent-Started. A project sweep for the finished rows an agent left behind. Your own rows stay put

Improved

  • Terminals carry separate light and dark ANSI palettes, so their colours suit the appearance you work in. An agent already running keeps the colours it started with: Devkeepr signals the ones that ask to be told, and few act on it yet
  • Settings reorganised. Everyday preferences sit above the integration panels, and the agent section is quieter, closer to stock macOS
  • The MCP install prompt, and the notice that an agent registered or hibernated a project, now travel the same path as every other signal: a toast while the Process Window is focused, a desktop notification when it is not, and a click that opens the screen it refers to
  • A row running one of the project's own scripts reads as the command itself
  • A row menu says what its restart will actually do, offering to resume an agent's session where there is one to resume
  • Updated dependencies, including Laravel 13

Fixed

  • Agent sessions no longer pile up near-duplicate rows, one per attempt under an invented name, and an unnamed run stops colliding with every other script sharing its binary, where the second silently replaced the first
  • The terminal viewer losing parts of an agent's UI after switching processes or reconnecting, like Claude Code's input borders and mode indicator. The viewer asks the app for a fresh frame whenever it reattaches now
  • Spinner glyphs leaking into agent row titles
  • Segmented settings inputs losing their selection when the page updated around them
  • The appearance you choose being forgotten on restart
  • A near-black line flashing between sidebar rows
  • Tooltips that matched the pane behind them, which made them hard to read over the sidebar
  • Gateway request logging ballooning the log file

v2.0.x

v2.0.1

New

  • Dart stack detection. Dart projects get their own stack entry and logo, with Flutter detection tightened up alongside it

Improved

  • Forge connector moved to Forge's current API. Devkeepr now discovers your organization and makes organization-scoped server, site and deployment calls, replacing the retired v1 routes
  • Git sync notifications are throttled. Dirty-tree and merge-conflict warnings fire at most once per six hours per project and branch instead of on every 15-minute pass. A healthy sync resets the throttle, so a new failure notifies right away
  • Updated dependencies

Fixed

  • Long running poller processes no longer use cached service credentials
  • Scrollback replay no longer types into your session. xterm auto-answered device queries embedded in the replayed scrollback, which agent TUIs read as fresh input (occasionally landing as /clear in Claude sessions)
v2.0.0

New

  • Process manager. View every script, agent and terminal you run, grouped by project, in a dedicated window
  • Interactive terminal shells. Open a full PTY shell from any project, with ANSI support
  • Resumable agents. Captures the session id from any installed agent (Claude, Codex, Cursor, Gemini, Amp, opencode) so you can pick up where you left off
  • New Agent action. Launch any installed agent (Claude, Codex, Cursor, Gemini, Amp, Aider, opencode) from a project's quick action menu
  • Play/stop controls. One-click rerun or stop on any process row
  • Search in the processes window. Filter by project, process, agent or CI provider
  • GitLab pipeline monitor. View pipeline runs per project, alongside the existing GitHub Actions monitor
  • Trigger CI runs. Run a GitLab pipeline or dispatch a GitHub workflow from a project's quick action menu
  • "Open Project" action. Jump to a project from any process or workflow run entry
  • "Resume last agent" on terminal rows. If you ran an agent in a blank shell, the row gets a one-click resume for that session (Aider excepted, it has no resume)
  • Process notifications. When a process wants your attention (an agent's bell or notification, or a finished run), Devkeepr shows a desktop notification, or an in-app toast if its window is focused. Click it to open that process; the one you're already viewing stays quiet
  • Per-process notification levels. Set any process to All, Important, or None from its context menu. The default is configurable in Settings
  • "Fix with" agent. A failed process or CI run can launch an installed agent primed with the failure (command, exit code, recent output, last commit and file change). For CI it points the agent at gh or glab to pull the logs
  • "Fix in session". Hand a failure to an agent you already have running. Devkeepr pastes the fix prompt into its session so it can pick it up with the context it already has
  • Git quick actions. Run pull, status, log, and fetch & prune from a Git project's quick action menu
  • More project and process actions. The project menu adds Stop All, Copy Path, Open devkeepr.yml, and Rescan Project. Process rows add pin/unpin project, Dismiss Stopped, and Exit & Dismiss All
  • CI run notifications. A finished GitHub or GitLab run raises a clickable notification that opens the processes window
  • "Prevent Sleep" menu bar toggle. Keep your Mac awake during long-running work

Improved

  • OAuth tokens auto-refresh in the background, so service connections stay alive without re-authenticating
  • Workflow and pipeline status badges are clearer and more accurate
  • Pipeline/workflow polling is more reliable when records are created optimistically
  • Project stacks (including GitHub/GitLab) now re-detect automatically after connecting a service
  • Terminals follow the OS color scheme, switching as you change between light and dark
  • Terminals reflow when the app window is resized
  • Process status dots distinguish successful exit, user-cancelled, and failure
  • Orphaned processes are cleaned up when the app quits
  • "Bookmarked" projects renamed to "pinned"
  • Terminals follow live foreground state. Running an agent inside a shell promotes the row to the Agents section; exiting back to the shell demotes it
  • Smarter stop button. Stopping an agent now sends Ctrl+C (twice) so it can print its resume hint and clean up, with SIGTERM as a fallback after 5 seconds
  • ~10× faster process-tree inspection. The per-shell agent-detection probe was scoped to the shell's slave PTY (~55ms → ~5ms per tick)
  • Menu bar's pinned-project submenu mirrors the in-app action button. Adds "New Terminal", a "New Agent" submenu, and a "Rescan project" item
  • Animated process list. Rows animate in and out as processes start, finish, and move between sections
  • Clearer process exit summary

Fixed

  • Process exit no longer freezes the UI when killed via a signal
  • Reliable session capture on quit. Quitting with multiple agents running now captures every agent's resume id, not just the first to respond. Stale rows from the previous session are cleaned up on relaunch
  • GitHub/GitLab pollers no longer rapid-cycle when the network goes offline
  • Transient issue when herd --list fails
  • Shift+Enter in the process-window terminal no longer submits. It now inserts a newline, matching Claude CLI's (and other agents') convention
  • Cmd+arrow in the process-window terminal jumps to the start or end of the line
  • Scripts no longer run under PHP's default 128M memory limit. The PTY inherits your system php.ini, so scripts get the same memory_limit and extensions as your terminal
  • Various minor fixes