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.
IDgemini06 / 1317 paths · env + project
Harness

Google Gemini CLI

  • gemini

Headless -p mode, settings.json per scope, audio through read_file.

Invoke
2 of 6 · official
Models
no listing
MCP
json · standard
Agents file
~/.gemini/GEMINI.md
Inferred 0 / 17

Access

GetgetHarness("gemini")
CLIharnesses paths gemini --json
Trygemini in the explorer

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. The request that asked for it: google-gemini/gemini-cli#27194.

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: yes
  • vision: yes
  • audio: yes
  • video: no
  • tools: yes
  • streaming: yes

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

Callinvoke(prompt, options)2 of 6 modes
  • 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}, ${TMPDIR} 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.

PathsgetHarness("gemini")17 templates · 6 groups

config

  • ~/.gemini/settings.jsonuserofficialall
  • .gemini/settings.jsonprojectofficialall
  • /etc/gemini-cli/settings.jsonsystemofficiallinux
  • /Library/Application Support/GeminiCli/settings.jsonsystemofficialdarwin
  • %PROGRAMDATA%/gemini-cli/settings.jsonsystemofficialwin32

sessions

  • ~/.gemini/history/<project-id>/dataofficialall

    Conversation history per project (project-id is a slug from projects.json).

  • ~/.gemini/tmp/<project-id>/chats/dataofficialall

    Active chat session data.

instructions

  • GEMINI.mdprojectofficialall
  • ~/.gemini/GEMINI.mduserofficialall

    Global instruction/memory file.

skills

  • .gemini/skills/projectofficialall
  • .agents/skills/projectofficialall
  • ~/.gemini/skills/userofficialall
  • ~/.agents/skills/userofficialall

commands

  • .gemini/commands/projectofficialall

    Custom commands in TOML format.

  • ~/.gemini/commands/userofficialall

    Global custom commands in TOML format.

promptTemplates

  • .gemini/commands/projectofficialall

    Custom commands in TOML format.

  • ~/.gemini/commands/userofficialall

    Global custom commands in TOML format.

Empty

hookstempThat is not the same as the feature being missing.

MCP servers

FilemcpConfigs2 files
  • ~/.gemini/settings.jsonuser · json · standard · mcpServers
  • .gemini/settings.jsonproject · json · standard · mcpServers

Detection

CalldetectHarness()env, then project

envVars

  • GEMINI_CLI

projectMarkers

  • .gemini
  • GEMINI.md

Persistence

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

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