Gemini CLI supports several built-in commands to help you manage your session, customize the interface, and control its behavior. These commands are prefixed with a forward slash (/), an at symbol (@), or an exclamation mark (!).
/)Slash commands provide meta-level control over the CLI itself.
/bug
/bug will become the headline for the bug being filed. The default /bug behavior can be modified using the advanced.bugCommand setting in your .gemini/settings.json files./chat
save
<tag> for identifying the conversation state./chat save <tag>~/.gemini/tmp/<project_hash>/C:\Users\<YourUsername>\.gemini\tmp\<project_hash>\/chat list, the CLI only scans these specific directories to find available checkpoints.resume
/chat resume <tag>list
delete
/chat delete <tag>share
/chat share file.md or /chat share file.json. If no filename is provided, then the CLI will generate one./clear
/compress
/copy
xclip or xsel. You can typically install them using your system’s package manager.pbcopy, and on Windows, it requires clip. These tools are typically pre-installed on their respective systems./directory (or /dir)
add:
/directory add <path1>,<path2>--include-directories when starting the session instead.show:
/directory add and --include-directories./directory show/editor
/extensions
/help (or /?)
/mcp
desc or descriptions:
nodesc or nodescriptions:
schema:
/memory
GEMINI.md files).add:
/memory add <text to remember>show:
GEMINI.md files. This lets you inspect the instructional context being provided to the Gemini model.refresh:
GEMINI.md files found in the configured locations (global, project/ancestors, and sub-directories). This command updates the model with the latest GEMINI.md content.list:
GEMINI.md files contribute to hierarchical memory, see the CLI Configuration documentation./restore
/restore [tool_call_id]--checkpointing option or configured via settings. See Checkpointing documentation for more details./settings
.gemini/settings.json file, but with validation and guidance to prevent errors./settings and the editor will open. You can then browse or search for specific settings, view their current values, and modify them as desired. Changes to some settings are applied immediately, while others require a restart./stats
/theme
/auth
/about
/tools
/tools [desc]desc or descriptions:
nodesc or nodescriptions:
/privacy
/quit (or /exit)
/vim
h, j, k, l; jump by words with w, b, e; go to line start/end with 0, $, ^; go to specific lines with G (or gg for first line)x, change with c, insert with i, a, o, O; complex operations like dd, cc, dw, cw3h, 5w, 10G). to repeat the last editing operation~/.gemini/settings.json and restored between sessions[NORMAL] or [INSERT] in the footer/init
GEMINI.md file, this command analyzes the current directory and generates a tailored context file, making it simpler for them to provide project-specific instructions to the Gemini agent.Custom commands allow you to create personalized shortcuts for your most-used prompts. For detailed instructions on how to create, manage, and use them, please see the dedicated Custom Commands documentation.
These shortcuts apply directly to the input prompt for text manipulation.
@)At commands are used to include the content of files or directories as part of your prompt to Gemini. These commands include git-aware filtering.
@<path_to_file_or_directory>
@path/to/your/file.txt Explain this text.@src/my_project/ Summarize the code in this directory.What is this file about? @README.md@My\ Documents/file.txt).read_many_files tool internally. The content is fetched and then inserted into your query before being sent to the Gemini model.node_modules/, dist/, .env, .git/) are excluded. This behavior can be changed via the context.fileFiltering settings.read_many_files tool to ensure performance and relevance. The tool indicates if files were skipped.read_many_files was used, along with a message detailing the status and the path(s) that were processed.@ (Lone at symbol)
@ symbol without a path, the query is passed as-is to the Gemini model. This might be useful if you are specifically talking about the @ symbol in your prompt.@ commands@ is not found or is invalid, an error message will be displayed, and the query might not be sent to the Gemini model, or it will be sent without the file content.read_many_files tool encounters an error (e.g., permission issues), this will also be reported.!)The ! prefix lets you interact with your system’s shell directly from within Gemini CLI.
!<shell_command>
<shell_command> using bash on Linux/macOS or cmd.exe on Windows. Any output or errors from the command are displayed in the terminal.!ls -la (executes ls -la and returns to Gemini CLI)!git status (executes git status and returns to Gemini CLI)! (Toggle shell mode)
! on its own toggles shell mode.
Caution for all ! usage: Commands you execute in shell mode have the same permissions and impact as if you ran them directly in your terminal.
! or in shell mode, the GEMINI_CLI=1 environment variable is set in the subprocess’s environment. This allows scripts or tools to detect if they are being run from within the Gemini CLI.