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.
| Setting | Default | Description |
|---|---|---|
workspace-grid.rows | 2 | Rows in the terminal grid |
workspace-grid.columns | 4 | Columns in the terminal grid |
workspace-grid.terminals | [] | Per-terminal name, command, icon and colour, in row-major order |
workspace-grid.chatRows | uses rows | Rows in the chat grid |
workspace-grid.chatColumns | uses columns | Columns in the chat grid |
workspace-grid.chatCommand | claude-vscode.editor.open | Command ID that opens a new AI chat panel |
workspace-grid.resumeCommand | claude-tab --resume | Sent to every terminal by Resume Terminal Grid |
workspace-grid.autoRun | off | Build a grid on workspace load: off, terminal, or chat |
workspace-grid.autoRunDelay | 1500 | Milliseconds 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.
