Skip to content

Keyboard and browser shortcuts

PiCode runs in a browser tab, and the browser keeps some key combinations for itself: Ctrl+T opens a new tab, Ctrl+W closes it, and no web page can change that. Agent CLIs (Codex, Claude Code, Grok, OpenCode, Hermes, pi) use those same keys — Codex, for example, opens its MCP details with Ctrl+T.

  • Where: this page is the map. Remap PiCode chords in Agent CLIs → Keyboard.
  • Not this: PiCode cannot steal Ctrl+T or Ctrl+W from the browser. Those never reach the page.

What the browser keeps for itself

These combinations never reach PiCode — the browser acts on them before the page sees anything. On Windows and Linux the browser keys use Ctrl; on macOS the same slots use Cmd (Cmd+T, Cmd+W, …) and PiCode's Ctrl chords reach the page as usual:

KeysBrowser action
Ctrl+T / Ctrl+Shift+TNew tab / reopen closed tab
Ctrl+W / Ctrl+Shift+WClose tab / close window
Ctrl+N / Ctrl+Shift+NNew window / incognito window
Ctrl+Tab / Ctrl+Shift+TabNext / previous tab
Ctrl+1Ctrl+9Jump to tab
Ctrl+PgUp / Ctrl+PgDnPrevious / next tab

Everything else — Ctrl+C, Ctrl+F, Ctrl+P, Alt+←, F3, … — reaches the page, and inside a terminal pane it goes straight to the CLI running there. Copy, interrupt, line-editing keys and function keys already work.

When a CLI wants a key the browser keeps

There is no way for a web page to take Ctrl+T back. Where a CLI's own chord collides with one of these, give the CLI a different chord if it allows one, or run it in a terminal outside the browser. Everything outside the reserved list above already reaches the terminal untouched.

Fullscreen mode hides PiCode, not your window

Fullscreen (Ctrl+Shift+Enter, the right-click menu, or the command palette) hides PiCode's own chrome — the sidebar, the tab strip, the Inspector — and gives the whole page to the tab you are on. It does not touch the browser window: your other tabs and your address bar stay where they are.

If you want the screen as well, press F11. That is your browser's own fullscreen, it works exactly as it always has, and the two stack: enter either one first, leave either one first, nothing else changes. It does not hand the reserved keys over either — that needs an API the browser offers only to a page that asked for fullscreen itself, which PiCode deliberately does not do.

Inside the mode, Escape takes one step at a time:

GestureWhat it does
Escape with a panel revealedCloses that panel, stays in the mode
Escape with nothing revealedLeaves the mode
Escape inside a terminalGoes to the CLI — vim, pagers and TUI menus keep it

From a terminal, leave with Ctrl+Shift+Enter, the right-click menu, or the exit button at the right end of the revealed tab strip.

Rebinding PiCode's own shortcuts

PiCode's own chords stay out of the browser's reserved set so they work everywhere: Ctrl+K for the command palette, Ctrl+` for a new terminal, Alt+[ / Alt+] to cycle tabs. Rebind them in Settings → Keyboard, and the agent's own key map in Settings → Keys.

KeysAction
Ctrl+KCommand palette
Ctrl+`New terminal
Ctrl+.Toggle inspector
Ctrl+Shift+FFind in terminal
Ctrl+Shift+EnterFullscreen mode
Alt+[ / Alt+]Previous / next tab
Alt+WClose tab

In PiCode Desktop, Ctrl+R and F5 reload the page on screen: a work-browser or web-app tab reloads that site, everywhere else reloads PiCode. Inside a terminal they stay with the CLI — Ctrl+R is still reverse search.

In a terminal pane: Ctrl+C copies a selection or interrupts, Ctrl+V pastes, Ctrl+Shift+C / Ctrl+Shift+V always copy / paste, and Shift+Esc hands the keyboard back to the app from a Canvas panel.