mcpField
B
browsing-history

browsing-history

github.com/glebisProductivity401184 installsUpdated 1d ago
Repository

About browsing-history

browsing-history is a Claude Code skill for querying browsing history across synced devices. It supports natural-language date searches, filters and grouping, with Markdown or JSON export.

Key features

  1. 01Query history in natural language
  2. 02Filter by device, date, or domain
  3. 03Group by category or domain
  4. 04Export as Markdown or JSON
  5. 05Categorize with an LLM

Use cases

  1. 01Find articles read yesterday on iPhone
  2. 02Search recent pages by topic or domain
  3. 03Save a categorized weekly history

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/glebis/claude-skills --skill browsing-history

After installing, type/browsing-historyin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

browsing_query.py
README.md
.claude-plugin/
plugin.json
scripts/
init_db.py
sync_chrome_history.py

Details

From the project README

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
OptionDescriptionExample
--deviceFilter by device--device iPhone
--daysNumber of days back--days 7
--domainFilter by domain--domain medium.com
--limitMax results--limit 50
--formatOutput format--format json
--outputSave to file--output history.md
--group-byGroup results--group-by domain or --group-by category
--categorizeUse 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:

PatternInterpretation
yesterdayPrevious day
todayCurrent day
last weekPast 7 days
last monthPast 30 days
last N daysPast 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)
  • first_seen: Fallback import timestamp (~15min resolution)
  • LLM categorization uses Claude 3.5 Haiku via llm CLI

Comments

Markdown supported