# geni specialist files

> A specialist's shared files. List them, pull them down, push a directory up, or remove one.

Source: https://docs.generalinput.com/cli/specialist/files



Shared files are the specialist's shelf: reference documents, brand guides, spreadsheets, and the deliverables the specialist saves. Every conversation with the specialist sees the list, with a description of each file, and loads a file into `specialist/` when it needs it. A file pushed without a description gets one written for it.

Reads need access to the specialist; `push` and `rm` need edit access.

## list [#list]

```sh
geni specialist files list <specialistId> [--json]
geni specialist files ls <specialistId>
```

```
PATH              BYTES   UPDATED                    DESCRIPTION
brand/voice.md    3120    2026-08-30T09:00:00.000Z   How we write: tone, words to avoid
pricing.xlsx      48211   2026-08-12T14:20:00.000Z   2026 price list by plan
```

## pull [#pull]

```sh
geni specialist files pull <specialistId> [--dir <path>] [--force]
```

Downloads every file into a directory (default cwd). Refuses a directory that already holds files unless `--force` is passed.

| Flag           | Notes                                      |
| -------------- | ------------------------------------------ |
| `--dir <path>` | Destination directory. Defaults to cwd.    |
| `--force`      | Overwrite existing files in the directory. |

## push [#push]

```sh
geni specialist files push <specialistId> [--dir <path>] [--json]
```

Uploads a directory. Paths it carries are added or replaced; everything else in the specialist stays put. Bytes move as one tar bundle, so binary files are preserved.

| Flag           | Notes                              |
| -------------- | ---------------------------------- |
| `--dir <path>` | Source directory. Defaults to cwd. |
| `--json`       | Machine-readable output.           |

```
✓ Pushed /work/brand into specialist proj_01HX… (it now has 7 file(s))
```

## rm [#rm]

```sh
geni specialist files rm <specialistId> <path> [--json]
```

Removes one file by its relative path.

```
✓ Removed brand/old-voice.md from specialist proj_01HX…
```
