# File and Credential Endpoints

Endpoints for files, stored keys and live voice.

| Method | Path | Description |
|---|---|---|
| `GET` `PUT` | `/v1/file` | **local** — read / write a file |
| `GET` | `/v1/file/open` | **local** — open a file or URL with the OS default handler |
| `GET` | `/v1/file/locate` | **local** — find candidate paths for a bare file name (`name`, plus optional `dir=1`, `child`, `size`, `mtime` filters) |
| `GET` | `/v1/workdir` | **local** — resolve and validate a work directory (`?path=`), returning the absolute path |
| `DELETE` | `/v1/key` | **local** — delete a single credential in the keychain. The `GET` that returned a stored value was removed in v1.0.23 |
| `GET` `POST` | `/v1/keys` | **local** — list / set credentials |
| `GET` | `/v1/voice/live` | **local** — added in v1.1.1. WebSocket upgrade that relays the dashboard's voice mode to Gemini Live (`gemini-3.8-live`) with `GEMINI_API_KEY` from the keychain. The daemon sends the setup itself — voice system prompt in the configured reply language, the `send_to_chat` / `read_history` / `read_task` function declarations, input and output transcription — then passes frames both ways. Closes with code `4401` when the key is missing and `1011` when the upstream dial or setup fails |
