Colossal

Eight terminals.
One command.

Workspace Grid is a free extension for VS Code and Cursor. It opens your terminals, or your AI chat panels, in a grid you have already described in settings: named, coloured, and running whatever each one is supposed to run. Then it rebuilds that grid whenever you ask.

Rebuilding your layout is not work.

If you run several agents or processes side by side, the first ten minutes of every session go the same way: split the panel, split it again, rename the tabs, start each one, resize until it looks like it did yesterday. Then the editor crashes and you do it again.

The layout is not a decision you are making fresh each morning. It is a setting. Workspace Grid treats it as one.

Describe the grid once. Open it, or bring it back, in a single command.

What it does.

A terminal grid in one command

Open Terminal Grid closes what is open and lays out a fresh rows-by-columns grid of terminals. Each one gets its own name, icon, colour, and startup command, assigned in row-major order.

A chat grid too

Open Chat Grid does the same for AI chat panels, and works with any extension that registers a command to open a new chat: Claude Code, Copilot, Cursor. It can use its own rows and columns.

Resume, not just reopen

Resume Terminal Grid rebuilds the same layout but sends your resume command to every tab instead of its startup command, so the sessions you had open come back with the grid.

Auto-run per workspace

Set autoRun to terminal or chat and the grid builds itself when the workspace loads. It is a normal setting, so drop it in a project .vscode/settings.json and it fires only there.

Configured how you prefer

Every option works as a flat workspace-grid.* key or grouped under one workspace-grid.config object. Precedence resolves per key, so a partial grouped config leaves the rest of your flat keys in effect.

Free, and small

No account, no telemetry, no dependencies. One file of plain JavaScript against the editor API, released under CC BY-NC 4.0.

It is all settings.

Drop this in your settings.json and a two-by-four grid of named terminals opens itself every time that workspace loads.

Define more terminals than the grid holds and the extras sit ready, used the moment you increase the rows or columns.

"workspace-grid.config": {
  "rows": 2,
  "columns": 4,
  "autoRun": "terminal",
  "terminals": [
    { "name": "D.A.R.Y.L.", "icon": "server",    "color": "terminal.ansiGreen"   },
    { "name": "ROBOCOP",    "icon": "git-merge", "color": "terminal.ansiYellow"  },
    { "name": "HAL 9000",   "icon": "beaker",    "color": "terminal.ansiCyan"    },
    { "name": "R2D2",       "icon": "terminal",  "color": "terminal.ansiWhite"   }
  ]
}

Every setting.

SettingDefaultDescription
workspace-grid.rows2Rows in the terminal grid
workspace-grid.columns4Columns in the terminal grid
workspace-grid.terminals[]Per-terminal name, command, icon and colour, in row-major order
workspace-grid.chatRowsuses rowsRows in the chat grid
workspace-grid.chatColumnsuses columnsColumns in the chat grid
workspace-grid.chatCommandclaude-vscode.editor.openCommand ID that opens a new AI chat panel
workspace-grid.resumeCommandclaude-tab --resumeSent to every terminal by Resume Terminal Grid
workspace-grid.autoRunoffBuild a grid on workspace load: off, terminal, or chat
workspace-grid.autoRunDelay1500Milliseconds to wait after startup before the auto-run grid opens

Get it from your editor's marketplace.

Free, no account, and about eleven kilobytes. VS Code users take the Marketplace build; Cursor, Windsurf and other Open VSX editors take the second link.