{"id":2138,"date":"2025-09-13T17:15:56","date_gmt":"2025-09-13T17:15:56","guid":{"rendered":"https:\/\/davidka.net\/en\/?p=2138"},"modified":"2025-09-13T19:22:46","modified_gmt":"2025-09-13T19:22:46","slug":"gemini-cli-cheatsheet","status":"publish","type":"post","link":"https:\/\/it.davidka.net\/it\/gemini-cli-cheatsheet\/","title":{"rendered":""},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/philschmid\/gemini-samples\/blob\/main\/gemini-cli-cheatsheet.md\">gemini-samples\/gemini-cli-cheatsheet.md at main \u00b7 philschmid\/gemini-samples<\/a><\/p>\n\n\n\n<p class=\"has-neve-link-color-color has-text-color has-link-color has-medium-font-size wp-elements-c9b153e8730011352f1dccfb2679c64e wp-block-paragraph\">The <a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\">Gemini CLI<\/a> is an open-source AI agent that brings the power of Gemini directly into your terminal, allowing you to perform a wide range of tasks such as coding, problem-solving, and task management using natural language. This cheatsheet provides a quick reference for installing, configuring, and using the Gemini CLI, with a focus on users authenticating via a Gemini API key.<\/p>\n\n\n\n<div id=\"rtoc-mokuji-wrapper\" class=\"rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default\" data-id=\"2138\" data-theme=\"Neve - Davidka\">\n\t\t\t<div id=\"rtoc-mokuji-title\" class=\"rtoc_btn_none rtoc_left\">\n\t\t\t\n\t\t\t<span>In Questo Articolo<\/span>\n\t\t\t<\/div><ol class=\"rtoc-mokuji decimal_ol level-1\"><li class=\"rtoc-item\"><a href=\"#rtoc-1\">\ud83d\ude80 Getting Started<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-2\">Installation<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-3\">Authentication with a Gemini API Key<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-4\">Basic Invocation<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-5\">\u2699\ufe0f Configuration<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-6\">Settings Files (<code class=\"\" data-line=\"\">settings.json<\/code>)<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-7\">Context Files (<code class=\"\" data-line=\"\">GEMINI.md<\/code>)<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-8\">Ignoring Files with <code class=\"\" data-line=\"\">.geminiignore<\/code><\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-9\">\ud83d\udee0\ufe0f Working with Tools<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-10\">Some Built-in Tools<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-11\">Custom Tools via MCP Servers<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-12\">\u26a1 Core Commands<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-13\">Helpful Slash Commands (<code class=\"\" data-line=\"\">\/<\/code>)<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-14\">Context Commands (<code class=\"\" data-line=\"\">@<\/code>)<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-15\">Shell Commands (<code class=\"\" data-line=\"\">!<\/code>)<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-16\">Keyboard Shortcuts<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-17\">\u2728 Advanced Features<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-18\">IDE Integration (VS Code)<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-19\">Custom Commands<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-20\">Extensions<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-21\">Checkpointing &#038; Restore<\/a><\/li><\/ul><\/li><\/ol><\/div><h2 id=\"rtoc-1\"  class=\"wp-block-heading\">\ud83d\ude80 Getting Started<\/h2>\n\n\n\n<h3 id=\"rtoc-2\"  class=\"wp-block-heading\">Installation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Install Globally:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">npm install -g @google\/gemini-cli<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Run without Installing:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">npx @google\/gemini-cli<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-3\"  class=\"wp-block-heading\">Authentication with a Gemini API Key<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Authenticate with an API key before first use. See the <a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\/blob\/main\/docs\/cli\/authentication.md\" target=\"_blank\" rel=\"noreferrer noopener\">authentication guide<\/a> for details.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Get Your Key:<\/strong> Get an API key from <a href=\"https:\/\/aistudio.google.com\/app\/apikey\" target=\"_blank\" rel=\"noreferrer noopener\">Google AI Studio<\/a>.<\/li>\n\n\n\n<li><strong>Set Your Key:<\/strong> Make the key available to the CLI with one of these methods. <strong>Method 1: Shell Environment Variable<\/strong><br>Set the <code class=\"\" data-line=\"\">GEMINI_API_KEY<\/code> environment variable. To use it across terminal sessions, add this line to your shell&#8217;s profile (e.g., <code class=\"\" data-line=\"\">~\/.bashrc<\/code>, <code class=\"\" data-line=\"\">~\/.zshrc<\/code>). <code class=\"\" data-line=\"\">export GEMINI_API_KEY=&quot;YOUR_GEMINI_API_KEY&quot;<\/code> <strong>Method 2: Environment File<\/strong><br>Create a <code class=\"\" data-line=\"\">.env<\/code> file in <code class=\"\" data-line=\"\">~\/.gemini\/<\/code> for global use or <code class=\"\" data-line=\"\">.\/.gemini\/<\/code> for a specific project. The CLI automatically loads it. <code class=\"\" data-line=\"\"># In .gemini\/.env GEMINI_API_KEY=&quot;YOUR_GEMINI_API_KEY&quot;<\/code><\/li>\n<\/ol>\n\n\n\n<h3 id=\"rtoc-4\"  class=\"wp-block-heading\">Basic Invocation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Interactive Mode (REPL):<\/strong><br>Start a conversational session.<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">gemini<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Non-Interactive Mode:<\/strong><br>Pass a prompt and get a single response.<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">gemini -p &quot;Summarize the main points of the attached file. @.\/summary.txt&quot;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Piping to the CLI:<\/strong><br>Pipe content to the CLI.<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">echo &quot;Count to 10&quot; | gemini<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Sandbox Mode:<\/strong><br>Run tools in a secure sandbox (requires Docker or Podman).<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">gemini --sandbox -p &quot;your prompt&quot;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Other Flags:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code class=\"\" data-line=\"\">-m, --model &lt;model&gt;&lt;\/model&gt;<\/code>: Use a specific model.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">-i, --prompt-interactive &lt;prompt&gt;&lt;\/prompt&gt;<\/code>: Start an interactive session with an initial prompt.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">-d, --debug<\/code>: Enable debug output.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">--yolo<\/code>: Auto-approve all tool calls.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">--checkpointing<\/code>: Save a project snapshot before file modifications. Use <code class=\"\" data-line=\"\">\/restore<\/code> to revert changes.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\/blob\/main\/docs\/cli\/configuration.md#command-line-arguments\" target=\"_blank\" rel=\"noreferrer noopener\">Full list of flags<\/a>.<\/p>\n\n\n\n<h2 id=\"rtoc-5\"  class=\"wp-block-heading\">\u2699\ufe0f Configuration<\/h2>\n\n\n\n<h3 id=\"rtoc-6\"  class=\"wp-block-heading\">Settings Files (<code class=\"\" data-line=\"\">settings.json<\/code>)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Customize the CLI by creating a <code class=\"\" data-line=\"\">settings.json<\/code> file. Settings are applied with the following precedence:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Project:<\/strong> <code class=\"\" data-line=\"\">.gemini\/settings.json<\/code> (overrides user and system settings).<\/li>\n\n\n\n<li><strong>User:<\/strong> <code class=\"\" data-line=\"\">~\/.gemini\/settings.json<\/code> (overrides system settings).<\/li>\n\n\n\n<li><strong>System:<\/strong> <code class=\"\" data-line=\"\">\/etc\/gemini-cli\/settings.json<\/code> (applies to all users, has lowest precedence).<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example <code class=\"\" data-line=\"\">settings.json<\/code>:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">{\n  &quot;theme&quot;: &quot;GitHub&quot;,\n  &quot;autoAccept&quot;: false,\n  &quot;sandbox&quot;: &quot;docker&quot;,\n  &quot;vimMode&quot;: true,\n  &quot;checkpointing&quot;: { &quot;enabled&quot;: true },\n  &quot;fileFiltering&quot;: { &quot;respectGitIgnore&quot;: true },\n  &quot;usageStatisticsEnabled&quot;: true,\n  &quot;includeDirectories&quot;: &#091;&quot;..\/shared-library&quot;, &quot;~\/common-utils&quot;],\n  &quot;chatCompression&quot;: { &quot;contextPercentageThreshold&quot;: 0.6 },\n  &quot;customThemes&quot;: {\n    &quot;MyCustomTheme&quot;: {\n      &quot;name&quot;: &quot;MyCustomTheme&quot;, &quot;type&quot;: &quot;custom&quot;,\n      &quot;Background&quot;: &quot;#181818&quot;, &quot;Foreground&quot;: &quot;#F8F8F2&quot;,\n      &quot;LightBlue&quot;: &quot;#82AAFF&quot;, &quot;AccentBlue&quot;: &quot;#61AFEF&quot;, &quot;AccentPurple&quot;: &quot;#C678DD&quot;,\n      &quot;AccentCyan&quot;: &quot;#56B6C2&quot;, &quot;AccentGreen&quot;: &quot;#98C379&quot;, &quot;AccentYellow&quot;: &quot;#E5C07B&quot;,\n      &quot;AccentRed&quot;: &quot;#E06C75&quot;, &quot;Comment&quot;: &quot;#5C6370&quot;, &quot;Gray&quot;: &quot;#ABB2BF&quot;\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code class=\"\" data-line=\"\">autoAccept<\/code>: Auto-approve safe, read-only tool calls.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">sandbox<\/code>: Isolate tool execution (e.g., <code class=\"\" data-line=\"\">true<\/code>, <code class=\"\" data-line=\"\">&quot;docker&quot;<\/code>, or <code class=\"\" data-line=\"\">&quot;podman&quot;<\/code>).<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">vimMode<\/code>: Enable Vim-style editing for the input prompt.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">checkpointing<\/code>: Enable the <code class=\"\" data-line=\"\">\/restore<\/code> command to undo file changes.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">includeDirectories<\/code>: Define a multi-directory workspace.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">chatCompression<\/code>: Configure automatic chat history compression.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">customThemes<\/code>: Define your own color themes.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">usageStatisticsEnabled<\/code>: Set to <code class=\"\" data-line=\"\">false<\/code> to disable usage statistics.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">All details in the <a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\/blob\/main\/docs\/cli\/configuration.md\">configuration guide<\/a>.<\/p>\n\n\n\n<h3 id=\"rtoc-7\"  class=\"wp-block-heading\">Context Files (<code class=\"\" data-line=\"\">GEMINI.md<\/code>)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use <code class=\"\" data-line=\"\">GEMINI.md<\/code> files to provide instructions to the model and tailor it to your project. Use <code class=\"\" data-line=\"\">\/init<\/code> to generate a starting <code class=\"\" data-line=\"\">GEMINI.md<\/code> file for your project.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Hierarchical Loading:<\/strong><br>The CLI combines <code class=\"\" data-line=\"\">GEMINI.md<\/code> files from multiple locations. More specific files override general ones. The loading order is:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Global Context:<\/strong> <code class=\"\" data-line=\"\">~\/.gemini\/GEMINI.md<\/code> (for instructions that apply to all your projects).<\/li>\n\n\n\n<li><strong>Project\/Ancestor Context:<\/strong> The CLI searches from your current directory up to the project root for <code class=\"\" data-line=\"\">GEMINI.md<\/code> files.<\/li>\n\n\n\n<li><strong>Sub-directory Context:<\/strong> The CLI also scans subdirectories for <code class=\"\" data-line=\"\">GEMINI.md<\/code> files, allowing for component-specific instructions.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Use <code class=\"\" data-line=\"\">\/memory show<\/code> to see the final combined context being sent to the model.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Modularizing Context with Imports:<\/strong><br>You can organize <code class=\"\" data-line=\"\">GEMINI.md<\/code> files by importing other Markdown files with the <code class=\"\" data-line=\"\">@file.md<\/code> syntax. This only supports <code class=\"\" data-line=\"\">.md<\/code> files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example <code class=\"\" data-line=\"\">GEMINI.md<\/code> using imports:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># Main Project Context: My Awesome App\n\n## General Instructions\n- All Python code must be PEP 8 compliant.\n- Use 2-space indentation for all new files.\n\n## Component-Specific Style Guides\n@.\/src\/frontend\/react-style-guide.md\n@.\/src\/backend\/fastapi-style-guide.md<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">More in the <a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\/blob\/main\/docs\/cli\/configuration.md#context-files-geminimd\">Full context file guide<\/a>.<\/p>\n\n\n\n<h3 id=\"rtoc-8\"  class=\"wp-block-heading\">Ignoring Files with <code class=\"\" data-line=\"\">.geminiignore<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create a <code class=\"\" data-line=\"\">.geminiignore<\/code> file in your project root to exclude files and directories from Gemini&#8217;s tools, similar to <code class=\"\" data-line=\"\">.gitignore<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># .geminiignore\n\/backups\/\n*.log\nsecret-config.json<\/code><\/pre>\n\n\n\n<h2 id=\"rtoc-9\"  class=\"wp-block-heading\">\ud83d\udee0\ufe0f Working with Tools<\/h2>\n\n\n\n<h3 id=\"rtoc-10\"  class=\"wp-block-heading\">Some Built-in Tools<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>File System Tools:<\/strong> For interacting with files and directories &#8211; <code class=\"\" data-line=\"\">list_directory(path=&quot;\/src&quot;)<\/code>, <code class=\"\" data-line=\"\">glob(pattern=&quot;src\/**\/*.ts&quot;)<\/code>, <code class=\"\" data-line=\"\">read_file(path=&quot;\/path\/to\/file.txt&quot;)<\/code>, <code class=\"\" data-line=\"\">write_file(file_path=&quot;\/path\/to\/new_file.js&quot;, content=&quot;console.log(&#039;hello&#039;);&quot;)<\/code>, <code class=\"\" data-line=\"\">replace(file_path=&quot;...&quot;, old_string=&quot;...&quot;, new_string=&quot;...&quot;)<\/code>, <code class=\"\" data-line=\"\">search_file_content(pattern=&quot;myFunction&quot;, include=&quot;*.js&quot;)<\/code><\/li>\n\n\n\n<li><strong>Shell Tool:<\/strong> Executes shell commands. <strong>Use with caution.<\/strong> To restrict commands, use <code class=\"\" data-line=\"\">excludeTools<\/code> in <code class=\"\" data-line=\"\">settings.json<\/code>. For example: <code class=\"\" data-line=\"\">&quot;excludeTools&quot;: [&quot;run_shell_command(rm)&quot;]<\/code><\/li>\n\n\n\n<li><strong>Web Tools:<\/strong> For retrieving content and searching online &#8211; <code class=\"\" data-line=\"\">google_web_search(query=&quot;Gemini API rate limits&quot;)<\/code>, <code class=\"\" data-line=\"\">web_fetch(prompt=&quot;Summarize https:\/\/my-blog.com\/article&quot;)<\/code><\/li>\n\n\n\n<li><strong>Memory Tool:<\/strong> For saving and recalling information across sessions &#8211; <code class=\"\" data-line=\"\">save_memory(fact=&quot;My preferred CSS framework is Tailwind CSS.&quot;)<\/code><\/li>\n<\/ul>\n\n\n\n<h3 id=\"rtoc-11\"  class=\"wp-block-heading\">Custom Tools via MCP Servers<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Extend the CLI with your own tools by running Model Context Protocol (MCP) servers. Manage servers via <code class=\"\" data-line=\"\">settings.json<\/code> or with the <code class=\"\" data-line=\"\">gemini mcp &lt;add|list|remove&gt;&lt;\/add|list|remove&gt;<\/code> commands.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Capabilities:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OAuth 2.0 Support:<\/strong> Securely connect to remote servers.<\/li>\n\n\n\n<li><strong>Rich Content Returns:<\/strong> Tools can return multi-modal content like text and images.<\/li>\n\n\n\n<li><strong>Prompts as Commands:<\/strong> Expose predefined prompts from your server as new slash commands in the CLI.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example <code class=\"\" data-line=\"\">mcpServers<\/code> configuration:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&quot;mcpServers&quot;: {\n  &quot;myPythonServer&quot;: {\n    &quot;command&quot;: &quot;python&quot;,\n    &quot;args&quot;: &#091;&quot;-m&quot;, &quot;my_mcp_server&quot;, &quot;--port&quot;, &quot;8080&quot;],\n    &quot;cwd&quot;: &quot;.\/mcp_tools\/python&quot;,\n    &quot;env&quot;: {\n      &quot;DATABASE_URL&quot;: &quot;$DB_URL_FROM_ENV&quot;\n    },\n    &quot;timeout&quot;: 15000,\n    &quot;trust&quot;: false,\n    &quot;includeTools&quot;: &#091;&quot;safe_tool_1&quot;, &quot;safe_tool_2&quot;],\n    &quot;excludeTools&quot;: &#091;&quot;dangerous_tool&quot;]\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Transport (choose one):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code class=\"\" data-line=\"\">command<\/code>, <code class=\"\" data-line=\"\">args<\/code>, <code class=\"\" data-line=\"\">cwd<\/code>: Launch a local process via Stdio<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">url<\/code>: SSE endpoint (e.g., <code class=\"\" data-line=\"\">&quot;http:\/\/localhost:8080\/sse&quot;<\/code>)<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">httpUrl<\/code>: HTTP streaming endpoint (e.g., <code class=\"\" data-line=\"\">&quot;http:\/\/localhost:8080\/mcp&quot;<\/code>)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Optional:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code class=\"\" data-line=\"\">env<\/code>: Environment variables. Use <code class=\"\" data-line=\"\">$VAR_NAME<\/code> syntax to reference shell variables.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">headers<\/code>: Key-value map of HTTP headers for <code class=\"\" data-line=\"\">url<\/code>\/<code class=\"\" data-line=\"\">httpUrl<\/code> transports.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">timeout<\/code>: Request timeout in milliseconds (default: 10 minutes).<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">trust<\/code>: Bypass all tool confirmations for this server.<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">includeTools<\/code>\/<code class=\"\" data-line=\"\">excludeTools<\/code>: Whitelist\/blacklist specific tools. <code class=\"\" data-line=\"\">excludeTools<\/code> takes precedence.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Using OAuth take a look at <a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\/blob\/main\/docs\/tools\/mcp-server.md#oauth-support-for-remote-mcp-servers\">mcp-server.md<\/a><\/p>\n\n\n\n<h2 id=\"rtoc-12\"  class=\"wp-block-heading\">\u26a1 Core Commands<\/h2>\n\n\n\n<h3 id=\"rtoc-13\"  class=\"wp-block-heading\">Helpful Slash Commands (<code class=\"\" data-line=\"\">\/<\/code>)<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Command<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code class=\"\" data-line=\"\">\/compress<\/code><\/td><td>Replace the entire chat context with a summary to save tokens.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/copy<\/code><\/td><td>Copy the last response to the clipboard.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/mcp<\/code><\/td><td>List configured MCP servers and their available tools.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/clear<\/code><\/td><td>Clear the terminal screen and context (<code class=\"\" data-line=\"\">Ctrl+L<\/code> also works).<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/tools<\/code><\/td><td>List available tools.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/extensions<\/code><\/td><td>List active extensions.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/stats<\/code><\/td><td>Show session token usage and savings.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/memory show<\/code><\/td><td>Show the combined context from all <code class=\"\" data-line=\"\">GEMINI.md<\/code> files.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/memory refresh<\/code><\/td><td>Reload all <code class=\"\" data-line=\"\">GEMINI.md<\/code> files.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/chat save &lt;tag&gt;&lt;\/tag&gt;<\/code><\/td><td>Save the current conversation with a tag.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/chat resume &lt;tag&gt;&lt;\/tag&gt;<\/code><\/td><td>Resume a saved conversation.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/chat list<\/code><\/td><td>List saved conversation tags.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/restore<\/code><\/td><td>List or restore a project state checkpoint.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/auth<\/code><\/td><td>Change the current authentication method.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/bug<\/code><\/td><td>File an issue or bug report about the Gemini CLI.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/help<\/code><\/td><td>Display help information and available commands.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/theme<\/code><\/td><td>Change the CLI&#8217;s visual theme.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/quit<\/code><\/td><td>Exit the Gemini CLI.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/ide<\/code><\/td><td>Manage integration with your IDE (e.g., <code class=\"\" data-line=\"\">install<\/code>, <code class=\"\" data-line=\"\">enable<\/code>).<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/settings<\/code><\/td><td>Open a friendly editor to change your <code class=\"\" data-line=\"\">settings.json<\/code> file.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/vim<\/code><\/td><td>Toggle Vim mode for input editing.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/init<\/code><\/td><td>Generate a starting <code class=\"\" data-line=\"\">GEMINI.md<\/code> context file for your project.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">\/directory<\/code><\/td><td>Manage directories in a multi-directory workspace (e.g., <code class=\"\" data-line=\"\">add<\/code>, <code class=\"\" data-line=\"\">show<\/code>).<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 id=\"rtoc-14\"  class=\"wp-block-heading\">Context Commands (<code class=\"\" data-line=\"\">@<\/code>)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Reference files or directories in your prompt. The CLI respects <code class=\"\" data-line=\"\">.gitignore<\/code> and <code class=\"\" data-line=\"\">.geminiignore<\/code>. You can also reference images, PDFs, audio, and video files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Include a single file:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&gt; Explain this code to me. @.\/src\/main.js<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Include an image:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&gt; Describe what you see in this screenshot. @.\/ux-mockup.png<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Include a whole directory (recursively):<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&gt; Refactor the code in this directory to use async\/await. @.\/src\/<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-15\"  class=\"wp-block-heading\">Shell Commands (<code class=\"\" data-line=\"\">!<\/code>)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run shell commands directly in the CLI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Run a single command:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&gt; !git status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Toggle Shell Mode:<\/strong><br>Enter <code class=\"\" data-line=\"\">!<\/code> by itself to switch to a persistent shell mode. Type <code class=\"\" data-line=\"\">!<\/code> again to exit.<\/p>\n\n\n\n<h3 id=\"rtoc-16\"  class=\"wp-block-heading\">Keyboard Shortcuts<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Shortcut<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code class=\"\" data-line=\"\">Ctrl+L<\/code><\/td><td>Clear the screen.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">Ctrl+V<\/code><\/td><td>Paste text or an image from the clipboard.<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">Ctrl+Y<\/code><\/td><td>Toggle YOLO mode (auto-approve all tool calls).<\/td><\/tr><tr><td><code class=\"\" data-line=\"\">Ctrl+X<\/code><\/td><td>Open the current prompt in an external editor.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"rtoc-17\"  class=\"wp-block-heading\">\u2728 Advanced Features<\/h2>\n\n\n\n<h3 id=\"rtoc-18\"  class=\"wp-block-heading\">IDE Integration (VS Code)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Connect the CLI to VS Code for a more powerful, context-aware experience.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Workspace Context:<\/strong> Automatically gets your recent files, cursor position, and selected text.<\/li>\n\n\n\n<li><strong>Native Diffing:<\/strong> View and approve code changes directly in your editor&#8217;s diff viewer.<\/li>\n\n\n\n<li><strong>Commands:<\/strong> Use <code class=\"\" data-line=\"\">\/ide install<\/code> to set up and <code class=\"\" data-line=\"\">\/ide enable<\/code> to connect.<\/li>\n<\/ul>\n\n\n\n<h3 id=\"rtoc-19\"  class=\"wp-block-heading\">Custom Commands<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create custom commands using TOML files. Store them in <code class=\"\" data-line=\"\">~\/.gemini\/commands\/<\/code> (global) or <code class=\"\" data-line=\"\">&lt;project&gt;\/.gemini\/commands\/&lt;\/project&gt;<\/code> (project-specific). See the <a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\/blob\/main\/docs\/cli\/commands.md#custom-commands\">custom commands guide<\/a> for more details.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example: <code class=\"\" data-line=\"\">~\/.gemini\/commands\/test\/gen.toml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># Invoked as: \/test:gen &quot;Create a test for the login button&quot;\ndescription = &quot;Generates a unit test based on a description.&quot;\nprompt = &quot;&quot;&quot;\nYou are an expert test engineer. Based on the following requirement, please write a comprehensive unit test using the Jest testing framework.\n\nRequirement: {{args}}\n&quot;&quot;&quot;<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-20\"  class=\"wp-block-heading\">Extensions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create extensions to add functionality. Place them in <code class=\"\" data-line=\"\">&lt;workspace&gt;\/.gemini\/extensions\/&lt;\/workspace&gt;<\/code> or <code class=\"\" data-line=\"\">~\/.gemini\/extensions\/<\/code>. Each extension is a directory with a <code class=\"\" data-line=\"\">gemini-extension.json<\/code> file that can configure MCP servers, tools, and context files. For more details, see the <a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\/blob\/main\/docs\/extension.md\">extensions guide<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&lt;workspace&gt;\/.gemini\/extensions\/my-extension\/gemini-extension.json&lt;\/workspace&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">{\n  &quot;name&quot;: &quot;my-extension&quot;,\n  &quot;version&quot;: &quot;1.0.0&quot;,\n  &quot;mcpServers&quot;: {\n    &quot;my-server&quot;: {\n      &quot;command&quot;: &quot;node my-server.js&quot;\n    }\n  },\n  &quot;contextFileName&quot;: &quot;GEMINI.md&quot;,\n  &quot;excludeTools&quot;: &#091;&quot;run_shell_command&quot;]\n}<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-21\"  class=\"wp-block-heading\">Checkpointing &#038; Restore<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When <code class=\"\" data-line=\"\">checkpointing<\/code> is on, the CLI saves a project snapshot before tools modify files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Enable in <code class=\"\" data-line=\"\">settings.json<\/code> or with a flag:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">gemini --checkpointing<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Restore to a previous state:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># List available checkpoints\n\/restore\n# Restore a specific checkpoint\n\/restore &lt;checkpoint_file_name&gt;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>gemini-samples\/gemini-cli-cheatsheet.md at main \u00b7 philschmid\/gemini-samples The Gemini CLI is an open-source AI agent that brings the power of Gemini directly into your terminal, allowing you to perform a wide range of tasks such as coding, problem-solving, and task management using natural language. This cheatsheet provides a quick reference for installing, configuring, and using the Gemini&hellip;&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[684,1],"tags":[720],"class_list":["post-2138","post","type-post","status-publish","format-standard","hentry","category-gemini-cli-learn","category-uncategorized","tag-tag-gemini-cli"],"acf":[],"_links":{"self":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts\/2138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/comments?post=2138"}],"version-history":[{"count":0,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts\/2138\/revisions"}],"wp:attachment":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/media?parent=2138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/categories?post=2138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/tags?post=2138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}