# Canvas mode

> The agent works through cards — it opens its own terminals, browsers, notes and helpers.

Source: https://docs.neurosquad.ai/en/squads/canvas-mode

Normally you set up the cards and arrows. In **canvas mode** the agent does it itself: it works
through cards on the canvas instead of hidden inside its own window.

The whole story, step by step, and what working this way gives you: [neurosquad.ai/en/canvas-mode](https://neurosquad.ai/en/canvas-mode/).

- It opens a **terminal card** for commands — one per long-running process.
- It opens a **browser card** when it needs the web.
- It keeps its log in a **note card**.
- It creates **helper agents** for work that can run in parallel.
- It **wires its helpers** to the cards their task needs — your note, a terminal, a browser, a task
board — since a helper only sees cards connected to its own card. In canvas mode it may connect
any two cards of the workspace ([what it may wire](https://docs.neurosquad.ai/en/squads/lead-agent#give-helpers-cards)).
- It **equips itself** with a plugin, skill or MCP server it needs — memory, library docs, a code
graph ([how, and what still asks you](https://docs.neurosquad.ai/en/skills-mcp#self-equip)).

Everything it does is right there on the canvas for you to see. A card in canvas mode has a faint
green glow.

## Turn it on

Agent card menu → **Enable canvas mode**. It is there for every AI CLI that gets NeuroSquad's card
tools — all 22: Claude Code, Codex CLI, OpenCode, Kilo Code, Hermes Agent, Qwen Code, Antigravity CLI,
GitHub Copilot CLI, Factory Droid, Amp, Auggie, Cursor CLI, Cline CLI, Goose, Kimi Code, ZCode, MiMo Code, PenguinHarness, Crush,
aider, Pi and omp.

The card tools and the instructions switch at once, while the agent is running. On top of that,
NeuroSquad takes away the CLI's **own** shell and web tools, so the agent really does use the cards.
Each CLI has its own way to do it:

| CLI | How its own shell and web are cut off | Holds in dangerous mode | From |
| --- | --- | --- | --- |
| Claude Code | `Bash`, `WebSearch`, `WebFetch` disabled at launch; dangerous mode never approves them | yes | next launch |
| Codex CLI | shell tool and web search switched off — not offered to the model | yes | next launch |
| OpenCode, Kilo Code | `bash`, `webfetch`, `websearch` denied in the card's config | yes | next launch |
| MiMo Code | `bash`, `webfetch`, `websearch`, `codesearch`, `exec` denied in the card's config | yes | next launch |
| Hermes Agent | the `terminal`, `code_execution`, `web`, `search` and `browser` toolsets disabled | yes | next launch |
| Qwen Code | `run_shell_command`, `monitor`, `web_fetch`, `web_search` disabled and denied | yes | next launch |
| Antigravity CLI | a hook denies `run_command`, `manage_task`, `search_web`, `read_url_content` and the browser tools | yes | next launch |
| Gemini CLI (legacy) | `run_shell_command`, its background-process tools, `web_fetch`, `google_web_search` excluded | yes | next launch |
| GitHub Copilot CLI | the bash/PowerShell tools, `web_fetch` and `web_search` excluded, the shell denied | yes | next launch |
| Factory Droid | a hook denies `Execute`, `Script`, `WebSearch`, `FetchUrl` | yes | next launch |
| Amp | NeuroSquad's plugin refuses its shell tools, `web_search` and `read_web_page` on every call | yes | next launch |
| Auggie | the process tools, `web-fetch` and `web-search` removed | yes | next launch |
| Cursor CLI | a hook denies `Shell`, `WebFetch`, `WebSearch` — read from the card on every call | yes | immediately |
| Cline CLI | NeuroSquad's plugin removes `run_commands`, `fetch_web_content`, `web_search` and refuses them | yes | next launch |
| Goose | the `developer` extension keeps only its file tools (no `shell`); `code_execution` and `computercontroller` get no tools | yes¹ | next launch |
| Kimi Code | `Bash`, `WebSearch`, `FetchURL` disabled, plus a hook that blocks them | yes | next launch |
| ZCode | `Bash`, `BashOutput`, `KillShell`, `WebFetch`, `WebSearch`, `web_search` removed from the model's tools, plus a hook that blocks them | yes | next launch |
| PenguinHarness | a hook refuses `exec_command` and `input_command` (its shell, and its only way to the web) | yes | next launch |
| Crush | `bash`, its job tools, `download`, `fetch`, `agentic_fetch`, `sourcegraph` disabled | yes | next launch |
| aider | it stops suggesting shell commands and stops fetching URLs from the chat² | yes | next launch |
| Pi | `bash` and `powershell` excluded; Pi has no web tools of its own | yes | next launch |
| omp | `bash`, `eval`, `web_search` and URL reads blocked and hidden from the model | yes | next launch |

¹ Goose's extension manager stays, so a model that goes out of its way could turn another extension
on. ² `/run` and `/web` remain yours to type.

"Next launch" means the CLI picks it up when the card starts again; the running session keeps its
tools until then. Dangerous mode skips approval prompts — it doesn't give back what canvas mode took
away.

> Canvas mode is not a sandbox. The agent still reads and edits your project's files with its own
> tools, and what it runs in a terminal card are real commands on your computer.
