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

# Searching past calls

<View title="macOS" icon="apple">
  Tuple keeps a local index of every call you've [transcribed](/pairing-with-tuple/transcribing-calls), so you can easily reference what you talked about on past calls. The index lives in a SQLite database that the Tuple daemon writes as each call records, and you query it from the `tuple` CLI.

  **Everything stays on your machine** - the transcript database is local.

  ## When to use this

  Reach for `tuple transcription` when you want to:

  * Find the call where you and your pair discussed a specific decision, error message, or library name.
  * Pull up the transcript of a recent call without remembering exactly when it happened.
  * Export transcripts to Markdown so you can drop them into your team's notes or feed them to an LLM.

  ## Listing recorded calls

  Use `tuple transcription list` to see calls in the database, most recent first:

  ```sh theme={null}
  tuple transcription list
  ```

  Each row shows the call's start time (in local time), a short call ID, the number of transcript segments captured, and the participants Tuple resolved from the recording.

  Filter the list with any combination of:

  | Flag                   | Description                                                      |
  | ---------------------- | ---------------------------------------------------------------- |
  | `--participant <text>` | Only calls where a participant's name or email contains `<text>` |
  | `--after <date>`       | Only calls starting on or after `<date>` (e.g. `2026-05-19`)     |
  | `--before <date>`      | Only calls starting on or before `<date>`                        |
  | `--limit <n>`          | Maximum calls to list (default `100`; pass `-1` for all)         |

  Example — every call you had with someone named Mikey in the last month:

  ```sh theme={null}
  tuple transcription list --participant mikey --after 2026-05-11
  ```

  Pass `--format json` (a CLI-wide flag) to get the same data as JSON for scripting.

  ## Searching transcripts

  `tuple transcription search` runs a full-text search across every indexed transcript:

  ```sh theme={null}
  tuple transcription search "feature flag"
  ```

  The query uses [SQLite FTS5 syntax](https://www.sqlite.org/fts5.html#full_text_query_syntax): bare terms are ANDed together, `"quoted phrases"` match exactly, and `OR` and `NOT` work as you'd expect. Matched terms in the output are highlighted with `[[ ]]` markers turned into bold text.

  Each result shows the call ID, timestamp, speaker, and a snippet around the match. Refine results with:

  | Flag                   | Description                                                           |
  | ---------------------- | --------------------------------------------------------------------- |
  | `--call <id>`          | Only this call. Repeatable; accepts short call ID prefixes.           |
  | `--speaker <text>`     | Only segments spoken by someone whose name or email contains `<text>` |
  | `--participant <text>` | Only calls with a participant whose name or email contains `<text>`   |
  | `--after <date>`       | Only segments on or after `<date>`                                    |
  | `--before <date>`      | Only segments on or before `<date>`                                   |
  | `-C, --context <n>`    | Show `n` segments of conversation around each match                   |
  | `--limit <n>`          | Maximum matches (default `50`; pass `-1` for all)                     |

  Example — find every time your teammate mentioned "rollback" with two lines of context on either side:

  ```sh theme={null}
  tuple transcription search rollback --speaker alex -C 2
  ```

  ## Showing a full transcript

  Once you've found the call you want, pass its short ID to `tuple transcription show` to print the full transcript:

  ```sh theme={null}
  tuple transcription show a1b2c3d4
  ```

  The ID can be any unique prefix of the full call ID — the same short IDs `list` and `search` print. The output is a sequence of timestamped speaker lines. Add `--format json` for the raw segments.

  ## Exporting transcripts

  `tuple transcription export` writes one file per call into a directory, named `<date>@<call-id>.<ext>`:

  ```sh theme={null}
  tuple transcription export ~/Documents/tuple-transcripts
  ```

  Choose the output format with `--format`:

  | Format         | Description                                                                                              |
  | -------------- | -------------------------------------------------------------------------------------------------------- |
  | `md` (default) | YAML frontmatter (call ID, start/end times, participants) followed by the transcript                     |
  | `text`         | Plain header lines followed by the transcript                                                            |
  | `ndjson`       | One transcript segment per line, each including `call_id` — so `cat *.ndjson` yields one combined stream |

  Filter which calls get exported with the same `--call`, `--participant`, `--after`, and `--before` flags as `list`. Calls without transcript segments are skipped, and existing files are overwritten — re-running the command refreshes the export.

  Example — export every transcribed call from May 2026 as Markdown:

  ```sh theme={null}
  tuple transcription export ~/Documents/tuple-transcripts \
    --after 2026-05-01 --before 2026-05-31 --format md
  ```
</View>
