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