/ website / docs / reference / profile-commands.md
profile-commands.md
  1  ---
  2  sidebar_position: 7
  3  ---
  4  
  5  # Profile Commands Reference
  6  
  7  This page covers all commands related to [Hermes profiles](../user-guide/profiles.md). For general CLI commands, see [CLI Commands Reference](./cli-commands.md).
  8  
  9  ## `hermes profile`
 10  
 11  ```bash
 12  hermes profile <subcommand>
 13  ```
 14  
 15  Top-level command for managing profiles. Running `hermes profile` without a subcommand shows help.
 16  
 17  | Subcommand | Description |
 18  |------------|-------------|
 19  | `list` | List all profiles. |
 20  | `use` | Set the active (default) profile. |
 21  | `create` | Create a new profile. |
 22  | `delete` | Delete a profile. |
 23  | `show` | Show details about a profile. |
 24  | `alias` | Regenerate the shell alias for a profile. |
 25  | `rename` | Rename a profile. |
 26  | `export` | Export a profile to a tar.gz archive. |
 27  | `import` | Import a profile from a tar.gz archive. |
 28  
 29  ## `hermes profile list`
 30  
 31  ```bash
 32  hermes profile list
 33  ```
 34  
 35  Lists all profiles. The currently active profile is marked with `*`.
 36  
 37  **Example:**
 38  
 39  ```bash
 40  $ hermes profile list
 41    default
 42  * work
 43    dev
 44    personal
 45  ```
 46  
 47  No options.
 48  
 49  ## `hermes profile use`
 50  
 51  ```bash
 52  hermes profile use <name>
 53  ```
 54  
 55  Sets `<name>` as the active profile. All subsequent `hermes` commands (without `-p`) will use this profile.
 56  
 57  | Argument | Description |
 58  |----------|-------------|
 59  | `<name>` | Profile name to activate. Use `default` to return to the base profile. |
 60  
 61  **Example:**
 62  
 63  ```bash
 64  hermes profile use work
 65  hermes profile use default
 66  ```
 67  
 68  ## `hermes profile create`
 69  
 70  ```bash
 71  hermes profile create <name> [options]
 72  ```
 73  
 74  Creates a new profile.
 75  
 76  | Argument / Option | Description |
 77  |-------------------|-------------|
 78  | `<name>` | Name for the new profile. Must be a valid directory name (alphanumeric, hyphens, underscores). |
 79  | `--clone` | Copy `config.yaml`, `.env`, and `SOUL.md` from the current profile. |
 80  | `--clone-all` | Copy everything (config, memories, skills, sessions, state) from the current profile. |
 81  | `--clone-from <profile>` | Clone from a specific profile instead of the current one. Used with `--clone` or `--clone-all`. |
 82  | `--no-alias` | Skip wrapper script creation. |
 83  
 84  Creating a profile does **not** make that profile directory the default project/workspace directory for terminal commands. If you want a profile to start in a specific project, set `terminal.cwd` in that profile's `config.yaml`.
 85  
 86  **Examples:**
 87  
 88  ```bash
 89  # Blank profile — needs full setup
 90  hermes profile create mybot
 91  
 92  # Clone config only from current profile
 93  hermes profile create work --clone
 94  
 95  # Clone everything from current profile
 96  hermes profile create backup --clone-all
 97  
 98  # Clone config from a specific profile
 99  hermes profile create work2 --clone --clone-from work
100  ```
101  
102  ## `hermes profile delete`
103  
104  ```bash
105  hermes profile delete <name> [options]
106  ```
107  
108  Deletes a profile and removes its shell alias.
109  
110  | Argument / Option | Description |
111  |-------------------|-------------|
112  | `<name>` | Profile to delete. |
113  | `--yes`, `-y` | Skip confirmation prompt. |
114  
115  **Example:**
116  
117  ```bash
118  hermes profile delete mybot
119  hermes profile delete mybot --yes
120  ```
121  
122  :::warning
123  This permanently deletes the profile's entire directory including all config, memories, sessions, and skills. Cannot delete the currently active profile.
124  :::
125  
126  ## `hermes profile show`
127  
128  ```bash
129  hermes profile show <name>
130  ```
131  
132  Displays details about a profile including its home directory, configured model, gateway status, skills count, and configuration file status.
133  
134  This shows the profile's Hermes home directory, not the terminal working directory. Terminal commands start from `terminal.cwd` (or the launch directory on the local backend when `cwd: "."`).
135  
136  | Argument | Description |
137  |----------|-------------|
138  | `<name>` | Profile to inspect. |
139  
140  **Example:**
141  
142  ```bash
143  $ hermes profile show work
144  Profile: work
145  Path:    ~/.hermes/profiles/work
146  Model:   anthropic/claude-sonnet-4 (anthropic)
147  Gateway: stopped
148  Skills:  12
149  .env:    exists
150  SOUL.md: exists
151  Alias:   ~/.local/bin/work
152  ```
153  
154  ## `hermes profile alias`
155  
156  ```bash
157  hermes profile alias <name> [options]
158  ```
159  
160  Regenerates the shell alias script at `~/.local/bin/<name>`. Useful if the alias was accidentally deleted or if you need to update it after moving your Hermes installation.
161  
162  | Argument / Option | Description |
163  |-------------------|-------------|
164  | `<name>` | Profile to create/update the alias for. |
165  | `--remove` | Remove the wrapper script instead of creating it. |
166  | `--name <alias>` | Custom alias name (default: profile name). |
167  
168  **Example:**
169  
170  ```bash
171  hermes profile alias work
172  # Creates/updates ~/.local/bin/work
173  
174  hermes profile alias work --name mywork
175  # Creates ~/.local/bin/mywork
176  
177  hermes profile alias work --remove
178  # Removes the wrapper script
179  ```
180  
181  ## `hermes profile rename`
182  
183  ```bash
184  hermes profile rename <old-name> <new-name>
185  ```
186  
187  Renames a profile. Updates the directory and shell alias.
188  
189  | Argument | Description |
190  |----------|-------------|
191  | `<old-name>` | Current profile name. |
192  | `<new-name>` | New profile name. |
193  
194  **Example:**
195  
196  ```bash
197  hermes profile rename mybot assistant
198  # ~/.hermes/profiles/mybot → ~/.hermes/profiles/assistant
199  # ~/.local/bin/mybot → ~/.local/bin/assistant
200  ```
201  
202  ## `hermes profile export`
203  
204  ```bash
205  hermes profile export <name> [options]
206  ```
207  
208  Exports a profile as a compressed tar.gz archive.
209  
210  | Argument / Option | Description |
211  |-------------------|-------------|
212  | `<name>` | Profile to export. |
213  | `-o`, `--output <path>` | Output file path (default: `<name>.tar.gz`). |
214  
215  **Example:**
216  
217  ```bash
218  hermes profile export work
219  # Creates work.tar.gz in the current directory
220  
221  hermes profile export work -o ./work-2026-03-29.tar.gz
222  ```
223  
224  ## `hermes profile import`
225  
226  ```bash
227  hermes profile import <archive> [options]
228  ```
229  
230  Imports a profile from a tar.gz archive.
231  
232  | Argument / Option | Description |
233  |-------------------|-------------|
234  | `<archive>` | Path to the tar.gz archive to import. |
235  | `--name <name>` | Name for the imported profile (default: inferred from archive). |
236  
237  **Example:**
238  
239  ```bash
240  hermes profile import ./work-2026-03-29.tar.gz
241  # Infers profile name from the archive
242  
243  hermes profile import ./work-2026-03-29.tar.gz --name work-restored
244  ```
245  
246  ## `hermes -p` / `hermes --profile`
247  
248  ```bash
249  hermes -p <name> <command> [options]
250  hermes --profile <name> <command> [options]
251  ```
252  
253  Global flag to run any Hermes command under a specific profile without changing the sticky default. This overrides the active profile for the duration of the command.
254  
255  | Option | Description |
256  |--------|-------------|
257  | `-p <name>`, `--profile <name>` | Profile to use for this command. |
258  
259  **Examples:**
260  
261  ```bash
262  hermes -p work chat -q "Check the server status"
263  hermes --profile dev gateway start
264  hermes -p personal skills list
265  hermes -p work config edit
266  ```
267  
268  ## `hermes completion`
269  
270  ```bash
271  hermes completion <shell>
272  ```
273  
274  Generates shell completion scripts. Includes completions for profile names and profile subcommands.
275  
276  | Argument | Description |
277  |----------|-------------|
278  | `<shell>` | Shell to generate completions for: `bash` or `zsh`. |
279  
280  **Examples:**
281  
282  ```bash
283  # Install completions
284  hermes completion bash >> ~/.bashrc
285  hermes completion zsh >> ~/.zshrc
286  
287  # Reload shell
288  source ~/.bashrc
289  ```
290  
291  After installation, tab completion works for:
292  - `hermes profile <TAB>` — subcommands (list, use, create, etc.)
293  - `hermes profile use <TAB>` — profile names
294  - `hermes -p <TAB>` — profile names
295  
296  ## See also
297  
298  - [Profiles User Guide](../user-guide/profiles.md)
299  - [CLI Commands Reference](./cli-commands.md)
300  - [FAQ — Profiles section](./faq.md#profiles)