Crosswalk app icon
Crosswalk
Terminal sessions for coding agents

A terminal manager for all your running AI agents.

Give each session a note of what you set it working on, so a row of eight terminals still tells you something an hour later. Group them by topic or watch them all at once, start one with the folder and environment it needs, copy an agent's answer out without the terminal's line breaks, and paste the instructions you keep retyping. Every session keeps running whether or not it is on screen, and through quitting and updating Crosswalk itself.

Version 0.14.0 · $14.99, paid once

The Crosswalk window: groups, layouts and snippets in the sidebar, four session tabs across the top each with a status dot, and a Claude Code session filling the terminal below them, with a button in the corner reporting three new lines.
The line under the tabs is the session's group and its note, here Build out the next level of capabilities, which is what the session was set working on. Each tab carries a status dot, amber for finished and waiting on you, and a dot beside a group in the sidebar says something in it is waiting. The paths the agent printed are links, and the button in the corner says how far the output has moved on since you scrolled away from the bottom.
01

What it does

Sessions outlive the app

Terminals run in a small separate process, so quitting Crosswalk, installing an update, or the app being killed leaves every agent working. Reopening reattaches each session with its whole scrollback, including what it printed while the app was gone. Quitting still asks first, and Stop everything still stops everything.

Sessions run whether or not they are on screen

Each session owns its own process and keeps producing output while a different one is displayed. Every tab reports whether its session is working, has finished, or is waiting for input.

Switching does not touch the terminal

Moving between sessions does not rebuild, reconnect, or replay a terminal. Scrollback, scroll position, and a partially typed command line are all unchanged when you come back.

A note on each session, so you know what it is for

Eight terminals an hour later all look alike, and a tab can only hold a name. Each session takes a note in its own words, written when you start it or any time after, and it is shown on the session's header and on its pane in a layout. You can see what you set an agent working on without reading back through its scrollback.

Panes, for reading several at once

Layouts split the window into panes and load a session, or a whole group with its own tabs, into each. Six arrangements are built in, plus a custom grid of up to four columns by four rows. Dragging a tab onto a pane loads that session into it, and dragging a pane by its header swaps it with another.

Notifications when a session finishes

A desktop notification when a session returns to its prompt, including the one currently on screen, with a configurable sound. A program can also request one directly by printing an escape sequence.

Groups, tabs, and snippets

Sessions are tabs, grouped in the sidebar, and a new session inherits its group's working directory. Tabs reorder by dragging. The instructions you retype at an agent are stored as snippets and pasted into whichever session is in front of you.

02

Works with Claude Code

Crosswalk runs any terminal program, Codex and the rest included. Claude Code is the one it is most often used with, so here is what is already wired up for it, each item described in full below.

Finished A notification from the stop hook

A stop hook has no terminal to print to, so every session is started with the address and token it needs. Settings, Notifications has the one line of curl to put in the hook, and the banner names the session and opens it when clicked.

Files The paths it prints are links

When Claude Code says it wrote a file, Cmd+click the path to open it, or right-click to copy it or show it in Finder. Only paths that exist are treated as links.

Commands Copy Clean for what it tells you to run

A command it shows you, wrapped at the window edge and prefixed with ! or $, copies as one line with no prefix, ready to paste. Its prose copies without the terminal's line breaks.

Redraws No duplicated transcript

Claude Code redraws its whole conversation whenever the terminal changes size. Crosswalk gives every terminal its real size from the start, including the ones off screen, so starting a session, switching between them and reopening the window do not leave extra copies in the scrollback.

MCP One agent running the others

Run claude mcp add crosswalk -- <path>, with the path Settings shows, and a Claude Code can start other sessions, type into them, read their screens and wait for them to finish, and use your browser sessions too. Experimental, and off until you turn it on.

03

Feature detail

The rest of the app, by area, with a picture of each part that is easier to look at than to describe. Shortcuts below are the macOS defaults; the Windows and Linux equivalents are listed with them, and all of them can be rebound.

Sessions Tabs, groups, and status

Cmd+T opens a session, Ctrl+T on Windows and Linux. The New session dialog takes a working directory and a list of KEY=value environment variables for that session alone, each layered over the group's and the group's over your global settings, so the usual case is already filled in and the exception is one field. Each tab carries a status dot and an optional note, set when the session starts or afterwards. Tabs reorder by dragging, and Cmd with an arrow key steps through both sessions and groups from inside a terminal. A group's context menu starts a new session in it from anywhere, and double-clicking a tab, a group or a layout opens its settings.

