Browsing History Skill
Query browsing history from all synced devices with natural language.
When to Use
Use this skill when the user asks about:
- •Articles/pages they read (yesterday, last week, etc.)
- •Browsing history from specific devices (iPhone, iPad, desktop)
- •Finding pages by topic, domain, or keyword
- •Exporting browsing history to files
- •Grouping history by category or domain
Database
Location: ~/data/browsing.db
Synced devices: iPhone, iPad, Mac, desktop, Android
Timestamps
- •visit_time: Actual visit timestamp from Chrome (100% coverage for all devices)
- •first_seen: Import timestamp (fallback when visit_time unavailable)
The skill uses COALESCE(visit_time, first_seen) for accurate time-based queries.
Usage
python3 ~/.claude/skills/browsing-history/browsing_query.py "<query>" [options]
Options
| Option | Description | Example |
|---|---|---|
--device | Filter by device | --device iPhone |
--days | Number of days back | --days 7 |
--domain | Filter by domain | --domain medium.com |
--limit | Max results | --limit 50 |
--format | Output format | --format json |
--output | Save to file | --output history.md |
--group-by | Group results | --group-by domain or --group-by category |
--categorize | Use LLM to categorize | --categorize |
Example Queries
Basic queries:
# Yesterday's browsing history python3 ~/.claude/skills/browsing-history/browsing_query.py "yesterday" # Articles from iPhone yesterday python3 ~/.claude/skills/browsing-history/browsing_query.py "yesterday" --device iPhone # Last week's history grouped by domain python3 ~/.claude/skills/browsing-history/browsing_query.py "last week" --group-by domain # Find articles about economics python3 ~/.claude/skills/browsing-history/browsing_query.py "economics" --days 7
Save to Obsidian:
# Save yesterday's history as markdown python3 ~/.claude/skills/browsing-history/browsing_query.py "yesterday" \ --output ~/Research/vault/browsing-2025-11-27.md # Save with LLM categorization python3 ~/.claude/skills/browsing-history/browsing_query.py "yesterday" \ --categorize --group-by category \ --output ~/Research/vault/browsing-categorized.md # Save as JSON python3 ~/.claude/skills/browsing-history/browsing_query.py "last week" \ --format json --output ~/Research/vault/history.json
Device-specific:
# iPhone tabs python3 ~/.claude/skills/browsing-history/browsing_query.py "yesterday" --device iPhone # Desktop history python3 ~/.claude/skills/browsing-history/browsing_query.py "today" --device desktop # All mobile devices python3 ~/.claude/skills/browsing-history/browsing_query.py "yesterday" --device mobile
Search and filter:
# Sites starting with "joy" python3 ~/.claude/skills/browsing-history/browsing_query.py "joy" --days 7 # Medium.com articles python3 ~/.claude/skills/browsing-history/browsing_query.py "last month" --domain medium.com
Natural Language Patterns
The script recognizes:
| Pattern | Interpretation |
|---|---|
yesterday | Previous day |
today | Current day |
last week | Past 7 days |
last month | Past 30 days |
last N days | Past N days |
Keywords are searched in URL and title.
Output Formats
Markdown (default)
# Browsing History: yesterday *47 unique URLs from 2025-11-27* ## 2025-11-27 - [Article Title](https://example.com/article) - iPhone - 14:32 - [Another Page](https://another.com/page) - desktop - 16:45
Markdown with categories (--categorize --group-by category)
# Browsing History: yesterday ## News & Current Events - [Breaking: Something Happened](https://news.com/...) - iPhone ## Technology & Programming - [How to Build APIs](https://dev.to/...) - desktop ## Research & Learning - [Academic Paper on AI](https://arxiv.org/...) - Mac
JSON (--format json)
{
"query": "yesterday",
"date_range": "2025-11-27",
"total": 47,
"results": [
{"url": "...", "title": "...", "device": "iPhone", "time": "14:32", "category": "News"}
]
}
Workflow Examples
User: "Show me articles I read yesterday on my phone"
python3 ~/.claude/skills/browsing-history/browsing_query.py "yesterday" --device iPhone
User: "Save my browsing history from last week to Obsidian, grouped by category"
python3 ~/.claude/skills/browsing-history/browsing_query.py "last week" \ --categorize --group-by category \ --output ~/Research/vault/browsing-week.md
User: "Help me find that article about economics I read on my computer"
python3 ~/.claude/skills/browsing-history/browsing_query.py "economics" \ --device desktop --days 7
User: "Sites that start with 'joy' from last week"
python3 ~/.claude/skills/browsing-history/browsing_query.py "joy" --days 7
Notes
- •URLs are deduplicated per day (same URL on same day = one entry)
- •visit_time: Actual visit timestamps from Chrome history
- •Desktop: 100% coverage (from Chrome SQLite
last_visit_time) - •Mobile: 100% coverage (extracted from Chrome Sync LevelDB)
- •Desktop: 100% coverage (from Chrome SQLite
- •first_seen: Fallback import timestamp (~15min resolution)
- •LLM categorization uses Claude 3.5 Haiku via
llmCLI