Free and open source, for Linux and macOS.

A terminal multiplexer, batteries included.

Projects, worktrees, coding agents, issues, live diffs and remote access, ready the moment you install it. Nothing to configure.

curl -fsSL https://usecornercase.dev/install.sh | sh
cornercase · ~/code/web-shop
search projects, workspa…TODO5clear done×✻Welcome to Claude Code!Projects○Review the gift cards branch before/help for help, /status for your statusFriday▾workcwd: ~/.cornercase/worktrees/web-shop/feat-dark-mode○Answer Codex about src/orders.tsweb-shop(3)○Rotate the test keys in paymentsorders-api(2)!○Draft the post on parallel agentsmobile-app(1)>Where does the checkout pick its colours?○Look at the flaky returns test (#468)payments(2)Triage this week’s returns bugsRead(src/checkout.rs)Move the dotfiles to nvim▾◆personalRead 5 linesConnect Linear for the teamblog(1)dotfiles(1)Read(src/theme.rs)+ New TODOplayground(1)Read 14 lines+ NewNothing readsThemeyet.src/theme.rs:7definesbackground()with both colours, butsrc/checkout.rsbuilds the page without it: the templates hardcode#ffffffthree times.WorkspacesTo use it everywhere I would:▾feat/dark-mode◐claude- callTheme::background()from the checkoutOpus 5.5·9%- keep the brand purple on both themes+ Tab- add a test for the dark background▾feat/gift-cards✻Churned for 31s·done 9:39 AM◐claudeOpus 5.5·6%>Use Theme everywhere. Keep the brand purple.+ TabUpdate(src/checkout.rs)▾fix/empty-addressUpdated src/checkout.rs with 3 additions and 3 removals◐claudeOpus 5.5·6%Update(src/theme.rs)+ TabUpdated src/theme.rs with 4 additions+ NewBash(cargo test)Running…✳Churning…(esc to interrupt·20s)›IssuesChanges 2⏵⏵accept edits on (shift+tab to cycle)FilesTODOSettingsUsageQuit
search projects, workspa…TODO5clear done×✻Welcome to Claude Code!Projects○Review the gift cards branch before/help for help, /status for your statusFriday▾workcwd: ~/.cornercase/worktrees/web-shop/feat-dark-mode○Answer Codex about src/orders.tsweb-shop(3)○Rotate the test keys in paymentsorders-api(2)!○Draft the post on parallel agentsmobile-app(1)>Where does the checkout pick its colours?○Look at the flaky returns test (#468)payments(2)Triage this week’s returns bugsRead(src/checkout.rs)Move the dotfiles to nvim▾◆personalRead 5 linesConnect Linear for the teamblog(1)dotfiles(1)Read(src/theme.rs)+ New TODOplayground(1)Read 14 lines+ NewNothing readsThemeyet.src/theme.rs:7definesbackground()with both colours, butsrc/checkout.rsbuilds the page without it: the templates hardcode#ffffffthree times.WorkspacesTo use it everywhere I would:▾feat/dark-mode◐claude- callTheme::background()from the checkoutOpus 5.5·9%- keep the brand purple on both themes+ Tab- add a test for the dark background▾feat/gift-cards✻Churned for 31s·done 9:39 AM◐claudeOpus 5.5·6%>Use Theme everywhere. Keep the brand purple.+ TabUpdate(src/checkout.rs)▾fix/empty-addressUpdated src/checkout.rs with 3 additions and 3 removals◐claudeOpus 5.5·6%Update(src/theme.rs)+ TabUpdated src/theme.rs with 4 additions+ NewBash(cargo test)Running…✳Churning…(esc to interrupt·20s)›IssuesChanges 2⏵⏵accept edits on (shift+tab to cycle)FilesTODOSettingsUsageQuit
search projects, workspa…TODO5clear done×✻Welcome to Claude Code!Projects○Review the gift cards branch before/help for help, /status for your statusFriday▾workcwd: ~/.cornercase/worktrees/web-shop/feat-dark-mode○Answer Codex about src/orders.tsweb-shop(3)○Rotate the test keys in paymentsorders-api(2)!○Draft the post on parallel agentsmobile-app(1)>Where does the checkout pick its colours?○Look at the flaky returns test (#468)payments(2)Triage this week’s returns bugsRead(src/checkout.rs)Move the dotfiles to nvim▾◆personalRead 5 linesConnect Linear for the teamblog(1)dotfiles(1)Read(src/theme.rs)+ New TODOplayground(1)Read 14 lines+ NewNothing readsThemeyet.src/theme.rs:7definesbackground()with both colours, butsrc/checkout.rsbuilds the pagewithout it: the templates hardcode#ffffffthree times.WorkspacesTo use it everywhere I would:▾feat/dark-mode◐claude- callTheme::background()from the checkoutOpus 5.5·9%- keep the brand purple on both themes+ Tab- add a test for the dark background▾feat/gift-cards✻Churned for 31s·done 9:39 AM◐claudeOpus 5.5·6%>Use Theme everywhere. Keep the brand purple.+ TabUpdate(src/checkout.rs)▾fix/empty-addressUpdated src/checkout.rs with 3 additions and 3 removals◐claudeOpus 5.5·6%Update(src/theme.rs)+ TabUpdated src/theme.rs with 4 additions+ NewBash(cargo test)Running…✳Churning…(esc to interrupt·20s)›IssuesChanges 2⏵⏵accept edits on (shift+tab to cycle)FilesTODOSettingsUsageQuit
search projects, workspa…TODO5clear done×✻Welcome to Claude Code!Projects○Review the gift cards branch before/help for help, /status for your statusFriday▾workcwd: ~/.cornercase/worktrees/web-shop/feat-dark-mode○Answer Codex about src/orders.tsweb-shop(3)○Rotate the test keys in paymentsorders-api(2)!○Draft the post on parallel agentsmobile-app(1)>Where does the checkout pick its colours?○Look at the flaky returns test (#468)payments(2)Triage this week’s returns bugsRead(src/checkout.rs)Move the dotfiles to nvim▾◆personalRead 5 linesConnect Linear for the teamblog(1)dotfiles(1)Read(src/theme.rs)+ New TODOplayground(1)Read 14 lines+ NewNothing readsThemeyet.src/theme.rs:7definesbackground()with both colours, butsrc/checkout.rsbuilds the page without it: thetemplates hardcode#ffffffthree times.WorkspacesTo use it everywhere I would:▾feat/dark-mode◐claude- callTheme::background()from the checkoutOpus 5.5·9%- keep the brand purple on both themes+ Tab- add a test for the dark background▾feat/gift-cards✻Churned for 31s·done 9:39 AM◐claudeOpus 5.5·6%>Use Theme everywhere. Keep the brand purple.+ TabUpdate(src/checkout.rs)▾fix/empty-addressUpdated src/checkout.rs with 3 additions and 3 removals◐claudeOpus 5.5·6%Update(src/theme.rs)+ TabUpdated src/theme.rs with 4 additions+ NewBash(cargo test)Running…✳Churning…(esc to interrupt·20s)›IssuesChanges 2⏵⏵accept edits on (shift+tab to cycle)FilesTODOSettingsUsageQuit
search projects, workspa…Read(src/theme.rs)ProjectsRead 14 lines▾workNothing readsThemeyet.src/theme.rs:7definesbackground()withweb-shop(3)both colours, butsrc/checkout.rsbuilds the page without it: theorders-api(2)!templates hardcode#ffffffthree times.mobile-app(1)payments(2)To use it everywhere I would:▾◆personal- callTheme::background()from the checkoutblog(1)- keep the brand purple on both themesdotfiles(1)- add a test for the dark backgroundplayground(1)✻Churned for 31s·done 9:39 AM+ New>Use Theme everywhere. Keep the brand purple.WorkspacesUpdate(src/checkout.rs)▾feat/dark-modeUpdated src/checkout.rs with 3 additions and 3 removals◐claudeOpus 5.5·9%Update(src/theme.rs)+ TabUpdated src/theme.rs with 4 additions↓4 moreBash(cargo test)+ NewRunning…IssuesChanges 2✳Churning…(esc to interrupt·20s)FilesTODOSettingsUsage›Quit⏵⏵accept edits on (shift+tab to cycle)
!web-shop›…±▤☐Nothing readsThemeyet.src/theme.rs:7definesbackground()with both colours, butsrc/checkout.rsbuilds the page without it:the templates hardcode#ffffffthree times.To use it everywhere I would:- callTheme::background()from the checkout- keep the brand purple on both themes- add a test for the dark background✻Churned for 31s·done 9:39 AM>Use Theme everywhere. Keep the brand purple.Update(src/checkout.rs)Updated src/checkout.rs with 3 additionsand 3 removalsUpdate(src/theme.rs)Updated src/theme.rs with 4 additionsBash(cargo test)Running…✳Churning…(esc to interrupt·20s)›⏵⏵accept edits on (shift+tab to cycle)

A real simulation, not a video: click around, type in a shell, start an agent.

Starting ten agents is easy. Keeping up with them isn't.

cornercase gives each one its own corner, shows all of them at a glance, puts the review next to the work, and keeps everything running after you close the window.

  1. From an issue to an agent at work, in one click.

    Pick an issue from GitHub, GitLab, Linear, Jira, Plane, Asana or Shortcut and press start. cornercase creates a worktree on a branch named after the issue, opens a tab in it and hands the issue to your agent as its first prompt. No branch to name, no folder to make, nothing to paste.

    Issues to agents →
    Issues·web-shop#482Returns page crashes on empty addressopen·bug·opened by @ana·updated 3d agohttps://github.com/acme/web-shop/issues/482startin its own worktree, on issue-482-returns-page-crashes-on-empty-addressagentclaude·planclaude --permission-mode plan (default)prompthttps://github.com/acme/web-shop/issues/482(typed, you press enter)When a customer starts a return without an address line, the returns page crasheswith a 500.Steps to reproduce1. Open a delivered order2. ClickStart a return3. Clear the address and submitExpectedA validation error:Enter the first line of your address.Logsrustthread 'tokio-runtime-worker' panicked at src/returns/address.rs:12:33:called`Option::unwrap()`on a`None`valueenter starts it·lines 1-26 of 29startschedulestart a flowagent…rawcopy urlback
  2. Ten agents, one glance.

    Each agent gets its own branch, folder and tab, so two of them never touch the same file. The sidebar tells you who is working ◐, who is waiting for you ! and who is done ✓, with the model and how full its context is. When one needs you, your terminal taps you on the shoulder. Even through SSH.

    Works with Claude Code, Codex, Gemini, Grok, Cursor, Copilot and 9 more →
    search projects, workspa…✻Welcome to Claude Code!Projects/help for help, /status for your status▾workcwd: ~/.cornercase/worktrees/web-shop/feat-dark-modeweb-shop(3)orders-api(2)!mobile-app(1)>Where does the checkout pick its colours?payments(2)Read(src/checkout.rs)▾◆personalRead 5 linesblog(1)dotfiles(1)Read(src/theme.rs)playground(1)Read 14 lines+ NewNothing readsThemeyet.src/theme.rs:7definesbackground()with both colours, butsrc/checkout.rsbuilds the pageWorkspaceswithout it: the templates hardcode#ffffffthree times.▾feat/dark-modeTo use it everywhere I would:◐claudeOpus 5.5·9%- callTheme::background()from the checkout+ Tab- keep the brand purple on both themes- add a test for the dark background▾feat/gift-cards◐claude✻Churned for 31s·done 9:39 AMOpus 5.5·6%+ Tab>Use Theme everywhere. Keep the brand purple.▾fix/empty-addressUpdate(src/checkout.rs)◐claudeUpdated src/checkout.rs with 3 additions and 3 removalsOpus 5.5·6%+ TabUpdate(src/theme.rs)Updated src/theme.rs with 4 additions+ NewBash(cargo test)Running…IssuesChanges 2✳Churning…(esc to interrupt·20s)FilesTODOSettingsUsage›Quit⏵⏵accept edits on (shift+tab to cycle)
  3. Read the diff while it's still being written.

    The workspace's changes sit next to the agent and refresh as it types: uncommitted, its commits, or everything since the base branch, or what is uncommitted in every project at once. Hover a hunk to open it in your editor, copy it, or send it back to the agent with a note. No browser, no pull request, no waiting.

    The changes panel →
    web-shop›#482 Returns page crashes on empty addr…Every project×UncommittedCommitsAll3files+13−5live▾Msrc/returns/address.rs+2−2pub struct Address {88}991010implAddress{11pubfnfirst_line(&self) -> &str {12self.lines.first().unwrap()11pubfnfirst_line(&self) ->Option<&str> {12self.lines.first().map(String::as_str)1313}1414}▾Msrc/returns/mod.rs+4−311modaddress;223useaxum::{Json,Router, routing::post};3useaxum::{Json,Router, http::StatusCode, routing::post};4455pubuseaddress::Address;66↕1 unchanged linepub fn routes() -> Router {88Router::new().route("/returns", post(create))99}1010
  4. Close the window. Nothing stops.

    A small server owns the shells, not the window. Quit, close the laptop, lose the Wi-Fi: agents, tests and dev servers keep running. Open cornercase again from any terminal, or from your phone over SSH, and it's where you left it, with a ✓ on everyone who finished while you were away.

    How sessions work →
    your terminalattachedclosed
    cornercase server
    • claude
    • codex
    • claude
    • npm run dev
    Your terminal attaches to the cornercase server, which runs two Claude Code agents, a Codex agent and npm run dev. When the terminal closes, those programs keep running.

Or hand all of it to an agent.

Everything above is one command away. cornercase opens worktrees, starts agents, waits for them and reads what they wrote, so an agent can run the others: one fixes the bug, one reviews, one writes the tests.

Scripts and agents →
a Claude Code session
$ cornercase start codex --worktree feat/gift-cards \
    --prompt 'Add gift cards to the checkout'
12
$ cornercase wait --pane 12 --timeout 900
idle
$ cornercase read --pane 12 --last-message
Done. Gift cards work in the checkout: a GiftCard with a
balance is applied after coupons and before tax.

One issue. A whole team on it.

Pick an issue and click start a flow: cornercase starts a team of agents in a new worktree, and an orchestrator agent runs the plan. It hands the work from the planner to the coder to the reviewers, sends it back when they find something, and opens the pull request when it's done.

Flow · web-shop › issue-482-returns-page-crashes
An animated diagram of a flow on issue #482. The orchestrator agent hands the issue to a planner, then to a coder. A reviewer and a security reviewer check the change side by side. The reviewer finds a problem, so the work goes back to the coder. After a second review both pass, and the orchestrator opens pull request #487, whose checks pass.
  • Any agent in any roleClaude plans, Codex codes, Gemini checks security. Each role picks its agent, model and effort, so the code is reviewed by a model that didn't write it.
  • Side by side, and backReviewers work in parallel, and their findings send the work back to the coder, as many times as you allow.
  • Watch the work moveThe Flow panel lights up each role as it works. Click an arrow to read what went along it.
  • Five built in, or your ownFive flows come with cornercase, from a quick review to an arena of competing coders. Edit them, write your own, or import one from the community.

Everything else, a click away.

For your agents

For your code

For your terminal

All of that, and still fast.

It opens before you can blink, and shows what your agents changed, opens a file or finds one before you can click again. The other apps we tried? Up to 8.5 seconds, and nearly 2 GB.

Opening the app

From launching it until the workspace is usable.

13× faster than Warp,
the next fastest

  1. cornercase34 ms
  2. Warp450 ms
  3. Orca3.2 s
  4. Emdash8.5 s

First look at the changes

From the click until the changes are on screen: 20 files, +794 −76.

200× faster than Warp,
the next fastest

  1. cornercase2 ms
  2. Warp410 ms
  3. Orca1.1 s
  4. Emdash430 ms

Every look after that

The same changes, shown again.

45× faster than Warp,
the next fastest

  1. cornercase2 ms
  2. Warp90 ms
  3. Orca330 ms
  4. Emdash140 ms

Opening a file

From the click until a file of 3,472 lines is on screen, coloured.

3.4× faster than Emdash,
the next fastest

  1. cornercase140 ms
  2. Warp650 ms
  3. Orca1.3 s
  4. Emdash470 ms

Finding a file by name

From the query until the file shows up, among 32,255 files.

10× faster than Orca,
the next fastest

  1. cornercase19 ms
  2. Warp300 ms
  3. Orca190 ms
  4. Emdashno quick open

Searching the files

From the query until the matches show, across 32,255 files.

1.4× faster than Emdash,
the next fastest

  1. cornercase69 ms
  2. Warp430 ms
  3. Orca490 ms
  4. Emdash100 ms

Memory

8.2× less memory than Warp,
the next lightest

  • cornercase: 53 MB
  • Warp: 432 MB
  • Orca: 793 MB
  • Emdash: 1.9 GB

What each app’s own processes use, without the shells.

Download

31× smaller download than Warp,
the next smallest

  • cornercase: 4.8 MB
  • Warp: 148 MB
  • Orca: 219 MB
  • Emdash: 229 MB

What you download to install it.

On disk

29× less disk space than Warp,
the next smallest

  • cornercase: 12 MB
  • Warp: 353 MB
  • Orca: 642 MB
  • Emdash: 807 MB

The space it takes once installed.

How we measured →