Layouts Six arrangements plus a custom grid

Custom takes a column and row count, up to four of each, so three sessions across or a 4x3 grid are both available without a preset. A pane holds one session or a whole group, shown with the group's tabs and a + on a single line, and a session started in that group lands in that pane. A tab can be dragged onto a pane and a pane dragged by its header; dropped on a full pane, the two swap rather than one leaving the layout. A pane's context menu replaces or unloads it, and can start a new session directly into it. Cmd+Left and Cmd+Right walk every terminal on screen in reading order, the tabs inside a group pane included. A session displayed in a pane carries that pane's index on its tab, and the tab bar above a layout can be turned off to give its row back to the panes.

A four-pane layout: four terminals in a two by two grid, each headed with its session name, its group, and a note saying what it was set working on, with the tabs above numbered one to four to say which pane holds which.
Every pane header carries its session's note, so four agents are four sentences about what each was asked to do rather than four terminals of output to read back through. The number on a tab is the pane that session is in, counted left to right and top to bottom. Dragging a tab onto a pane moves it there, and nothing is stopped by being taken out of one.
A two-pane layout: the left pane holds the agents group, its tabs and a plus button on one line with the note of the tab showing, and the right pane holds a single session from the builds group.
The left pane holds a whole group rather than one session: its tabs, a + to start another in it, and the note of whichever tab is showing, all on one line, so it costs no more height than a single session's header. The right pane is one session from another group. The numbers on the tabs across the top say which pane each one is in.

Terminal Real PTYs and Windows consoles

On macOS each session is a PTY started from the same startup files your shell reads, so PATH and installed tools resolve as they do in any terminal. On Windows they are real consoles, so PowerShell, WSL and Git Bash behave normally, and closing a session terminates the whole process tree rather than the shell alone. Cmd+F searches the scrollback. Scrolling up in an active session holds position, with an indicator showing how many new lines have arrived.

Links Clickable paths and URLs

Cmd+click, or Ctrl+click elsewhere, opens a URL in the browser, a file in its default application, and a directory in Finder or Explorer. An executable is revealed in its directory rather than run. A file path printed as plain text, the way Claude Code names a file it wrote, is a link too, but only when something exists at that path. The context menu on a link offers Copy Link and Reveal in Finder. Crosswalk advertises link support to programs in the session, which is what makes most tools emit links at all; it can be disabled in Settings, Terminal.

Copying Copy and Copy Clean

Copy returns the selection exactly as rendered, including the hard line breaks the terminal inserted at the window width and any leading indentation. Copy Clean rejoins those lines and strips the indentation, which is what you want when moving an agent's prose into an editor or an issue. A command an agent shows you, wrapped at the window edge and prefixed with $ or !, comes out as one line without the prefix, ready to paste into a shell. A setting maps Copy Clean onto the copy shortcut instead.

Snippets Stored instructions, pasted into a session

A sidebar section holding reusable text, each entry with a title, a description, and the instructions themselves. Clicking one pastes it into the focused terminal and leaves the cursor there; it is pasted rather than submitted, so it can be edited before it runs. A selection in a terminal can be saved as a snippet from the context menu, and an existing snippet's three fields can be pasted or copied individually.

A snippet's text pasted at the prompt of a terminal, still selected and not yet submitted, with the list of saved snippets in the sidebar beside it.
A snippet clicked in the sidebar, pasted at the prompt of the session in front of you. It is pasted and not sent: the cursor stays in the terminal, so the standing instruction can be edited, added to, or abandoned before anything runs. The three in the sidebar are the kind this is for, the paragraph you retype at an agent twice a week.

Notifications Escape sequence, HTTP endpoint, or idle detection

A program in a session requests a notification by printing an escape sequence. For hooks that run without a terminal, such as a Claude Code stop hook, every session is started with the address and token needed to call Crosswalk's notify endpoint directly; Settings, Notifications has the curl command, and a session left running through an update still finds the new address. Each request can name its own sound. Crosswalk can also raise one itself when a session goes idle, with a configurable threshold, defaulting to six seconds. Clicking a notification focuses the session that sent it.

The Notifications tab of Settings, showing the curl command a hook uses and the three environment variables every session is started with.
The awkward case, handled: a Claude Code stop hook runs with no controlling terminal, so the escape sequence a program would normally print reaches nothing. Every session is started with CROSSWALK_URL, CROSSWALK_SESSION and CROSSWALK_TOKEN already set, so a hook that inherits them can ask in one line of curl, and Settings has the command to copy. The banner names the session it came from, and clicking it opens that terminal.

