Lightweight CLI for ingesting, enriching, and storing meeting transcripts
Project description
Transcript CLI
A lightweight CLI for ingesting meeting transcripts from Gmail, enriching them with an LLM, and storing the results as local files.
Gmail -> Extract Google Doc -> LLM Enrich -> Local Files
Prerequisites
- Python 3.12+
- uv
- A Google Cloud project with Gmail API and Google Drive API enabled
- An Anthropic API key (for LLM enrichment)
Setup
1. Install dependencies
uv sync
2. Configure Google OAuth
Create an OAuth 2.0 Client ID (Desktop app) in your Google Cloud Console, download the JSON, and place it at:
~/.config/transcript/client_secret.json
3. Set your API key
Create a .env file in the project root:
ANTHROPIC_API_KEY=your-key-here
4. Configure the project
Edit .transcripts/config.yaml:
sources:
gmail:
profile: default
sender: gemini-notes@google.com
lookback_days: 7
destinations:
- type: local
path: .transcripts/
5. Authenticate with Gmail
uv run transcribe-it auth gmail
Usage
Ingest transcripts
# Last 7 days (default)
make ingest
# Today only
make ingest ARGS="--days 1"
# Specific date range
make ingest ARGS="--from 2026-04-01 --to 2026-04-05"
# Preview what will be ingested (no fetching, no LLM, no writing)
make ingest ARGS="--days 1 --dry-run"
Or without Make:
uv run transcribe-it ingest gmail --days 1
Output
Each transcript produces three files under .transcripts/:
.transcripts/
2026-04-09-ai-labs-daily/
raw.txt # Original transcript (immutable)
clean.md # Structured: title, summary, topics, clean transcript
metadata.json # Source, date, participants, topics
Prompts
LLM prompts live in prompts/ as markdown files. Edit prompts/enrich.md to change how transcripts are processed.
Commands
| Command | Description |
|---|---|
transcribe-it auth gmail |
Authenticate with Gmail (OAuth) |
transcribe-it ingest gmail |
Ingest transcripts from Gmail |
Ingest options
| Flag | Description |
|---|---|
--days N |
How many days back to search |
--from YYYY-MM-DD |
Start date |
--to YYYY-MM-DD |
End date |
--profile NAME |
Gmail auth profile |
--dry-run |
List matching emails without processing |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file transcribe_it-0.1.1.tar.gz.
File metadata
- Download URL: transcribe_it-0.1.1.tar.gz
- Upload date:
- Size: 138.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
476e4a7ff0bec978eac93d19d912d7d94502fdadbe54053fbcdb32854577c766
|
|
| MD5 |
d51648988a7d60185131fe172d3b2201
|
|
| BLAKE2b-256 |
d3ee40e2117273214d3b2cc1581ee095971760fc7c38927cd3fe3176ca26b74e
|
File details
Details for the file transcribe_it-0.1.1-py3-none-any.whl.
File metadata
- Download URL: transcribe_it-0.1.1-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ef59ac6f59ef0d0fc259f8c792e8fbaeaf63961fa9cc40899ccf206024f09ed
|
|
| MD5 |
30b823e58367e13b63e2ae95c233090b
|
|
| BLAKE2b-256 |
298ab20d735b63fbe509b9292d001d38e8ece3a752400d13268421814bada966
|