https://github.com/zaryab2000/decipher-news-agent
DNA is personalized news agent for me.
https://github.com/zaryab2000/decipher-news-agent
Last synced: 2 months ago
JSON representation
DNA is personalized news agent for me.
- Host: GitHub
- URL: https://github.com/zaryab2000/decipher-news-agent
- Owner: zaryab2000
- Created: 2026-03-21T10:11:13.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-02T13:39:19.000Z (3 months ago)
- Last Synced: 2026-04-03T02:38:15.454Z (2 months ago)
- Language: Python
- Size: 64.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DNA - Decipher News Agent
Personal AI agent that generates a daily newspaper from email newsletters, YouTube videos, and news APIs, published as a Notion sub-page.
## Setup
### 1. Install Dependencies
```bash
uv venv && uv pip install -e .
brew install yt-dlp
```
### 2. Google Cloud Setup
1. Create a Google Cloud project
2. Enable **Gmail API** and **YouTube Data API v3**
3. Create **OAuth 2.0 Desktop app** credentials
4. Copy client ID and secret to `.env`:
```
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
```
5. Run the auth script and complete browser consent:
```bash
uv run scripts/google_auth.py
```
6. Copy the printed refresh token to `.env`:
```
GOOGLE_REFRESH_TOKEN=your_refresh_token
```
### 3. Gmail Setup
Create a Gmail filter that auto-labels incoming newsletters with `DNA/Newsletters`.
### 4. YouTube Setup
1. Create a "DNA Queue" playlist on YouTube
2. Copy the playlist ID to `dna-config.yaml` under `youtube.playlist_id`
### 5. News API Setup
1. Create a [NewsAPI.org](https://newsapi.org) account
2. Copy API key to `.env` as `NEWS_API_KEY`
3. (Optional) Create a [GNews.io](https://gnews.io) account for fallback, set `GNEWS_API_KEY`
### 6. Notion Setup
1. Create a "Zaryab's Newspaper" page in Notion
2. Copy the page ID to `dna-config.yaml` under `notion.parent_page_id`
3. Share the page with the Notion MCP integration
## Usage
In Claude Code CLI:
```bash
/report-news
```
## Testing Individual Scripts
```bash
uv run scripts/fetch_news.py # News API
uv run scripts/fetch_gmail.py # Gmail newsletters
uv run scripts/fetch_youtube.py # YouTube playlist
```
Each script outputs JSON to stdout. Errors go to stderr with non-zero exit.