# Canvas buttons should be able to run terminal commands

**URL:** <https://forum.cursor.com/t/canvas-buttons-should-be-able-to-run-terminal-commands/171500>\
**Category:** Feature Requests\
**Tags:** terminal, canvas\
**Created:** [September 13, 2026, 12:11pm UTC](https://forum.cursor.com/t/canvas-buttons-should-be-able-to-run-terminal-commands/171500 "2026-09-13T12:11:16Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ivomarel](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/ivomarel/32/120733_2.png) [@ivomarel](https://forum.cursor.com/u/ivomarel)\
**Post date:** [September 13, 2026, 12:11pm UTC](https://forum.cursor.com/t/canvas-buttons-should-be-able-to-run-terminal-commands/171500/1 "2026-09-13T12:11:16Z")

</div>

### Feature request for product/service

Cursor IDE

### Describe the request

Allow canvas UI to dispatch a terminal / shell action so a button (or other control) can run an arbitrary command in the workspace — not only IDE navigation or agent-chat actions.

Today useCanvasAction only supports:  
openAgent  
newComposerChat  
openFile

There is no runTerminal / runCommand (or equivalent). Canvases also cannot spawn processes or call local APIs themselves.

### Operating System (if it applies)

MacOS

---

<div class="post-metadata">

**Author:** ![Colin](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/colin/32/90452_2.png) [@Colin](https://forum.cursor.com/u/Colin)\
**Post date:** [September 14, 2026, 9:05am UTC](https://forum.cursor.com/t/canvas-buttons-should-be-able-to-run-terminal-commands/171500/5 "2026-09-14T09:05:52Z")

</div>

Hey @ivomarel, thanks for the suggestion!

There isn’t a way for a canvas to run a shell command directly today, although that sounds cool! Canvases run in a sandbox and can’t spawn processes or reach local APIs, so a button that executes arbitrary commands would need its own permission story before we could add it.

The closest option right now is the `newComposerChat` action with a `userPrompt`, for example “Run pnpm test and summarize the failures”. That opens a new agent chat with the command pre-filled, and the agent runs it under your normal terminal permissions once you send it.

```auto
dispatch({ type: "newComposerChat", userPrompt: "Run pnpm test and summarize the failures" })

```

 ![Screenshot 2026-09-14 at 11.05.16](https://us1.discourse-cdn.com/cursor1/original/3X/1/6/1688065c7bd4999b70ad500f3b07c2a749d91da7.png)

We’ll keep an eye on how much interest this gets!

---

<div class="post-metadata">

**Author:** ![ivomarel](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/ivomarel/32/120733_2.png) [@ivomarel](https://forum.cursor.com/u/ivomarel)\
**Post date:** [September 14, 2026, 9:22am UTC](https://forum.cursor.com/t/canvas-buttons-should-be-able-to-run-terminal-commands/171500/7 "2026-09-14T09:22:32Z")

</div>

Thanks for the quick reply @Colin . Yea I’m aware of the option of giving the agents the command, but it slows it down, and seems like a waste of a prompt.

Not sure if this helps, but I think a good alternative is exposing tasks froms tasks.json in the IDE to the agent window. In fact I used to switch to the IDE specifically for this (also using the Tasks plugin to display the Tasks as button in the bottom bar). If the tasks.json could somehow be exposed (as single-click buttons) to the Agents window, it could be a big win.
