goose Keyboard Shortcuts
Keyboard shortcuts for goose, the open-source terminal AI agent, on MacWindowsLinux. Started with goose session. Its keymap is deliberately small — the interesting parts are that the newline key is the only one in this class of tool you can reconfigure, and that Ctrl + C does three different things depending on what's on screen. Built from goose's official CLI reference.
Starting & Core Keys
| Action | Shortcut |
|---|---|
| Install the CLI (official script) | curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bashInvoke-WebRequest -Uri "https://raw.githubusercontent.com/aaif-goose/goose/main/download_cli.ps1" -OutFile "download_cli.ps1"; .\download_cli.ps1curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash |
| Install the CLI with Homebrew | brew install block-goose-cli—brew install block-goose-cli |
| Start an interactive session | goose sessiongoose sessiongoose session |
| Send the current message | EnterEnterEnter |
| Add a new line without sending (reconfigurable) | CtrlJCtrlJCtrlJ |
| Clear the line, interrupt the request, or exit — in that order | CtrlCCtrlCCtrlC |
| Walk back through your command history | Cmd↑Ctrl↑Ctrl↑ |
| Search command history (reverse search) | CtrlRCtrlRCtrlR |
| Show the help menu | /help/help/help |
| Exit the session | /exit/exit/exit |
Modes & Planning
| Action | Shortcut |
|---|---|
| Set the approval mode | /mode/mode/mode |
| Let goose act without asking | /mode auto/mode auto/mode auto |
| Ask before every action | /mode approve/mode approve/mode approve |
| Ask only for the risky actions | /mode smart_approve/mode smart_approve/mode smart_approve |
| Talk only — no tools, no file changes | /mode chat/mode chat/mode chat |
| Enter plan mode with a prompt | /plan/plan/plan |
| Leave plan mode | /endplan/endplan/endplan |
Session & Context
| Action | Shortcut |
|---|---|
| Clear the chat history | /clear/clear/clear |
| Summarize the conversation to free up context | /compact/compact/compact |
| Toggle full tool output on and off | /r/r/r |
| Cycle the theme (light → dark → ansi) | /t/t/t |
| Quit the session | /quit/quit/quit |
Extensions, Skills & Recipes
| Action | Shortcut |
|---|---|
| Turn a conversation into a reusable recipe | /recipe/recipe/recipe |
| List or load skills | /skills/skills/skills |
| Add built-in extensions (comma-separated) | /builtin/builtin/builtin |
| Add a stdio extension for this session | /extension/extension/extension |
| List the available prompts | /prompts/prompts/prompts |
| Inspect or run a prompt | /prompt/prompt/prompt |
Terminal Commands
| Action | Shortcut |
|---|---|
| Run a single task without the interactive session | goose rungoose rungoose run |
| Set up providers and keys | goose configuregoose configuregoose configure |
| Review changes | goose reviewgoose reviewgoose review |
| Work with recipes from the shell | goose recipegoose recipegoose recipe |
| Manage skills | goose skillsgoose skillsgoose skills |
| Schedule a run | goose schedulegoose schedulegoose schedule |
| Manage MCP servers | goose mcpgoose mcpgoose mcp |
| Start an ACP server (editor integration) | goose acpgoose acpgoose acp |
| List or open projects | goose projectsgoose projectsgoose projects |
| List locally available models | goose local-modelsgoose local-modelsgoose local-models |
| Update goose to the latest version | goose updategoose updategoose update |
No shortcuts found. Try a different search term.
Frequently Asked Questions
How do I exit goose?
Type /exit or /quit, or press Ctrl+C with an empty input line. The slash command is the safer habit, because Ctrl+C only exits when there's nothing else for it to do — see the next answer.
What does Ctrl+C actually do in goose?
Three different things, depending on what's happening. If you've typed text, it clears the line. If goose is working on a request, it interrupts that request and resets you to the state before it started. Only if the line is empty and nothing is running does it exit the session. That makes it safer than Codex CLI (where one press quits outright) but it also means pressing it once may not do what you expected.
How do I add a new line in goose without sending?
Press Ctrl+J. goose is unusual here: the newline key is a setting, not a fixed binding. You can change it with GOOSE_CLI_NEWLINE_KEY in the config file or as an environment variable. The docs warn you off a few characters when you do — avoid "c", and avoid common terminal keys like "r", "w", and "z", since you'd be shadowing behaviour you probably still want.
How do I stop goose from editing my files?
Use /mode. goose has four: approve asks before every action, smart_approve asks only for the risky ones, auto acts without asking, and chat disables tools entirely so it will only talk to you. For read-only exploration of a problem, /plan puts it in plan mode and /endplan brings you back — note those are two separate commands here, not one toggle key like Shift+Tab elsewhere.
What is a goose recipe?
A saved, reusable version of something you already did. Run /recipe and goose turns the current conversation into a recipe file you can re-run later or share, and `goose recipe` works with them from the shell. It's the closest thing in this class of tool to "save this workflow as a command" — most terminal agents make you re-prompt from scratch.
Is goose still Block's project?
Block built it and open-sourced it, but goose is now part of the Agentic AI Foundation (AAIF) at the Linux Foundation, so it's vendor-neutral and foundation-governed rather than a single company's tool. The repository moved accordingly — links to the old block/goose location redirect to aaif-goose/goose. The Homebrew formulae still carry the original names (block-goose-cli for the CLI, block-goose for the desktop app).
What's the difference between goose Desktop and the goose CLI?
They're two front ends onto the same agent, and this page covers the CLI only. The keys here apply to the terminal session you get from `goose session`; the desktop app is a normal windowed application and uses its own interface rather than these bindings. On macOS you install them separately — brew install block-goose-cli for the terminal, brew install --cask block-goose for the desktop app.
How does goose compare to Claude Code or Codex CLI?
goose has the smallest keymap of the group — four keyboard shortcuts and everything else through slash commands — so there's much less to memorise, but also no Shift+Tab mode cycling and no leader-key chords. What it has instead is the deepest extension story: /builtin and /extension add capabilities mid-session, /skills loads skills, /recipe saves a workflow for reuse, and `goose schedule` runs one on a timer. See the side-by-side comparison for how the shared keys line up.