Skip to content

Instantly share code, notes, and snippets.

@tillahoffmann
Created July 12, 2025 17:48
Show Gist options
  • Save tillahoffmann/83ac97d9e32cac1689a67954f1a8a191 to your computer and use it in GitHub Desktop.
Save tillahoffmann/83ac97d9e32cac1689a67954f1a8a191 to your computer and use it in GitHub Desktop.
JSON schema for Gemini CLI settings.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Gemini CLI Settings",
"description": "Configuration for the Gemini CLI, based on settings in .gemini/settings.json.",
"type": "object",
"properties": {
"theme": {
"type": "string",
"description": "Sets the visual theme for Gemini CLI."
},
"selectedAuthType": {
"type": "string",
"description": "The selected authentication type.",
"enum": [
"google-auth",
"gemini-api-key"
]
},
"sandbox": {
"type": [
"boolean",
"string"
],
"description": "Controls whether and how to use sandboxing for tool execution. If set to true, Gemini CLI uses a pre-built `gemini-cli-sandbox` Docker image."
},
"coreTools": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of core tool names that should be made available to the model. This can be used to restrict the set of built-in tools."
},
"excludeTools": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of core tool names that should be excluded from the model. A tool listed in both `excludeTools` and `coreTools` is excluded."
},
"toolDiscoveryCommand": {
"type": "string",
"description": "Defines a custom shell command for discovering tools from your project. The shell command must return on `stdout` a JSON array of function declarations."
},
"toolCallCommand": {
"type": "string",
"description": "Defines a custom shell command for calling a specific tool that was discovered using `toolDiscoveryCommand`."
},
"mcpServerCommand": {
"type": "string",
"description": "Defines a custom shell command for starting an MCP server."
},
"mcpServers": {
"type": "object",
"description": "Configures connections to one or more Model-Context Protocol (MCP) servers for discovering and using custom tools.",
"additionalProperties": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"type": "string"
}
},
"env": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"cwd": {
"type": "string"
},
"timeout": {
"type": "number"
},
"trust": {
"type": "boolean"
}
},
"required": [
"command"
]
}
},
"showMemoryUsage": {
"type": "boolean",
"description": "Displays the current memory usage."
},
"contextFileName": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
},
"description": "Specifies the filename for context files (e.g., `GEMINI.md`, `AGENTS.md`). Can be a single filename or a list of accepted filenames."
},
"accessibility": {
"type": "object",
"properties": {
"disableLoadingPhrases": {
"type": "boolean",
"description": "Disables the display of loading phrases."
}
}
},
"telemetry": {
"type": "object",
"description": "Configures logging and metrics collection for Gemini CLI.",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not telemetry is enabled."
},
"target": {
"type": "string",
"description": "The destination for collected telemetry. Supported values are `local` and `gcp`."
},
"otlpEndpoint": {
"type": "string",
"description": "The endpoint for the OTLP Exporter."
},
"logPrompts": {
"type": "boolean",
"description": "Whether or not to include the content of user prompts in the logs."
}
}
},
"usageStatisticsEnabled": {
"type": "boolean",
"description": "Enables or disables the collection of usage statistics."
},
"preferredEditor": {
"type": "string",
"description": "Specifies the preferred editor to use for viewing diffs."
},
"bugCommand": {
"type": "object",
"description": "Overrides the default URL for the `/bug` command.",
"properties": {
"urlTemplate": {
"type": "string",
"description": "A URL that can contain `{title}` and `{info}` placeholders."
}
}
},
"checkpointing": {
"type": "object",
"description": "Configures the checkpointing feature, which allows you to save and restore conversation and file states.",
"properties": {
"enabled": {
"type": "boolean",
"description": "When `true`, the `/restore` command is available."
}
}
},
"autoConfigureMaxOldSpaceSize": {
"type": "boolean",
"description": "Automatically configures the --max-old-space-size for Node.js."
},
"fileFiltering": {
"type": "object",
"description": "Controls git-aware file filtering behavior for @ commands and file discovery tools.",
"properties": {
"respectGitIgnore": {
"type": "boolean",
"description": "Whether to respect .gitignore patterns when discovering files."
},
"enableRecursiveFileSearch": {
"type": "boolean",
"description": "Whether to enable searching recursively for filenames under the current tree when completing @ prefixes in the prompt."
}
}
},
"hideWindowTitle": {
"type": "boolean",
"description": "Does not display the ANSI-controlled terminal title."
},
"hideTips": {
"type": "boolean",
"description": "Enables or disables helpful tips in the CLI interface."
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment