> ## Documentation Index
> Fetch the complete documentation index at: https://docs.murmur.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# murmur upload

> Upload one or more files to Murmur's public storage and print the resulting URLs — used to share artifacts and screenshots with agents.

Uploads one or more files and prints a public HTTPS URL for each one. The content type is detected automatically from the file extension, or by inspecting the file contents when the extension is unrecognized.

Uploaded files are publicly accessible at the returned URLs. Use this to share screenshots, logs, or other artifacts from an [agent](/concepts/agents) session.

## Synopsis

```bash theme={null}
murmur upload [flags] <file> [file...]
```

## Arguments

| Name          | Type   | Required | Description                                                                     |
| ------------- | ------ | -------- | ------------------------------------------------------------------------------- |
| `file`        | string | yes      | One or more file paths to upload. Repeatable.                                   |
| `--workspace` | string | no       | [Workspace](/concepts/workspaces) name. Overrides the value from `murmur.yaml`. |

## Examples

### Upload a single file

```bash theme={null}
murmur upload screenshot.png
```

```
https://storage.googleapis.com/murmur-uploads/abc123-screenshot.png
```

### Upload multiple files

```bash theme={null}
murmur upload report.pdf debug.log screenshot.png
```

```
https://storage.googleapis.com/murmur-uploads/d4e5f6-report.pdf
https://storage.googleapis.com/murmur-uploads/a1b2c3-debug.log
https://storage.googleapis.com/murmur-uploads/f7g8h9-screenshot.png
```

One URL is printed per file, in the order the files were specified. If any file fails, the command exits immediately without uploading remaining files.

### Upload with an explicit workspace

```bash theme={null}
murmur upload --workspace backend coverage.html
```

```
https://storage.googleapis.com/murmur-uploads/j0k1l2-coverage.html
```

## Errors

| Code                  | Meaning                                                              | What to do                                                                      |
| --------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| file open failure     | The specified file does not exist or is not readable.                | Check the file path and permissions.                                            |
| `UNAUTHENTICATED`     | Identity token is missing or expired.                                | Run [`murmur auth`](/cli/auth) or check your `murmur.local.yaml` configuration. |
| `INVALID_ARGUMENT`    | The file exceeds the 100 MiB upload limit, or the filename is empty. | Reduce the file size or check the file path.                                    |
| `FAILED_PRECONDITION` | The uploads bucket is not configured for this deployment.            | Contact your administrator.                                                     |

## Related

* [Agents](/concepts/agents) — what agents are and how they work
* [Workspaces](/concepts/workspaces) — the workspace that resolves repos and environment
* [`murmur status`](/cli/status) — check agent status
* [`murmur spawn`](/cli/spawn) — start an agent
