@biggora/claude-plugins 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +3 -1
- package/README.md +7 -22
- package/codex-cli-workspace/iteration-1/benchmark.json +122 -0
- package/codex-cli-workspace/iteration-1/eval-1-ci-integration/eval_metadata.json +13 -0
- package/codex-cli-workspace/iteration-1/eval-1-ci-integration/with_skill/grading.json +52 -0
- package/codex-cli-workspace/iteration-1/eval-1-ci-integration/with_skill/outputs/response.md +163 -0
- package/codex-cli-workspace/iteration-1/eval-1-ci-integration/with_skill/timing.json +5 -0
- package/codex-cli-workspace/iteration-1/eval-1-ci-integration/without_skill/grading.json +58 -0
- package/codex-cli-workspace/iteration-1/eval-1-ci-integration/without_skill/outputs/response.md +151 -0
- package/codex-cli-workspace/iteration-1/eval-1-ci-integration/without_skill/timing.json +5 -0
- package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/eval_metadata.json +13 -0
- package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/grading.json +52 -0
- package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/outputs/response.md +86 -0
- package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/timing.json +5 -0
- package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/grading.json +58 -0
- package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/outputs/response.md +164 -0
- package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/timing.json +5 -0
- package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/eval_metadata.json +13 -0
- package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/with_skill/grading.json +52 -0
- package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/with_skill/outputs/response.md +130 -0
- package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/with_skill/timing.json +5 -0
- package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/without_skill/grading.json +64 -0
- package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/without_skill/outputs/response.md +209 -0
- package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/without_skill/timing.json +5 -0
- package/codex-cli-workspace/iteration-1/review.html +1325 -0
- package/gemini-cli-workspace/iteration-1/benchmark.json +86 -0
- package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/eval_metadata.json +37 -0
- package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/with_skill/grading.json +37 -0
- package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/with_skill/outputs/response.md +401 -0
- package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/with_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/without_skill/grading.json +37 -0
- package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/without_skill/outputs/response.md +405 -0
- package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/without_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/eval_metadata.json +37 -0
- package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/grading.json +37 -0
- package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/outputs/response.md +212 -0
- package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/grading.json +37 -0
- package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/outputs/response.md +427 -0
- package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/eval_metadata.json +32 -0
- package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/with_skill/grading.json +32 -0
- package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/with_skill/outputs/response.md +171 -0
- package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/with_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/without_skill/grading.json +32 -0
- package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/without_skill/outputs/response.md +199 -0
- package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/without_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-1/review.html +1325 -0
- package/gemini-cli-workspace/iteration-2/benchmark.json +173 -0
- package/gemini-cli-workspace/iteration-2/benchmark.md +28 -0
- package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/eval_metadata.json +37 -0
- package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/with_skill/grading.json +37 -0
- package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/with_skill/outputs/response.md +195 -0
- package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/with_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/without_skill/grading.json +37 -0
- package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/without_skill/outputs/response.md +377 -0
- package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/without_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/eval_metadata.json +37 -0
- package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/with_skill/grading.json +37 -0
- package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/with_skill/outputs/response.md +127 -0
- package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/with_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/without_skill/grading.json +37 -0
- package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/without_skill/outputs/response.md +164 -0
- package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/without_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/eval_metadata.json +32 -0
- package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/with_skill/grading.json +32 -0
- package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/with_skill/outputs/response.md +91 -0
- package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/with_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/without_skill/grading.json +32 -0
- package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/without_skill/outputs/response.md +112 -0
- package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/without_skill/timing.json +5 -0
- package/gemini-cli-workspace/iteration-2/eval-viewer.html +1325 -0
- package/package.json +1 -1
- package/registry/registry.json +31 -1
- package/screen-recording-workspace/evals.json +41 -0
- package/screen-recording-workspace/iteration-1/benchmark.json +102 -0
- package/screen-recording-workspace/iteration-1/eval-0-fullscreen/eval_metadata.json +31 -0
- package/screen-recording-workspace/iteration-1/eval-0-fullscreen/with_skill/grading.json +11 -0
- package/screen-recording-workspace/iteration-1/eval-0-fullscreen/with_skill/outputs/demo.mp4 +0 -0
- package/screen-recording-workspace/iteration-1/eval-0-fullscreen/with_skill/timing.json +5 -0
- package/screen-recording-workspace/iteration-1/eval-0-fullscreen/without_skill/grading.json +11 -0
- package/screen-recording-workspace/iteration-1/eval-0-fullscreen/without_skill/outputs/demo.mp4 +0 -0
- package/screen-recording-workspace/iteration-1/eval-0-fullscreen/without_skill/timing.json +5 -0
- package/screen-recording-workspace/iteration-1/eval-1-region-audio/eval_metadata.json +31 -0
- package/screen-recording-workspace/iteration-1/eval-1-region-audio/with_skill/grading.json +11 -0
- package/screen-recording-workspace/iteration-1/eval-1-region-audio/with_skill/outputs/region_capture.mp4 +0 -0
- package/screen-recording-workspace/iteration-1/eval-1-region-audio/with_skill/timing.json +5 -0
- package/screen-recording-workspace/iteration-1/eval-1-region-audio/without_skill/grading.json +11 -0
- package/screen-recording-workspace/iteration-1/eval-1-region-audio/without_skill/outputs/region_capture.mp4 +0 -0
- package/screen-recording-workspace/iteration-1/eval-1-region-audio/without_skill/timing.json +5 -0
- package/screen-recording-workspace/iteration-1/eval-2-python-fallback/eval_metadata.json +31 -0
- package/screen-recording-workspace/iteration-1/eval-2-python-fallback/with_skill/grading.json +11 -0
- package/screen-recording-workspace/iteration-1/eval-2-python-fallback/with_skill/outputs/fallback_recording.mp4 +0 -0
- package/screen-recording-workspace/iteration-1/eval-2-python-fallback/with_skill/timing.json +5 -0
- package/screen-recording-workspace/iteration-1/eval-2-python-fallback/without_skill/grading.json +11 -0
- package/screen-recording-workspace/iteration-1/eval-2-python-fallback/without_skill/outputs/fallback_recording.mp4 +0 -0
- package/screen-recording-workspace/iteration-1/eval-2-python-fallback/without_skill/outputs/record_screen.py +67 -0
- package/screen-recording-workspace/iteration-1/eval-2-python-fallback/without_skill/timing.json +5 -0
- package/screen-recording-workspace/iteration-1/review.html +1325 -0
- package/src/skills/codex-cli/SKILL.md +21 -11
- package/src/skills/codex-cli/evals/evals.json +47 -0
- package/src/skills/gemini-cli/SKILL.md +27 -13
- package/src/skills/gemini-cli/evals/evals.json +46 -0
- package/src/skills/gemini-cli/references/commands.md +21 -14
- package/src/skills/gemini-cli/references/configuration.md +23 -18
- package/src/skills/gemini-cli/references/headless-and-scripting.md +7 -17
- package/src/skills/gemini-cli/references/mcp-and-extensions.md +12 -6
- package/src/skills/notebook-lm/SKILL.md +1 -1
- package/src/skills/screen-recording/SKILL.md +243 -213
- package/src/skills/screen-recording/references/design-patterns.md +4 -2
- package/src/skills/screen-recording/references/ffmpeg-recording.md +473 -0
- package/src/skills/screen-recording/references/{approach1-programmatic.md → programmatic-generation.md} +45 -22
- package/src/skills/screen-recording/references/python-fallback.md +222 -0
- package/src/skills/tm-search/SKILL.md +242 -106
- package/src/skills/tm-search/evals/evals.json +23 -0
- package/src/skills/tm-search/references/scraping-fallback.md +60 -95
- package/src/skills/tm-search/scripts/tm_search.py +453 -375
- package/src/skills/youtube-thumbnail/SKILL.md +11 -1
- package/src/skills/screen-recording/references/approach2-xvfb.md +0 -232
|
@@ -39,17 +39,19 @@ codex e "Update CHANGELOG" # Short alias for exec
|
|
|
39
39
|
## Core Concepts
|
|
40
40
|
|
|
41
41
|
### Approval Modes (`-a` / `--ask-for-approval`)
|
|
42
|
-
Controls when Codex pauses to ask before executing:
|
|
42
|
+
Controls when Codex pauses to ask before executing. The ONLY valid values are:
|
|
43
43
|
|
|
44
|
-
| Mode | Flag | Behavior |
|
|
45
|
-
|
|
46
|
-
| `untrusted` | `-a untrusted` | Max caution — approves almost everything |
|
|
47
|
-
| `on-request` | `-a on-request` | Asks on sensitive actions (default for auto) |
|
|
48
|
-
| `never` | `-a never` | Never asks — runs fully automated |
|
|
49
|
-
| `reject` | `-a reject` | Blocks all tool use |
|
|
44
|
+
| Mode | Flag | Config value | Behavior |
|
|
45
|
+
|------|------|-------------|----------|
|
|
46
|
+
| `untrusted` | `-a untrusted` | `approval_policy = "untrusted"` | Max caution — approves almost everything |
|
|
47
|
+
| `on-request` | `-a on-request` | `approval_policy = "on-request"` | Asks on sensitive actions (default for auto) |
|
|
48
|
+
| `never` | `-a never` | `approval_policy = "never"` | Never asks — runs fully automated |
|
|
49
|
+
| `reject` | `-a reject` | `approval_policy = "reject"` | Blocks all tool use |
|
|
50
|
+
|
|
51
|
+
Note: `--full-auto` is a CLI-only shortcut (equivalent to `-a on-request -s workspace-write`). It is NOT a valid `approval_policy` config value. Values like "suggest", "auto-edit", or "full-auto" do not exist as config values.
|
|
50
52
|
|
|
51
53
|
### Sandbox Modes (`-s` / `--sandbox`)
|
|
52
|
-
Controls filesystem and network access:
|
|
54
|
+
Controls filesystem and network access. The ONLY valid values are:
|
|
53
55
|
|
|
54
56
|
| Mode | Flag | Access |
|
|
55
57
|
|------|------|--------|
|
|
@@ -57,6 +59,8 @@ Controls filesystem and network access:
|
|
|
57
59
|
| `workspace-write` | `-s workspace-write` | Write within working directory only |
|
|
58
60
|
| `danger-full-access` | `-s danger-full-access` | Full system access (use with caution) |
|
|
59
61
|
|
|
62
|
+
Note: There is no `--no-sandbox` flag or `sandbox = "none"` config option. To bypass the sandbox entirely, use `--dangerously-bypass-approvals-and-sandbox` (alias `--yolo`).
|
|
63
|
+
|
|
60
64
|
### Common Combinations
|
|
61
65
|
```bash
|
|
62
66
|
# Safe daily development (recommended)
|
|
@@ -78,6 +82,8 @@ codex --dangerously-bypass-approvals-and-sandbox "task"
|
|
|
78
82
|
|
|
79
83
|
## Configuration (`~/.codex/config.toml`)
|
|
80
84
|
|
|
85
|
+
Config uses **TOML format** (not JSON). The file is `config.toml`, never `config.json`.
|
|
86
|
+
|
|
81
87
|
### Minimal config
|
|
82
88
|
```toml
|
|
83
89
|
model = "gpt-5-codex"
|
|
@@ -101,6 +107,9 @@ animations = true
|
|
|
101
107
|
```
|
|
102
108
|
|
|
103
109
|
### Profiles (for different workflows)
|
|
110
|
+
|
|
111
|
+
Profiles use `[profiles.<name>]` (plural "profiles", not singular "profile"):
|
|
112
|
+
|
|
104
113
|
```toml
|
|
105
114
|
[profiles.ci]
|
|
106
115
|
model = "gpt-5-codex"
|
|
@@ -112,7 +121,7 @@ model_reasoning_effort = "high"
|
|
|
112
121
|
approval_policy = "untrusted"
|
|
113
122
|
```
|
|
114
123
|
|
|
115
|
-
Use a profile: `codex --profile ci "task"` or set `profile = "ci"` at the top level.
|
|
124
|
+
Use a profile: `codex --profile ci "task"` or `codex -p ci "task"`, or set `profile = "ci"` at the top level as default.
|
|
116
125
|
|
|
117
126
|
### Config precedence (highest → lowest)
|
|
118
127
|
1. CLI flags (`--model`, `-c key=value`)
|
|
@@ -124,7 +133,7 @@ Use a profile: `codex --profile ci "task"` or set `profile = "ci"` at the top le
|
|
|
124
133
|
|
|
125
134
|
## Non-Interactive Mode (`codex exec`)
|
|
126
135
|
|
|
127
|
-
|
|
136
|
+
For CI pipelines and shell scripts, always use `codex exec` (not bare `codex`). The `exec` subcommand runs non-interactively and exits when done:
|
|
128
137
|
|
|
129
138
|
```bash
|
|
130
139
|
# Basic
|
|
@@ -195,9 +204,10 @@ env = { GITHUB_TOKEN = "$GITHUB_TOKEN" }
|
|
|
195
204
|
url = "https://my-server.example.com/mcp"
|
|
196
205
|
```
|
|
197
206
|
|
|
198
|
-
Run Codex itself as an MCP server (for other agents to consume):
|
|
207
|
+
Run Codex itself as an MCP server (for other agents to consume) using the `mcp` subcommand (not a flag):
|
|
199
208
|
```bash
|
|
200
209
|
codex mcp
|
|
210
|
+
# Note: this is a subcommand, NOT "codex --mcp-server"
|
|
201
211
|
```
|
|
202
212
|
|
|
203
213
|
---
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "codex-cli",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "I want to set up OpenAI Codex CLI in my GitHub Actions pipeline to auto-fix lint errors on PRs. How do I configure it with full-auto mode and workspace-write sandbox? My OPENAI_API_KEY is stored in GitHub secrets.",
|
|
7
|
+
"expected_output": "Should provide a GitHub Actions workflow YAML with npm install -g @openai/codex, codex exec with --full-auto flag, OPENAI_API_KEY from secrets, and correct sandbox/approval behavior explanation.",
|
|
8
|
+
"files": [],
|
|
9
|
+
"assertions": [
|
|
10
|
+
{"id": "installs-globally", "text": "Shows npm install -g @openai/codex for global installation"},
|
|
11
|
+
{"id": "uses-exec-mode", "text": "Uses 'codex exec' for non-interactive CI mode (not bare 'codex')"},
|
|
12
|
+
{"id": "full-auto-flag", "text": "Uses --full-auto flag and correctly explains it equals -a on-request -s workspace-write"},
|
|
13
|
+
{"id": "api-key-from-secrets", "text": "Shows OPENAI_API_KEY set from ${{ secrets.OPENAI_API_KEY }} in env"},
|
|
14
|
+
{"id": "provides-workflow-yaml", "text": "Provides a complete GitHub Actions workflow YAML snippet"},
|
|
15
|
+
{"id": "no-hallucinated-flags", "text": "Does not invent non-existent CLI flags or options"}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": 2,
|
|
20
|
+
"prompt": "How do I add a custom MCP server to codex CLI? I have a Python-based MCP server that needs a GITHUB_TOKEN env var. Also want to run codex itself as an MCP server for other agents to consume.",
|
|
21
|
+
"expected_output": "Should show ~/.codex/config.toml mcp_servers section with command, args, env fields. Should show 'codex mcp' command for running as MCP server. Should use $GITHUB_TOKEN pattern for env vars.",
|
|
22
|
+
"files": [],
|
|
23
|
+
"assertions": [
|
|
24
|
+
{"id": "correct-config-location", "text": "Points to ~/.codex/config.toml for MCP server configuration"},
|
|
25
|
+
{"id": "mcp-servers-toml-syntax", "text": "Shows [mcp_servers.name] TOML section with command, args fields"},
|
|
26
|
+
{"id": "env-var-dollar-pattern", "text": "Shows $GITHUB_TOKEN or $ENV_VAR pattern for environment variable references"},
|
|
27
|
+
{"id": "codex-as-mcp-server", "text": "Shows 'codex mcp' command for running codex as an MCP server"},
|
|
28
|
+
{"id": "python-command-correct", "text": "Uses correct Python command (python/python3) in the MCP server command field"},
|
|
29
|
+
{"id": "no-hallucinated-config", "text": "Does not invent non-existent config keys or MCP server fields"}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": 3,
|
|
34
|
+
"prompt": "I'm getting Landlock errors on WSL2 when running codex. Also, I need to set up two profiles in config.toml — one for safe daily dev and one for CI with no approvals. How do I fix the Landlock issue and configure the profiles?",
|
|
35
|
+
"expected_output": "Should explain Landlock fix (update WSL2 or use --dangerously-bypass-approvals-and-sandbox in isolated env). Should show config.toml profiles section with [profiles.dev] and [profiles.ci] using correct approval_policy values.",
|
|
36
|
+
"files": [],
|
|
37
|
+
"assertions": [
|
|
38
|
+
{"id": "landlock-wsl-fix", "text": "Mentions updating WSL2 kernel or using --dangerously-bypass-approvals-and-sandbox (--yolo) as workarounds"},
|
|
39
|
+
{"id": "profiles-toml-syntax", "text": "Shows correct [profiles.name] TOML syntax for defining profiles"},
|
|
40
|
+
{"id": "ci-profile-no-approval", "text": "CI profile uses approval_policy = 'never' for fully automated mode"},
|
|
41
|
+
{"id": "dev-profile-safe", "text": "Dev profile uses a safe approval_policy like 'on-request' or 'untrusted'"},
|
|
42
|
+
{"id": "profile-usage-flag", "text": "Shows --profile flag for selecting a profile at runtime"},
|
|
43
|
+
{"id": "no-hallucinated-fixes", "text": "Does not invent non-existent troubleshooting steps or config options"}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
@@ -7,7 +7,7 @@ description: >
|
|
|
7
7
|
prompts with -p flag, configuring settings.json, creating GEMINI.md context files, writing
|
|
8
8
|
custom slash commands (.toml files), connecting MCP servers, creating extensions, automating
|
|
9
9
|
tasks with shell scripts, using --output-format json/stream-json, managing chat sessions,
|
|
10
|
-
using /memory commands, --
|
|
10
|
+
using /memory commands, --auto-approve mode, Application Default Credentials (ADC), or any scripting/automation involving gemini-cli.
|
|
11
11
|
Also trigger when user asks about integrating Gemini models into CLI workflows, CI/CD pipelines,
|
|
12
12
|
or programmatic use of the Gemini API through the CLI tool.
|
|
13
13
|
---
|
|
@@ -66,11 +66,19 @@ gemini
|
|
|
66
66
|
- Free: 1,000 req/day (Gemini Flash/Pro mix)
|
|
67
67
|
- Can also store in `~/.gemini/.env` or `./.gemini/.env`
|
|
68
68
|
|
|
69
|
-
### Option 3:
|
|
69
|
+
### Option 3: Application Default Credentials (ADC)
|
|
70
|
+
```bash
|
|
71
|
+
gcloud auth application-default login
|
|
72
|
+
gemini
|
|
73
|
+
```
|
|
74
|
+
- Uses Google Cloud ADC — no API key needed
|
|
75
|
+
- Best for developers already using Google Cloud
|
|
76
|
+
|
|
77
|
+
### Option 4: Vertex AI (enterprise)
|
|
70
78
|
```bash
|
|
71
|
-
export GOOGLE_API_KEY="your_key"
|
|
72
79
|
export GOOGLE_GENAI_USE_VERTEXAI=true
|
|
73
80
|
export GOOGLE_CLOUD_PROJECT="your-project-id"
|
|
81
|
+
gcloud auth application-default login
|
|
74
82
|
gemini
|
|
75
83
|
```
|
|
76
84
|
|
|
@@ -119,8 +127,8 @@ gemini -p "Run tests and analyze results" --output-format stream-json
|
|
|
119
127
|
# Extract response field with jq
|
|
120
128
|
gemini -p "List top 5 Python testing frameworks" --output-format json | jq -r '.response'
|
|
121
129
|
|
|
122
|
-
# Auto-accept all tool actions (
|
|
123
|
-
gemini -p "Generate unit tests for @./src/utils.js" --
|
|
130
|
+
# Auto-accept all tool actions (auto-approve mode) — use with care in automation
|
|
131
|
+
gemini -p "Generate unit tests for @./src/utils.js" --auto-approve
|
|
124
132
|
```
|
|
125
133
|
|
|
126
134
|
### JSON output schema
|
|
@@ -154,7 +162,7 @@ For full scripting patterns → read `references/headless-and-scripting.md`
|
|
|
154
162
|
| `/restore` | List checkpoints |
|
|
155
163
|
| `/restore <file>` | Restore a checkpoint |
|
|
156
164
|
| `/bug` | Report an issue directly from CLI |
|
|
157
|
-
| `Ctrl+Y` | Toggle
|
|
165
|
+
| `Ctrl+Y` | Toggle auto-approve mode |
|
|
158
166
|
|
|
159
167
|
---
|
|
160
168
|
|
|
@@ -226,11 +234,17 @@ Location: `~/.gemini/settings.json` (global) or `<project>/.gemini/settings.json
|
|
|
226
234
|
|
|
227
235
|
```json
|
|
228
236
|
{
|
|
229
|
-
"model":
|
|
230
|
-
|
|
237
|
+
"model": {
|
|
238
|
+
"name": "gemini-2.5-pro"
|
|
239
|
+
},
|
|
240
|
+
"theme": {
|
|
241
|
+
"name": "dark"
|
|
242
|
+
},
|
|
231
243
|
"autoAccept": false,
|
|
232
|
-
"
|
|
233
|
-
|
|
244
|
+
"tools": {
|
|
245
|
+
"core": ["read_file", "write_file", "run_shell_command"],
|
|
246
|
+
"disabled": ["dangerous_tool"]
|
|
247
|
+
},
|
|
234
248
|
"mcpServers": {
|
|
235
249
|
"github": {
|
|
236
250
|
"command": "npx",
|
|
@@ -288,7 +302,7 @@ Extensions bundle MCP servers + GEMINI.md + custom commands into a reusable pack
|
|
|
288
302
|
|
|
289
303
|
**Install from URL:**
|
|
290
304
|
```bash
|
|
291
|
-
gemini
|
|
305
|
+
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
|
|
292
306
|
```
|
|
293
307
|
|
|
294
308
|
**Browse gallery:** https://geminicli.com/extensions/
|
|
@@ -347,7 +361,7 @@ echo "$result" | jq -r '.response' > openapi.json
|
|
|
347
361
|
export GEMINI_API_KEY="${{ secrets.GEMINI_API_KEY }}"
|
|
348
362
|
gemini -p "Analyze test failures in @./test-results.xml and suggest fixes" \
|
|
349
363
|
--output-format json \
|
|
350
|
-
--
|
|
364
|
+
--auto-approve \
|
|
351
365
|
| jq -r '.response'
|
|
352
366
|
```
|
|
353
367
|
|
|
@@ -374,6 +388,6 @@ For Vertex AI: additional enterprise models available.
|
|
|
374
388
|
| Rate limit errors | Free tier: 60 req/min, 1000/day — wait or upgrade |
|
|
375
389
|
| MCP server not connecting | Check `/mcp status`, verify server binary is installed |
|
|
376
390
|
| Slash command not recognized in headless | Known limitation — embed prompt text directly for now |
|
|
377
|
-
| Tool confirmation loops | Add `--
|
|
391
|
+
| Tool confirmation loops | Add `--auto-approve` flag for automation, or set `"autoAccept": true` in settings |
|
|
378
392
|
|
|
379
393
|
Full troubleshooting: https://geminicli.com/docs/resources/troubleshooting/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "gemini-cli",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "I want to set up gemini cli in my CI/CD pipeline on GitHub Actions so it can automatically review PRs. We use an API key stored in GitHub secrets. How do I set this up with structured JSON output so I can parse the review?",
|
|
7
|
+
"expected_output": "Should provide a GitHub Actions workflow snippet using GEMINI_API_KEY from secrets, -p flag for headless mode, --output-format json, and jq for parsing. Should mention --yolo if tool actions are needed.",
|
|
8
|
+
"files": [],
|
|
9
|
+
"assertions": [
|
|
10
|
+
{"id": "mentions-p-flag", "text": "Uses -p or --prompt flag for headless/non-interactive mode"},
|
|
11
|
+
{"id": "mentions-json-output", "text": "Includes --output-format json flag for structured output"},
|
|
12
|
+
{"id": "mentions-api-key-env", "text": "Shows how to set GEMINI_API_KEY from GitHub secrets"},
|
|
13
|
+
{"id": "provides-workflow-yaml", "text": "Provides a GitHub Actions workflow YAML snippet"},
|
|
14
|
+
{"id": "mentions-jq-parsing", "text": "Shows how to parse JSON response (e.g., with jq .response)"},
|
|
15
|
+
{"id": "no-hallucinated-flags", "text": "Does not invent non-existent CLI flags or options"}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": 2,
|
|
20
|
+
"prompt": "I need to connect a custom MCP server I built in Python to gemini cli. The server needs an API key from my environment. Also I want to restrict which tools it can expose. How do I configure this?",
|
|
21
|
+
"expected_output": "Should explain settings.json mcpServers config with command, args, env ($VAR pattern), and includeTools/excludeTools. Should mention trust field and security considerations.",
|
|
22
|
+
"files": [],
|
|
23
|
+
"assertions": [
|
|
24
|
+
{"id": "correct-settings-location", "text": "Points to ~/.gemini/settings.json or project-level settings.json"},
|
|
25
|
+
{"id": "shows-mcp-config-structure", "text": "Shows mcpServers config with command, args fields"},
|
|
26
|
+
{"id": "env-var-dollar-pattern", "text": "Shows $VAR pattern for environment variable references in env field"},
|
|
27
|
+
{"id": "tool-filtering", "text": "Explains includeTools and/or excludeTools for restricting exposed tools"},
|
|
28
|
+
{"id": "security-note", "text": "Mentions security considerations (trust field, not hardcoding keys, etc.)"},
|
|
29
|
+
{"id": "python-command-correct", "text": "Uses correct Python command (python/python3) in the command field"}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": 3,
|
|
34
|
+
"prompt": "How do I create a custom slash command in gemini cli that runs git diff --cached and asks the AI to write a commit message? I want it available in all my projects.",
|
|
35
|
+
"expected_output": "Should provide a .toml file in ~/.gemini/commands/ with !{git diff --cached} shell syntax and prompt template. Should mention headless limitation.",
|
|
36
|
+
"files": [],
|
|
37
|
+
"assertions": [
|
|
38
|
+
{"id": "correct-file-location", "text": "Points to ~/.gemini/commands/ for global user-scoped commands"},
|
|
39
|
+
{"id": "toml-format", "text": "Shows .toml file format with prompt field"},
|
|
40
|
+
{"id": "shell-execution-syntax", "text": "Uses !{git diff --cached} shell execution syntax in the prompt"},
|
|
41
|
+
{"id": "mentions-headless-limitation", "text": "Warns that custom slash commands don't work in headless/non-interactive mode"},
|
|
42
|
+
{"id": "complete-working-example", "text": "Provides a complete, copy-pasteable .toml file example"}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
@@ -10,11 +10,9 @@ Options:
|
|
|
10
10
|
-m, --model <model> Model to use (e.g., gemini-2.5-pro)
|
|
11
11
|
--output-format <format> Output format: text (default), json, stream-json
|
|
12
12
|
--include-directories <dirs> Comma-separated extra directories to include
|
|
13
|
-
--
|
|
13
|
+
--auto-approve Auto-accept all tool actions (no confirmations)
|
|
14
14
|
--resume <session-id> Resume a previous session
|
|
15
|
-
--
|
|
16
|
-
--raw-output Disable ANSI codes in output
|
|
17
|
-
--debug-log <path> Write debug JSONL log to file
|
|
15
|
+
--sandbox <type> Run in sandboxed environment (docker, podman, etc.)
|
|
18
16
|
-v, --version Show version
|
|
19
17
|
-h, --help Show help
|
|
20
18
|
```
|
|
@@ -56,6 +54,13 @@ Options:
|
|
|
56
54
|
| `/chat resume <name>` | Resume a saved conversation |
|
|
57
55
|
| `/chat list` | List saved conversations |
|
|
58
56
|
|
|
57
|
+
### Context / Compaction
|
|
58
|
+
|
|
59
|
+
| Command | Description |
|
|
60
|
+
|---|---|
|
|
61
|
+
| `/compact` | Compact conversation context (free tokens) |
|
|
62
|
+
| `/diff` | Show diff of changes made in current session |
|
|
63
|
+
|
|
59
64
|
### Memory
|
|
60
65
|
|
|
61
66
|
| Command | Description |
|
|
@@ -63,6 +68,7 @@ Options:
|
|
|
63
68
|
| `/memory add <text>` | Add a persistent fact to GEMINI.md |
|
|
64
69
|
| `/memory show` | Display current memory contents |
|
|
65
70
|
| `/memory clear` | Clear all memory entries |
|
|
71
|
+
| `/memory reload` | Reload memory from disk |
|
|
66
72
|
|
|
67
73
|
### Checkpointing
|
|
68
74
|
|
|
@@ -75,9 +81,9 @@ Options:
|
|
|
75
81
|
|
|
76
82
|
| Command | Description |
|
|
77
83
|
|---|---|
|
|
78
|
-
| `/
|
|
79
|
-
| `/
|
|
80
|
-
| `/
|
|
84
|
+
| `/extensions list` | List installed extensions |
|
|
85
|
+
| `/extensions enable <n>` | Enable an extension |
|
|
86
|
+
| `/extensions disable <n>` | Disable an extension |
|
|
81
87
|
|
|
82
88
|
### Theme
|
|
83
89
|
|
|
@@ -95,7 +101,7 @@ Options:
|
|
|
95
101
|
| `replace` | Replace text in files (old_string → new_string) |
|
|
96
102
|
| `list_directory` | List directory contents |
|
|
97
103
|
| `glob` | Find files by pattern |
|
|
98
|
-
| `
|
|
104
|
+
| `grep_search` | Search within files by pattern |
|
|
99
105
|
| `run_shell_command` | Execute shell commands |
|
|
100
106
|
| `google_web_search` | Search the web (Google Search grounding) |
|
|
101
107
|
| `web_fetch` | Fetch URL content |
|
|
@@ -123,10 +129,11 @@ gemini -p "Summarize @https://github.com/org/repo/README.md"
|
|
|
123
129
|
|---|---|
|
|
124
130
|
| `Ctrl+C` | Cancel current operation |
|
|
125
131
|
| `Ctrl+D` | Exit |
|
|
126
|
-
| `Ctrl+Y` | Toggle
|
|
132
|
+
| `Ctrl+Y` | Toggle auto-approve mode (auto-accept tools) |
|
|
127
133
|
| `Ctrl+L` | Clear screen |
|
|
134
|
+
| `Ctrl+J` | Insert newline (multi-line input) |
|
|
128
135
|
| `↑ / ↓` | Navigate input history |
|
|
129
|
-
| `Tab` | Autocomplete slash commands |
|
|
136
|
+
| `Tab` | Autocomplete slash commands and file paths |
|
|
130
137
|
|
|
131
138
|
## gemini mcp CLI Commands (outside session)
|
|
132
139
|
|
|
@@ -136,10 +143,10 @@ gemini mcp list
|
|
|
136
143
|
gemini mcp remove <n>
|
|
137
144
|
```
|
|
138
145
|
|
|
139
|
-
## gemini
|
|
146
|
+
## gemini extensions CLI Commands (outside session)
|
|
140
147
|
|
|
141
148
|
```bash
|
|
142
|
-
gemini
|
|
143
|
-
gemini
|
|
144
|
-
gemini
|
|
149
|
+
gemini extensions install <url>
|
|
150
|
+
gemini extensions list
|
|
151
|
+
gemini extensions remove <n>
|
|
145
152
|
```
|
|
@@ -17,20 +17,25 @@
|
|
|
17
17
|
|
|
18
18
|
```json
|
|
19
19
|
{
|
|
20
|
-
// Model selection
|
|
21
|
-
"model":
|
|
20
|
+
// Model selection (nested under "model" object)
|
|
21
|
+
"model": {
|
|
22
|
+
"name": "gemini-2.5-pro"
|
|
23
|
+
},
|
|
22
24
|
|
|
23
|
-
// UI theme
|
|
24
|
-
"theme":
|
|
25
|
+
// UI theme (nested under "theme" object)
|
|
26
|
+
"theme": {
|
|
27
|
+
"name": "dark"
|
|
28
|
+
},
|
|
25
29
|
|
|
26
|
-
// Auto-accept all tool confirmations (like --
|
|
30
|
+
// Auto-accept all tool confirmations (like --auto-approve)
|
|
27
31
|
"autoAccept": false,
|
|
28
32
|
|
|
29
|
-
// Tools
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
// Tools configuration (nested under "tools" object)
|
|
34
|
+
"tools": {
|
|
35
|
+
"core": ["read_file", "write_file", "run_shell_command", "google_web_search"],
|
|
36
|
+
"allowed": ["my_custom_tool"],
|
|
37
|
+
"disabled": ["dangerous_tool_name"]
|
|
38
|
+
},
|
|
34
39
|
|
|
35
40
|
// Generation parameters
|
|
36
41
|
"generationConfig": {
|
|
@@ -48,7 +53,7 @@
|
|
|
48
53
|
"env": {
|
|
49
54
|
"API_KEY": "$MY_ENV_VAR"
|
|
50
55
|
},
|
|
51
|
-
"timeout":
|
|
56
|
+
"timeout": 600000,
|
|
52
57
|
"trust": false,
|
|
53
58
|
"includeTools": ["safe_tool_1"],
|
|
54
59
|
"excludeTools": ["unsafe_tool"]
|
|
@@ -107,6 +112,7 @@ Main services: auth, api, worker.
|
|
|
107
112
|
```
|
|
108
113
|
/memory add "Staging database is on port 5432"
|
|
109
114
|
/memory show
|
|
115
|
+
/memory reload # reload from disk after external edits
|
|
110
116
|
```
|
|
111
117
|
(Writes to `~/.gemini/GEMINI.md`)
|
|
112
118
|
|
|
@@ -130,6 +136,9 @@ Gemini CLI also respects `.gitignore` automatically.
|
|
|
130
136
|
|
|
131
137
|
```json
|
|
132
138
|
{
|
|
139
|
+
"model": {
|
|
140
|
+
"name": "gemini-2.5-pro"
|
|
141
|
+
},
|
|
133
142
|
"generationConfig": {
|
|
134
143
|
"temperature": 1.0,
|
|
135
144
|
"topP": 0.95,
|
|
@@ -146,19 +155,15 @@ Gemini CLI also respects `.gitignore` automatically.
|
|
|
146
155
|
|
|
147
156
|
## System Prompt Override
|
|
148
157
|
|
|
149
|
-
Override the
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
gemini --system-prompt "You are a strict TypeScript reviewer. Only respond with code issues."
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
Or via settings.json:
|
|
158
|
+
Override the system prompt via settings.json:
|
|
156
159
|
```json
|
|
157
160
|
{
|
|
158
161
|
"systemPrompt": "You are a helpful assistant for Python development."
|
|
159
162
|
}
|
|
160
163
|
```
|
|
161
164
|
|
|
165
|
+
Or use GEMINI.md context files to provide project-specific instructions (preferred approach).
|
|
166
|
+
|
|
162
167
|
## Trusted Folders
|
|
163
168
|
|
|
164
169
|
Control which directories allow shell command execution:
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
|---|---|
|
|
61
61
|
| 0 | Success |
|
|
62
62
|
| 1 | General error |
|
|
63
|
-
|
|
|
64
|
-
|
|
|
63
|
+
| 42 | Input error (invalid arguments, missing config) |
|
|
64
|
+
| 53 | Turn limit exceeded |
|
|
65
65
|
|
|
66
66
|
## Session Management in Headless Mode
|
|
67
67
|
|
|
@@ -74,9 +74,8 @@ gemini -p "Continue from where we left off" --resume <session_id>
|
|
|
74
74
|
|
|
75
75
|
## Input Sources (merged in order)
|
|
76
76
|
|
|
77
|
-
1.
|
|
78
|
-
2.
|
|
79
|
-
3. `-p` prompt argument
|
|
77
|
+
1. Stdin pipe
|
|
78
|
+
2. `-p` prompt argument
|
|
80
79
|
|
|
81
80
|
## Bash Scripting Patterns
|
|
82
81
|
|
|
@@ -104,10 +103,10 @@ echo "$RESULT" | jq -r '.response'
|
|
|
104
103
|
git log --oneline -20 | gemini -p "Summarize the recent development activity"
|
|
105
104
|
```
|
|
106
105
|
|
|
107
|
-
### Pattern 5: Auto-accept all tool actions (
|
|
106
|
+
### Pattern 5: Auto-accept all tool actions (auto-approve)
|
|
108
107
|
```bash
|
|
109
108
|
# For CI pipelines where no human is present
|
|
110
|
-
gemini -p "Fix lint errors in @./src/ and save changes" --
|
|
109
|
+
gemini -p "Fix lint errors in @./src/ and save changes" --auto-approve --output-format json
|
|
111
110
|
```
|
|
112
111
|
|
|
113
112
|
### Pattern 6: Batch processing multiple files
|
|
@@ -115,7 +114,7 @@ gemini -p "Fix lint errors in @./src/ and save changes" --yolo --output-format j
|
|
|
115
114
|
#!/bin/bash
|
|
116
115
|
for py_file in $(find src -name "*.py"); do
|
|
117
116
|
echo "Processing: $py_file"
|
|
118
|
-
gemini -p "Add type hints to @$py_file and save" --
|
|
117
|
+
gemini -p "Add type hints to @$py_file and save" --auto-approve
|
|
119
118
|
done
|
|
120
119
|
```
|
|
121
120
|
|
|
@@ -166,15 +165,6 @@ $output.response > data.json
|
|
|
166
165
|
echo "$REVIEW" >> $GITHUB_STEP_SUMMARY
|
|
167
166
|
```
|
|
168
167
|
|
|
169
|
-
## Logging / Debugging
|
|
170
|
-
|
|
171
|
-
```bash
|
|
172
|
-
# Enable debug logging to file
|
|
173
|
-
gemini -p "My prompt" --debug-log ./gemini-debug.jsonl
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
The log file captures all API interactions and tool executions as JSONL events.
|
|
177
|
-
|
|
178
168
|
## Known Limitations
|
|
179
169
|
|
|
180
170
|
- Custom slash commands (`.toml`) currently do NOT work in headless/non-interactive mode (open issue). Workaround: embed the full prompt text directly in your script.
|
|
@@ -49,10 +49,13 @@ resources to Gemini CLI. MCP servers act as a bridge between Gemini and external
|
|
|
49
49
|
| `args` | string[] | Arguments array |
|
|
50
50
|
| `cwd` | string | Working directory |
|
|
51
51
|
| `env` | object | Environment variables (use `"$VAR"` to reference env) |
|
|
52
|
-
| `timeout` | number | Connection timeout in ms (default:
|
|
52
|
+
| `timeout` | number | Connection timeout in ms (default: 600000 — 10 minutes) |
|
|
53
53
|
| `trust` | boolean | Skip all confirmation dialogs (use with caution) |
|
|
54
54
|
| `includeTools` | string[] | Whitelist of tools to expose |
|
|
55
55
|
| `excludeTools` | string[] | Blacklist of tools to hide |
|
|
56
|
+
| `description` | string | Human-readable description of the server |
|
|
57
|
+
| `httpUrl` | string | HTTP endpoint URL (for streamable HTTP transport) |
|
|
58
|
+
| `headers` | object | Custom HTTP headers for remote connections |
|
|
56
59
|
|
|
57
60
|
## Remote MCP Servers (SSE/HTTP)
|
|
58
61
|
|
|
@@ -128,7 +131,7 @@ Extensions bundle together MCP servers, context files, and custom commands into
|
|
|
128
131
|
|
|
129
132
|
### Install from Git URL
|
|
130
133
|
```bash
|
|
131
|
-
gemini
|
|
134
|
+
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
|
|
132
135
|
```
|
|
133
136
|
|
|
134
137
|
### Browse the gallery
|
|
@@ -176,9 +179,9 @@ my-extension/
|
|
|
176
179
|
### Managing Extensions
|
|
177
180
|
|
|
178
181
|
```
|
|
179
|
-
/
|
|
180
|
-
/
|
|
181
|
-
/
|
|
182
|
+
/extensions list # list installed extensions
|
|
183
|
+
/extensions enable <n> # enable extension
|
|
184
|
+
/extensions disable <n> # disable extension
|
|
182
185
|
```
|
|
183
186
|
|
|
184
187
|
---
|
|
@@ -206,9 +209,12 @@ description = "What this command does"
|
|
|
206
209
|
# Use {{args}} to insert all user-provided arguments
|
|
207
210
|
prompt = "Review this code: {{args}}"
|
|
208
211
|
|
|
209
|
-
# Shell command execution
|
|
212
|
+
# Shell command execution
|
|
210
213
|
prompt = "Review staged changes:\n!{git diff --cached}"
|
|
211
214
|
|
|
215
|
+
# File content injection
|
|
216
|
+
prompt = "Review this config:\n@{./config.json}"
|
|
217
|
+
|
|
212
218
|
# Combined example
|
|
213
219
|
description = "Commit with AI message"
|
|
214
220
|
prompt = """
|