@thacio/auditaria 0.30.12 → 0.30.13
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/README.md +14 -10
- package/bundle/docs/admin/enterprise-controls.md +115 -0
- package/bundle/docs/changelogs/index.md +20 -1
- package/bundle/docs/changelogs/latest.md +359 -293
- package/bundle/docs/changelogs/preview.md +296 -349
- package/bundle/docs/cli/checkpointing.md +2 -3
- package/bundle/docs/cli/cli-reference.md +4 -5
- package/bundle/docs/cli/commands.md +376 -650
- package/bundle/docs/cli/custom-commands.md +3 -0
- package/bundle/docs/cli/enterprise.md +1 -1
- package/bundle/docs/cli/gemini-md.md +20 -12
- package/bundle/docs/cli/headless.md +34 -372
- package/bundle/docs/cli/keyboard-shortcuts.md +36 -35
- package/bundle/docs/cli/plan-mode.md +5 -1
- package/bundle/docs/cli/rewind.md +11 -11
- package/bundle/docs/cli/session-management.md +61 -44
- package/bundle/docs/cli/settings.md +10 -5
- package/bundle/docs/cli/skills.md +15 -8
- package/bundle/docs/cli/themes.md +85 -51
- package/bundle/docs/cli/tutorials/automation.md +187 -0
- package/bundle/docs/cli/tutorials/file-management.md +142 -0
- package/bundle/docs/cli/tutorials/mcp-setup.md +105 -0
- package/bundle/docs/cli/tutorials/memory-management.md +126 -0
- package/bundle/docs/cli/tutorials/session-management.md +105 -0
- package/bundle/docs/cli/tutorials/shell-commands.md +107 -0
- package/bundle/docs/cli/tutorials/skills-getting-started.md +36 -31
- package/bundle/docs/cli/tutorials/task-planning.md +93 -0
- package/bundle/docs/cli/tutorials/web-tools.md +78 -0
- package/bundle/docs/core/policy-engine.md +4 -2
- package/bundle/docs/core/subagents.md +38 -38
- package/bundle/docs/extensions/best-practices.md +102 -53
- package/bundle/docs/extensions/index.md +37 -21
- package/bundle/docs/extensions/reference.md +148 -216
- package/bundle/docs/extensions/releasing.md +93 -122
- package/bundle/docs/extensions/writing-extensions.md +87 -76
- package/bundle/docs/get-started/configuration.md +103 -61
- package/bundle/docs/get-started/examples.md +39 -119
- package/bundle/docs/get-started/index.md +5 -4
- package/bundle/docs/get-started/installation.md +110 -77
- package/bundle/docs/index.md +156 -108
- package/bundle/docs/releases.md +2 -2
- package/bundle/docs/sidebar.json +101 -61
- package/bundle/docs/tools/activate-skill.md +43 -0
- package/bundle/docs/tools/ask-user.md +1 -1
- package/bundle/docs/tools/file-system.md +43 -133
- package/bundle/docs/tools/index.md +92 -91
- package/bundle/docs/tools/internal-docs.md +46 -0
- package/bundle/docs/tools/mcp-server.md +2 -2
- package/bundle/docs/tools/memory.md +21 -40
- package/bundle/docs/tools/shell.md +43 -88
- package/bundle/docs/tools/todos.md +22 -44
- package/bundle/docs/tools/web-fetch.md +22 -46
- package/bundle/docs/tools/web-search.md +19 -29
- package/bundle/gemini.js +138221 -136590
- package/bundle/mcp-bridge.js +154 -143
- package/bundle/node_modules/@browserbasehq/stagehand/dist/index.js +430 -257
- package/bundle/node_modules/@thacio/auditaria-search/dist/tsconfig.tsbuildinfo +1 -1
- package/bundle/web-client/components/EditorPanel.js +57 -36
- package/bundle/web-client/components/FileTreePanel.js +77 -2
- package/bundle/web-client/index.html +5 -1
- package/bundle/web-client/managers/EditorManager.js +190 -24
- package/bundle/web-client/styles/themes.css +376 -0
- package/bundle/web-client/utils/theme-manager.js +33 -1
- package/package.json +6 -6
- package/bundle/docs/architecture.md +0 -80
- package/bundle/docs/cli/index.md +0 -67
- package/bundle/docs/cli/tutorials.md +0 -87
- package/bundle/docs/get-started/configuration-v1.md +0 -882
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Execute shell commands
|
|
2
|
+
|
|
3
|
+
Use the CLI to run builds, manage git, and automate system tasks without leaving
|
|
4
|
+
the conversation. In this guide, you'll learn how to run commands directly,
|
|
5
|
+
automate complex workflows, and manage background processes safely.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
- Gemini CLI installed and authenticated.
|
|
10
|
+
- Basic familiarity with your system's shell (Bash, Zsh, PowerShell, etc.).
|
|
11
|
+
|
|
12
|
+
## How to run commands directly (`!`)
|
|
13
|
+
|
|
14
|
+
Sometimes you just need to check a file size or git status without asking the AI
|
|
15
|
+
to do it for you. You can pass commands directly to your shell using the `!`
|
|
16
|
+
prefix.
|
|
17
|
+
|
|
18
|
+
**Example:** `!ls -la`
|
|
19
|
+
|
|
20
|
+
This executes `ls -la` immediately and prints the output to your terminal. The
|
|
21
|
+
AI doesn't "see" this output unless you paste it back into the chat or use it in
|
|
22
|
+
a prompt.
|
|
23
|
+
|
|
24
|
+
### Scenario: Entering Shell mode
|
|
25
|
+
|
|
26
|
+
If you're doing a lot of manual work, toggle "Shell Mode" by typing `!` and
|
|
27
|
+
pressing **Enter**. Now, everything you type is sent to the shell until you exit
|
|
28
|
+
(usually by pressing **Esc** or typing `exit`).
|
|
29
|
+
|
|
30
|
+
## How to automate complex tasks
|
|
31
|
+
|
|
32
|
+
You can automate tasks using a combination of Gemini CLI and shell commands.
|
|
33
|
+
|
|
34
|
+
### Scenario: Run tests and fix failures
|
|
35
|
+
|
|
36
|
+
You want to run tests and fix any failures.
|
|
37
|
+
|
|
38
|
+
**Prompt:**
|
|
39
|
+
`Run the unit tests. If any fail, analyze the error and try to fix the code.`
|
|
40
|
+
|
|
41
|
+
**Workflow:**
|
|
42
|
+
|
|
43
|
+
1. Gemini calls `run_shell_command('npm test')`.
|
|
44
|
+
2. You see a confirmation prompt: `Allow command 'npm test'? [y/N]`.
|
|
45
|
+
3. You press `y`.
|
|
46
|
+
4. The tests run. If they fail, Gemini reads the error output.
|
|
47
|
+
5. Gemini uses `read_file` to inspect the failing test.
|
|
48
|
+
6. Gemini uses `replace` to fix the bug.
|
|
49
|
+
7. Gemini runs `npm test` again to verify the fix.
|
|
50
|
+
|
|
51
|
+
This loop turns Gemini into an autonomous engineer.
|
|
52
|
+
|
|
53
|
+
## How to manage background processes
|
|
54
|
+
|
|
55
|
+
You can ask Gemini to start long-running tasks, like development servers or file
|
|
56
|
+
watchers.
|
|
57
|
+
|
|
58
|
+
**Prompt:** `Start the React dev server in the background.`
|
|
59
|
+
|
|
60
|
+
Gemini will run the command (e.g., `npm run dev`) and detach it.
|
|
61
|
+
|
|
62
|
+
### Scenario: Viewing active shells
|
|
63
|
+
|
|
64
|
+
To see what's running in the background, use the `/shells` command.
|
|
65
|
+
|
|
66
|
+
**Command:** `/shells`
|
|
67
|
+
|
|
68
|
+
This opens a dashboard where you can view logs or kill runaway processes.
|
|
69
|
+
|
|
70
|
+
## How to handle interactive commands
|
|
71
|
+
|
|
72
|
+
Gemini CLI attempts to handle interactive commands (like `git add -p` or
|
|
73
|
+
confirmation prompts) by streaming the output to you. However, for highly
|
|
74
|
+
interactive tools (like `vim` or `top`), it's often better to run them yourself
|
|
75
|
+
in a separate terminal window or use the `!` prefix.
|
|
76
|
+
|
|
77
|
+
## Safety first
|
|
78
|
+
|
|
79
|
+
Giving an AI access to your shell is powerful but risky. Gemini CLI includes
|
|
80
|
+
several safety layers.
|
|
81
|
+
|
|
82
|
+
### Confirmation prompts
|
|
83
|
+
|
|
84
|
+
By default, **every** shell command requested by the agent requires your
|
|
85
|
+
explicit approval.
|
|
86
|
+
|
|
87
|
+
- **Allow once:** Runs the command one time.
|
|
88
|
+
- **Allow always:** Trusts this specific command for the rest of the session.
|
|
89
|
+
- **Deny:** Stops the agent.
|
|
90
|
+
|
|
91
|
+
### Sandboxing
|
|
92
|
+
|
|
93
|
+
For maximum security, especially when running untrusted code or exploring new
|
|
94
|
+
projects, we strongly recommend enabling Sandboxing. This runs all shell
|
|
95
|
+
commands inside a secure Docker container.
|
|
96
|
+
|
|
97
|
+
**Enable sandboxing:** Use the `--sandbox` flag when starting the CLI:
|
|
98
|
+
`gemini --sandbox`.
|
|
99
|
+
|
|
100
|
+
## Next steps
|
|
101
|
+
|
|
102
|
+
- Learn about [Sandboxing](../../cli/sandbox.md) to safely run destructive
|
|
103
|
+
commands.
|
|
104
|
+
- See the [Shell tool reference](../../tools/shell.md) for configuration options
|
|
105
|
+
like timeouts and working directories.
|
|
106
|
+
- Explore [Task planning](task-planning.md) to see how shell commands fit into
|
|
107
|
+
larger workflows.
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Get started with Agent Skills
|
|
2
2
|
|
|
3
|
-
Agent Skills
|
|
4
|
-
|
|
5
|
-
session.
|
|
3
|
+
Agent Skills extend Gemini CLI with specialized expertise. In this guide, you'll
|
|
4
|
+
learn how to create your first skill, bundle custom scripts, and activate them
|
|
5
|
+
during a session.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## How to create a skill
|
|
8
8
|
|
|
9
|
-
A skill is a directory containing a `SKILL.md` file. Let's create an
|
|
10
|
-
Auditor** skill that helps you verify if local or remote endpoints are
|
|
9
|
+
A skill is defined by a directory containing a `SKILL.md` file. Let's create an
|
|
10
|
+
**API Auditor** skill that helps you verify if local or remote endpoints are
|
|
11
11
|
responding correctly.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
### Create the directory structure
|
|
14
|
+
|
|
15
|
+
1. Run the following command to create the folders:
|
|
14
16
|
|
|
15
17
|
```bash
|
|
16
18
|
mkdir -p .gemini/skills/api-auditor/scripts
|
|
17
19
|
```
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
### Create the definition
|
|
22
|
+
|
|
23
|
+
1. Create a file at `.gemini/skills/api-auditor/SKILL.md`. This tells the agent
|
|
24
|
+
_when_ to use the skill and _how_ to behave.
|
|
21
25
|
|
|
22
26
|
```markdown
|
|
23
27
|
---
|
|
@@ -40,9 +44,12 @@ responding correctly.
|
|
|
40
44
|
without an `https://` protocol.
|
|
41
45
|
```
|
|
42
46
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
### Add the tool logic
|
|
48
|
+
|
|
49
|
+
Skills can bundle resources like scripts.
|
|
50
|
+
|
|
51
|
+
1. Create a file at `.gemini/skills/api-auditor/scripts/audit.js`. This is the
|
|
52
|
+
code the agent will run.
|
|
46
53
|
|
|
47
54
|
```javascript
|
|
48
55
|
// .gemini/skills/api-auditor/scripts/audit.js
|
|
@@ -59,39 +66,37 @@ responding correctly.
|
|
|
59
66
|
.catch((e) => console.error(`Result: Failed (${e.message})`));
|
|
60
67
|
```
|
|
61
68
|
|
|
62
|
-
##
|
|
63
|
-
|
|
64
|
-
Use the `/skills` slash command (or `gemini skills list` from your terminal) to
|
|
65
|
-
see if Gemini CLI has found your new skill.
|
|
69
|
+
## How to verify discovery
|
|
66
70
|
|
|
67
|
-
|
|
71
|
+
Gemini CLI automatically discovers skills in the `.gemini/skills` directory. You
|
|
72
|
+
can also use `.agents/skills` as a more generic alternative. Check that it found
|
|
73
|
+
your new skill.
|
|
68
74
|
|
|
69
|
-
|
|
70
|
-
/skills list
|
|
71
|
-
```
|
|
75
|
+
**Command:** `/skills list`
|
|
72
76
|
|
|
73
77
|
You should see `api-auditor` in the list of available skills.
|
|
74
78
|
|
|
75
|
-
##
|
|
79
|
+
## How to use the skill
|
|
76
80
|
|
|
77
|
-
Now,
|
|
78
|
-
|
|
81
|
+
Now, try it out. Start a new session and ask a question that triggers the
|
|
82
|
+
skill's description.
|
|
79
83
|
|
|
80
|
-
**User:** "Can you audit http://
|
|
84
|
+
**User:** "Can you audit http://geminicli.com"
|
|
81
85
|
|
|
82
|
-
Gemini
|
|
83
|
-
|
|
86
|
+
Gemini recognizes the request matches the `api-auditor` description and asks for
|
|
87
|
+
permission to activate it.
|
|
84
88
|
|
|
85
89
|
**Model:** (After calling `activate_skill`) "I've activated the **api-auditor**
|
|
86
90
|
skill. I'll run the audit script now..."
|
|
87
91
|
|
|
88
|
-
Gemini
|
|
92
|
+
Gemini then uses the `run_shell_command` tool to execute your bundled Node
|
|
89
93
|
script:
|
|
90
94
|
|
|
91
95
|
`node .gemini/skills/api-auditor/scripts/audit.js http://geminili.com`
|
|
92
96
|
|
|
93
|
-
## Next
|
|
97
|
+
## Next steps
|
|
94
98
|
|
|
95
|
-
- Explore
|
|
96
|
-
|
|
99
|
+
- Explore the
|
|
100
|
+
[Agent Skills Authoring Guide](../../cli/skills.md#creating-a-skill) to learn
|
|
101
|
+
about more advanced features.
|
|
97
102
|
- Learn how to share skills via [Extensions](../../extensions/index.md).
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Plan tasks with todos
|
|
2
|
+
|
|
3
|
+
Keep complex jobs on the rails with Gemini CLI's built-in task planning. In this
|
|
4
|
+
guide, you'll learn how to ask for a plan, execute it step-by-step, and monitor
|
|
5
|
+
progress with the todo list.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
- Gemini CLI installed and authenticated.
|
|
10
|
+
- A complex task in mind (e.g., a multi-file refactor or new feature).
|
|
11
|
+
|
|
12
|
+
## Why use task planning?
|
|
13
|
+
|
|
14
|
+
Standard LLMs have a limited context window and can "forget" the original goal
|
|
15
|
+
after 10 turns of code generation. Task planning provides:
|
|
16
|
+
|
|
17
|
+
1. **Visibility:** You see exactly what the agent plans to do _before_ it
|
|
18
|
+
starts.
|
|
19
|
+
2. **Focus:** The agent knows exactly which step it's working on right now.
|
|
20
|
+
3. **Resilience:** If the agent gets stuck, the plan helps it get back on
|
|
21
|
+
track.
|
|
22
|
+
|
|
23
|
+
## How to ask for a plan
|
|
24
|
+
|
|
25
|
+
The best way to trigger task planning is to explicitly ask for it.
|
|
26
|
+
|
|
27
|
+
**Prompt:**
|
|
28
|
+
`I want to migrate this project from JavaScript to TypeScript. Please make a plan first.`
|
|
29
|
+
|
|
30
|
+
Gemini will analyze your codebase and use the `write_todos` tool to generate a
|
|
31
|
+
structured list.
|
|
32
|
+
|
|
33
|
+
**Example Plan:**
|
|
34
|
+
|
|
35
|
+
1. [ ] Create `tsconfig.json`.
|
|
36
|
+
2. [ ] Rename `.js` files to `.ts`.
|
|
37
|
+
3. [ ] Fix type errors in `utils.js`.
|
|
38
|
+
4. [ ] Fix type errors in `server.js`.
|
|
39
|
+
5. [ ] Verify build passes.
|
|
40
|
+
|
|
41
|
+
## How to review and iterate
|
|
42
|
+
|
|
43
|
+
Once the plan is generated, it appears in your CLI. Review it.
|
|
44
|
+
|
|
45
|
+
- **Missing steps?** Tell the agent: "You forgot to add a step for installing
|
|
46
|
+
`@types/node`."
|
|
47
|
+
- **Wrong order?** Tell the agent: "Let's verify the build _after_ each file,
|
|
48
|
+
not just at the end."
|
|
49
|
+
|
|
50
|
+
The agent will update the todo list dynamically.
|
|
51
|
+
|
|
52
|
+
## How to execute the plan
|
|
53
|
+
|
|
54
|
+
Tell the agent to proceed.
|
|
55
|
+
|
|
56
|
+
**Prompt:** `Looks good. Start with the first step.`
|
|
57
|
+
|
|
58
|
+
As the agent works, you'll see the todo list update in real-time above the input
|
|
59
|
+
box.
|
|
60
|
+
|
|
61
|
+
- **Current focus:** The active task is highlighted (e.g.,
|
|
62
|
+
`[IN_PROGRESS] Create tsconfig.json`).
|
|
63
|
+
- **Progress:** Completed tasks are marked as done.
|
|
64
|
+
|
|
65
|
+
## How to monitor progress (`Ctrl+T`)
|
|
66
|
+
|
|
67
|
+
For a long-running task, the full todo list might be hidden to save space. You
|
|
68
|
+
can toggle the full view at any time.
|
|
69
|
+
|
|
70
|
+
**Action:** Press **Ctrl+T**.
|
|
71
|
+
|
|
72
|
+
This shows the complete list, including pending, in-progress, and completed
|
|
73
|
+
items. It's a great way to check "how much is left?" without scrolling back up.
|
|
74
|
+
|
|
75
|
+
## How to handle unexpected changes
|
|
76
|
+
|
|
77
|
+
Plans change. Maybe you discover a library is incompatible halfway through.
|
|
78
|
+
|
|
79
|
+
**Prompt:**
|
|
80
|
+
`Actually, let's skip the 'server.js' refactor for now. It's too risky.`
|
|
81
|
+
|
|
82
|
+
The agent will mark that task as `cancelled` or remove it, and move to the next
|
|
83
|
+
item. This dynamic adjustment is what makes the todo system powerful—it's a
|
|
84
|
+
living document, not a static text block.
|
|
85
|
+
|
|
86
|
+
## Next steps
|
|
87
|
+
|
|
88
|
+
- Explore [Session management](session-management.md) to save your plan and
|
|
89
|
+
finish it tomorrow.
|
|
90
|
+
- See the [Todo tool reference](../../tools/todos.md) for technical schema
|
|
91
|
+
details.
|
|
92
|
+
- Learn about [Memory management](memory-management.md) to persist planning
|
|
93
|
+
preferences (e.g., "Always create a test plan first").
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Web search and fetch
|
|
2
|
+
|
|
3
|
+
Access the live internet directly from your prompt. In this guide, you'll learn
|
|
4
|
+
how to search for up-to-date documentation, fetch deep context from specific
|
|
5
|
+
URLs, and apply that knowledge to your code.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
- Gemini CLI installed and authenticated.
|
|
10
|
+
- An internet connection.
|
|
11
|
+
|
|
12
|
+
## How to research new technologies
|
|
13
|
+
|
|
14
|
+
Imagine you want to use a library released yesterday. The model doesn't know
|
|
15
|
+
about it yet. You need to teach it.
|
|
16
|
+
|
|
17
|
+
### Scenario: Find documentation
|
|
18
|
+
|
|
19
|
+
**Prompt:**
|
|
20
|
+
`Search for the 'Bun 1.0' release notes and summarize the key changes.`
|
|
21
|
+
|
|
22
|
+
Gemini uses the `google_web_search` tool to find relevant pages and synthesizes
|
|
23
|
+
an answer. This "grounding" process ensures the agent isn't hallucinating
|
|
24
|
+
features that don't exist.
|
|
25
|
+
|
|
26
|
+
**Prompt:** `Find the documentation for the 'React Router v7' loader API.`
|
|
27
|
+
|
|
28
|
+
## How to fetch deep context
|
|
29
|
+
|
|
30
|
+
Search gives you a summary, but sometimes you need the raw details. The
|
|
31
|
+
`web_fetch` tool lets you feed a specific URL directly into the agent's context.
|
|
32
|
+
|
|
33
|
+
### Scenario: Reading a blog post
|
|
34
|
+
|
|
35
|
+
You found a blog post with the exact solution to your bug.
|
|
36
|
+
|
|
37
|
+
**Prompt:**
|
|
38
|
+
`Read https://example.com/fixing-memory-leaks and explain how to apply it to my code.`
|
|
39
|
+
|
|
40
|
+
Gemini will retrieve the page content (stripping away ads and navigation) and
|
|
41
|
+
use it to answer your question.
|
|
42
|
+
|
|
43
|
+
### Scenario: Comparing sources
|
|
44
|
+
|
|
45
|
+
You can even fetch multiple pages to compare approaches.
|
|
46
|
+
|
|
47
|
+
**Prompt:**
|
|
48
|
+
`Compare the pagination patterns in https://api.example.com/v1/docs and https://api.example.com/v2/docs.`
|
|
49
|
+
|
|
50
|
+
## How to apply knowledge to code
|
|
51
|
+
|
|
52
|
+
The real power comes when you combine web tools with file editing.
|
|
53
|
+
|
|
54
|
+
**Workflow:**
|
|
55
|
+
|
|
56
|
+
1. **Search:** "How do I implement auth with Supabase?"
|
|
57
|
+
2. **Fetch:** "Read this guide: https://supabase.com/docs/guides/auth."
|
|
58
|
+
3. **Implement:** "Great. Now use that pattern to create an `auth.ts` file in
|
|
59
|
+
my project."
|
|
60
|
+
|
|
61
|
+
## How to troubleshoot errors
|
|
62
|
+
|
|
63
|
+
When you hit an obscure error message, paste it into the chat.
|
|
64
|
+
|
|
65
|
+
**Prompt:**
|
|
66
|
+
`I'm getting 'Error: hydration mismatch' in Next.js. Search for recent solutions.`
|
|
67
|
+
|
|
68
|
+
The agent will search sources such as GitHub issues, StackOverflow, and forums
|
|
69
|
+
to find relevant fixes that might be too new to be in its base training set.
|
|
70
|
+
|
|
71
|
+
## Next steps
|
|
72
|
+
|
|
73
|
+
- Explore [File management](file-management.md) to see how to apply the code you
|
|
74
|
+
generate.
|
|
75
|
+
- See the [Web search tool reference](../../tools/web-search.md) for citation
|
|
76
|
+
details.
|
|
77
|
+
- See the [Web fetch tool reference](../../tools/web-fetch.md) for technical
|
|
78
|
+
limitations.
|
|
@@ -208,9 +208,11 @@ commandPrefix = "git "
|
|
|
208
208
|
|
|
209
209
|
# (Optional) A regex to match against the entire shell command.
|
|
210
210
|
# This is also syntactic sugar for `toolName = "run_shell_command"`.
|
|
211
|
-
# Note: This pattern is tested against the JSON representation of the arguments (e.g., `{"command":"<your_command>"}`)
|
|
211
|
+
# Note: This pattern is tested against the JSON representation of the arguments (e.g., `{"command":"<your_command>"}`).
|
|
212
|
+
# Because it prepends `"command":"`, it effectively matches from the start of the command.
|
|
213
|
+
# Anchors like `^` or `$` apply to the full JSON string, so `^` should usually be avoided here.
|
|
212
214
|
# You cannot use commandPrefix and commandRegex in the same rule.
|
|
213
|
-
commandRegex = "
|
|
215
|
+
commandRegex = "git (commit|push)"
|
|
214
216
|
|
|
215
217
|
# The decision to take. Must be "allow", "deny", or "ask_user".
|
|
216
218
|
decision = "ask_user"
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Subagents (experimental)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Subagents are specialized agents that operate within your main Gemini CLI
|
|
4
4
|
session. They are designed to handle specific, complex tasks—like deep codebase
|
|
5
5
|
analysis, documentation lookup, or domain-specific reasoning—without cluttering
|
|
6
6
|
the main agent's context or toolset.
|
|
7
7
|
|
|
8
|
-
> **Note:
|
|
8
|
+
> **Note: Subagents are currently an experimental feature.**
|
|
9
9
|
>
|
|
10
|
-
> To use custom
|
|
10
|
+
> To use custom subagents, you must explicitly enable them in your
|
|
11
11
|
> `settings.json`:
|
|
12
12
|
>
|
|
13
13
|
> ```json
|
|
@@ -16,31 +16,31 @@ the main agent's context or toolset.
|
|
|
16
16
|
> }
|
|
17
17
|
> ```
|
|
18
18
|
>
|
|
19
|
-
> **Warning:**
|
|
19
|
+
> **Warning:** Subagents currently operate in
|
|
20
20
|
> ["YOLO mode"](../get-started/configuration.md#command-line-arguments), meaning
|
|
21
21
|
> they may execute tools without individual user confirmation for each step.
|
|
22
22
|
> Proceed with caution when defining agents with powerful tools like
|
|
23
23
|
> `run_shell_command` or `write_file`.
|
|
24
24
|
|
|
25
|
-
## What are
|
|
25
|
+
## What are subagents?
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Subagents are "specialists" that the main Gemini agent can hire for a specific
|
|
28
28
|
job.
|
|
29
29
|
|
|
30
|
-
- **Focused context:** Each
|
|
31
|
-
- **Specialized tools:**
|
|
30
|
+
- **Focused context:** Each subagent has its own system prompt and persona.
|
|
31
|
+
- **Specialized tools:** Subagents can have a restricted or specialized set of
|
|
32
32
|
tools.
|
|
33
|
-
- **Independent context window:** Interactions with a
|
|
33
|
+
- **Independent context window:** Interactions with a subagent happen in a
|
|
34
34
|
separate context loop, which saves tokens in your main conversation history.
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
main agent calls the tool, it delegates the task to the
|
|
38
|
-
|
|
36
|
+
Subagents are exposed to the main agent as a tool of the same name. When the
|
|
37
|
+
main agent calls the tool, it delegates the task to the subagent. Once the
|
|
38
|
+
subagent completes its task, it reports back to the main agent with its
|
|
39
39
|
findings.
|
|
40
40
|
|
|
41
|
-
## Built-in
|
|
41
|
+
## Built-in subagents
|
|
42
42
|
|
|
43
|
-
Gemini CLI comes with the following built-in
|
|
43
|
+
Gemini CLI comes with the following built-in subagents:
|
|
44
44
|
|
|
45
45
|
### Codebase Investigator
|
|
46
46
|
|
|
@@ -75,15 +75,15 @@ Gemini CLI comes with the following built-in sub-agents:
|
|
|
75
75
|
### Generalist Agent
|
|
76
76
|
|
|
77
77
|
- **Name:** `generalist_agent`
|
|
78
|
-
- **Purpose:** Route tasks to the appropriate specialized
|
|
78
|
+
- **Purpose:** Route tasks to the appropriate specialized subagent.
|
|
79
79
|
- **When to use:** Implicitly used by the main agent for routing. Not directly
|
|
80
80
|
invoked by the user.
|
|
81
81
|
- **Configuration:** Enabled by default. No specific configuration options.
|
|
82
82
|
|
|
83
|
-
## Creating custom
|
|
83
|
+
## Creating custom subagents
|
|
84
84
|
|
|
85
|
-
You can create your own
|
|
86
|
-
specific personas. To use custom
|
|
85
|
+
You can create your own subagents to automate specific workflows or enforce
|
|
86
|
+
specific personas. To use custom subagents, you must enable them in your
|
|
87
87
|
`settings.json`:
|
|
88
88
|
|
|
89
89
|
```json
|
|
@@ -138,20 +138,20 @@ it yourself; just report it.
|
|
|
138
138
|
|
|
139
139
|
### Configuration schema
|
|
140
140
|
|
|
141
|
-
| Field | Type | Required | Description
|
|
142
|
-
| :------------- | :----- | :------- |
|
|
143
|
-
| `name` | string | Yes | Unique identifier (slug) used as the tool name for the agent. Only lowercase letters, numbers, hyphens, and underscores.
|
|
144
|
-
| `description` | string | Yes | Short description of what the agent does. This is visible to the main agent to help it decide when to call this
|
|
145
|
-
| `kind` | string | No | `local` (default) or `remote`.
|
|
146
|
-
| `tools` | array | No | List of tool names this agent can use. If omitted, it may have access to a default set.
|
|
147
|
-
| `model` | string | No | Specific model to use (e.g., `gemini-2.5-pro`). Defaults to `inherit` (uses the main session model).
|
|
148
|
-
| `temperature` | number | No | Model temperature (0.0 - 2.0).
|
|
149
|
-
| `max_turns` | number | No | Maximum number of conversation turns allowed for this agent before it must return. Defaults to `15`.
|
|
150
|
-
| `timeout_mins` | number | No | Maximum execution time in minutes. Defaults to `5`.
|
|
141
|
+
| Field | Type | Required | Description |
|
|
142
|
+
| :------------- | :----- | :------- | :------------------------------------------------------------------------------------------------------------------------ |
|
|
143
|
+
| `name` | string | Yes | Unique identifier (slug) used as the tool name for the agent. Only lowercase letters, numbers, hyphens, and underscores. |
|
|
144
|
+
| `description` | string | Yes | Short description of what the agent does. This is visible to the main agent to help it decide when to call this subagent. |
|
|
145
|
+
| `kind` | string | No | `local` (default) or `remote`. |
|
|
146
|
+
| `tools` | array | No | List of tool names this agent can use. If omitted, it may have access to a default set. |
|
|
147
|
+
| `model` | string | No | Specific model to use (e.g., `gemini-2.5-pro`). Defaults to `inherit` (uses the main session model). |
|
|
148
|
+
| `temperature` | number | No | Model temperature (0.0 - 2.0). |
|
|
149
|
+
| `max_turns` | number | No | Maximum number of conversation turns allowed for this agent before it must return. Defaults to `15`. |
|
|
150
|
+
| `timeout_mins` | number | No | Maximum execution time in minutes. Defaults to `5`. |
|
|
151
151
|
|
|
152
|
-
### Optimizing your
|
|
152
|
+
### Optimizing your subagent
|
|
153
153
|
|
|
154
|
-
The main agent's system prompt encourages it to use an expert
|
|
154
|
+
The main agent's system prompt encourages it to use an expert subagent when one
|
|
155
155
|
is available. It decides whether an agent is a relevant expert based on the
|
|
156
156
|
agent's description. You can improve the reliability with which an agent is used
|
|
157
157
|
by updating the description to more clearly indicate:
|
|
@@ -160,7 +160,7 @@ by updating the description to more clearly indicate:
|
|
|
160
160
|
- When it should be used.
|
|
161
161
|
- Some example scenarios.
|
|
162
162
|
|
|
163
|
-
For example, the following
|
|
163
|
+
For example, the following subagent description should be called fairly
|
|
164
164
|
consistently for Git operations.
|
|
165
165
|
|
|
166
166
|
> Git expert agent which should be used for all local and remote git operations.
|
|
@@ -170,13 +170,13 @@ consistently for Git operations.
|
|
|
170
170
|
> - Searching for regressions with bisect
|
|
171
171
|
> - Interacting with source control and issues providers such as GitHub.
|
|
172
172
|
|
|
173
|
-
If you need to further tune your
|
|
173
|
+
If you need to further tune your subagent, you can do so by selecting the model
|
|
174
174
|
to optimize for with `/model` and then asking the model why it does not think
|
|
175
|
-
that your
|
|
175
|
+
that your subagent was called with a specific prompt and the given description.
|
|
176
176
|
|
|
177
177
|
## Remote subagents (Agent2Agent) (experimental)
|
|
178
178
|
|
|
179
|
-
Gemini CLI can also delegate tasks to remote
|
|
179
|
+
Gemini CLI can also delegate tasks to remote subagents using the Agent-to-Agent
|
|
180
180
|
(A2A) protocol.
|
|
181
181
|
|
|
182
182
|
> **Note: Remote subagents are currently an experimental feature.**
|
|
@@ -184,8 +184,8 @@ Gemini CLI can also delegate tasks to remote sub-agents using the Agent-to-Agent
|
|
|
184
184
|
See the [Remote Subagents documentation](/docs/core/remote-agents) for detailed
|
|
185
185
|
configuration and usage instructions.
|
|
186
186
|
|
|
187
|
-
## Extension
|
|
187
|
+
## Extension subagents
|
|
188
188
|
|
|
189
|
-
Extensions can bundle and distribute
|
|
190
|
-
[Extensions documentation](../extensions/index.md#
|
|
189
|
+
Extensions can bundle and distribute subagents. See the
|
|
190
|
+
[Extensions documentation](../extensions/index.md#subagents) for details on how
|
|
191
191
|
to package agents within an extension.
|