2026-03-11 11:56:19 -07:00
# Profiles
Profiles allow you to maintain separate configurations for different workflows,
tasks, or personas. Each profile can define its own set of allowed extensions, a
default model, and a custom system instruction (persona).
Profiles are particularly useful for:
- Switching between domain-specific setups (e.g., frontend development vs.
system administration).
- Defining specialized AI personas for different tasks.
- Restricting available tools/extensions for specific projects.
## Profile structure
Profiles are Markdown files (`.md` ) that use YAML frontmatter for configuration
and the file body for system instructions.
**Location**: `~/.gemini/profiles/[profile-name].md`
### Example profile (`coder.md`)
```markdown
---
2026-03-11 15:09:46 -07:00
name: coder
2026-03-11 13:00:26 -07:00
default_model: gemini-3.0-flash
2026-03-11 11:56:19 -07:00
extensions:
- github
- web-search
---
You are a world-class Web Developer. Focus on React, TypeScript, and modern CSS.
Always prefer functional components and explain your reasoning.
```
### Configuration fields
2026-03-11 15:09:46 -07:00
| Field | Description |
| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------- |
| `name` | (Mandatory) A unique name for the profile. Must be a valid slug (a-z, 0-9, -, \_) and MUST match the filename without the `.md` extension. |
| `default_model` | (Optional) The model to use when this profile is active. |
| `extensions` | (Optional) A list of allowed extension IDs. If specified, only these extensions will be loaded. |
2026-03-11 11:56:19 -07:00
The **body ** of the Markdown file is injected into the system prompt, allowing
you to define a specific persona or set of instructions that the AI will always
follow when the profile is active.
## Usage
### Single session usage
Use the `--profiles` flag (or `-P` ) to use a profile for a single session:
```bash
gemini --profiles coder
```
### Persistent default
You can set a profile as your default for all sessions:
```bash
gemini profiles enable coder
```
To return to the standard configuration:
```bash
gemini profiles disable
```
## Commands
2026-03-11 13:26:18 -07:00
| Command | Description |
| :--------------------------------- | :----------------------------------------------------------- |
| `gemini profiles list` | List all available profiles and see which one is active. |
| `gemini profiles enable <name>` | Set a profile as the persistent default. |
| `gemini profiles disable` | Clear the persistent default profile. |
| `gemini profiles install <path>` | Install a new profile from a local file (Markdown). |
| `gemini profiles link <path>` | Create a symlink to an existing profile file on your system. |
| `gemini profiles uninstall <name>` | Delete a profile from your local storage. |