Agent control One agent driving the others, experimental

An agent in one session can start new sessions, type into them and press Enter, press keys by name (Escape, Backspace, the arrows, Tab, Ctrl with a letter), read their screens, wait until they go quiet, rename them and close them. It is reached through a small MCP server shipped with the app, so a Claude Code that adds it can start other Claude Codes and send one /compact when it is a good time. An agent may start up to 25 live sessions. Off by default under Settings, Experimental, because typing into a session can run commands as you; Settings shows the command that adds the server.

Browser A Chromium session beside the agents, experimental

A session can be a browser instead of a terminal, in a tab or a layout pane like any other. It has an address bar that searches with the engine you choose, find in page, downloads, right-click menus, and remembered site permissions. Logins are shared per group by default, so one piece of work is signed into the same things. Ad and tracker blocking and known-dangerous-site blocking are built in and off by default. The same MCP server lets an agent read the pages you have open and, if you allow it, click, type and navigate, by default only on the sites you list, with every action shown in the toolbar. Off until enabled under Settings, Experimental.

A two-pane layout: an agent's terminal on the left reporting what it read and clicked, and a browser session on the right showing the order page it was checking.
An agent on the left checking the page in the browser session on the right: it read the page, clicked Refund, read the confirmation, and stopped without confirming. Both sessions are in the same group, so the browser is signed into what that piece of work needs and nothing else.

Keyboard Rebindable shortcuts

Settings, Hotkeys lists every binding; click one and press the replacement. It applies immediately, in the menus as well as the terminal, and persists across restarts. A conflict reports which action already holds the combination, and a combination the shell uses reports what the shell will stop receiving. Defaults follow platform convention, so plain Ctrl is left to the terminal on Windows and Ctrl+C still sends SIGINT.

The Hotkeys tab of Settings, listing every action in the app beside the key combination currently bound to it.
Every binding in one list, and every one of them yours to change: click a combination and press the one you would rather use. It takes effect at once, in the menus as well as in the terminal, and survives a restart. If the combination is already taken it says which action has it, and if your shell wants it, it says what the shell will stop seeing.

Themes Twelve built in

Midnight, Graphite, Paper, Tokyo Night, Mocha, Latte, Nord, Dracula, Gruvbox, Solarized, One Dark and Synthwave, selected from swatches rather than a list of names. Selection highlighting is drawn so that low-contrast foreground colours, including the dim grey many agents use, stay readable in every theme.

The theme picker in Settings: twelve tiles, each painted in the colours of the theme it selects.
Twelve themes, each tile painted in its own colours rather than named in a list, because the name of a colour scheme tells you nothing about whether you want to read code in it. Selection highlighting is drawn to stay legible in all of them, including over the dim grey a lot of agents write in, which is the case that used to make selected text disappear.
04

Requirements

Version 0.14.0. macOS 13 or later, universal binary for Apple silicon and Intel, 271 MB, signed and notarized.

Windows 10 version 1809 or later, 64-bit, 132 MB, signed. It is the same application as on macOS. The signing certificate is new enough that SmartScreen has little reputation for it yet, so Windows may warn before running the installer: choose More info, then Run anyway.

05

Trial and licence

Crosswalk is free for fourteen days, with no features withheld and no account to create. When the trial expires, sessions that are already running continue and stay fully usable; starting a new one requires a licence key. Nothing running is terminated by the expiry.

A licence is $14.99, a one-time purchase rather than a subscription. It is validated locally, so there is nothing to sign in to, no licence server to depend on, and it works with no network connection.

The key is emailed within a minute of payment. If it does not arrive, check spam, then contact support.

06

Updates

Crosswalk checks for a new version in the background and downloads it, then waits. It never restarts on its own. Choose Restart and update from the Crosswalk menu when it suits you, or let it install the next time you quit. Your sessions are not part of the restart: the agents keep working while the app closes and reopens on the new version, which takes about six seconds, and what they printed in that gap is in the scrollback when the window comes back.

07

Support

Email support at wareshq dot com. Include your macOS or Windows version, the Crosswalk version from the About panel, and what you were doing when the problem occurred.

Privacy: Crosswalk has no account and collects nothing about you or what you run. The only request it makes to us is the update check. Read the privacy policy.

Crosswalk is from WaresHQ, which builds practical apps that solve modern problems. See the others.