Harnesses

Gemini CLI

Google's CLI. Headless -p mode, settings.json at user, project and system scope with a Windows path, audio through read_file, commands in TOML.
getHarness
getHarness("gemini")
binary
gemini
invoke modes
2 of 6 · official
model listing
no
mcp config
json · standard
agents file
~/.gemini/GEMINI.md

Gemini CLI is the one harness with a %PROGRAMDATA% path, for the managed settings on Windows, and one of two with a verified native audio route: its read_file tool accepts audio files. Video is not documented and is recorded as false with the request that asked for it linked from the README.

Sessions are JSON under ~/.gemini/history/<project-id>/, where the id is a slug from projects.json rather than the path, so the note is there. Custom commands are TOML files. The global instructions file is ~/.gemini/GEMINI.md, and syncAgentsFiles links it like any other.

Capabilities and invocation

mcp: yesvision: yesaudio: yesvideo: notools: yesstreaming: yes

Binary gemini, evidence official. Non-interactive (headless) mode. Model selection appends --model {model}.

advisor

{}

rejected

advisor · json

{ structured: true }

rejected

read-only

{ readOnly: true }

rejected

read-only · json

{ readOnly: true, structured: true }

rejected

agent

{ tools: true }

-p {prompt}

agent · json

{ tools: true, structured: true }

-p {prompt} --output-format json

Paths

Templates as the registry stores them. ~, ${HOME} and %VAR% expand in resolve(); entries tagged with a platform are dropped on the others. Open in the explorer to see them expanded for a home directory of your choice.

config

  • ~/.gemini/settings.jsonuser · official · all
  • .gemini/settings.jsonproject · official · all
  • /etc/gemini-cli/settings.jsonsystem · official · linux
  • /Library/Application Support/GeminiCli/settings.jsonsystem · official · darwin
  • %PROGRAMDATA%/gemini-cli/settings.jsonsystem · official · win32

sessions

  • ~/.gemini/history/<project-id>/data · official · allConversation history per project (project-id is a slug from projects.json).
  • ~/.gemini/tmp/<project-id>/chats/data · official · allActive chat session data.

instructions

  • GEMINI.mdproject · official · all
  • ~/.gemini/GEMINI.mduser · official · allGlobal instruction/memory file.

skills

  • .gemini/skills/project · official · all
  • .agents/skills/project · official · all
  • ~/.gemini/skills/user · official · all
  • ~/.agents/skills/user · official · all

commands

  • .gemini/commands/project · official · allCustom commands in TOML format.
  • ~/.gemini/commands/user · official · allGlobal custom commands in TOML format.

empty

hooks No known location. That is not the same as the feature being missing.

MCP servers

~/.gemini/settings.jsonuser · json · standard · mcpServers
.gemini/settings.jsonproject · json · standard · mcpServers

Detection

envVars

GEMINI_CLI

projectMarkers

.geminiGEMINI.md

Persistence

  • JSON - Settings files. (official)
  • JSON - Session and history records. (official)

syncAgentsFiles links ~/.gemini/GEMINI.md to the master bundle.

@agntn/harnesses·MIT license· Paths follow the upstream CLIs and carry their evidence level. This site reads nothing from your machine.