mcpbeat Sign in

Browsing History Skill for Claude

Query browsing history from all synced devices (iPhone, Mac, iPad, desktop). Supports natural language queries for filtering by date, device, domain, and keywords. Uses LLM classification for content categories. Can output to stdout or save as markdown/JSON to Obsidian vault.

8k tokens
context cost
the whole folder, loaded on every use
6
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
337
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/glebis/claude-skills --skill browsing-history

What comes with it

26 066 bytes besides the instruction
.claude-plugin/plugin.json
README.md
browsing_query.py
scripts/init_db.py
scripts/sync_chrome_history.py

The instruction itself

14 sections, as written by the author

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)
  • first_seen: Fallback import timestamp (~15min resolution)
  • LLM categorization uses Claude 3.5 Haiku via llm CLI

Other skills for the same job

different authors, same section of the catalogue
Notion Template Business
by ComeOnOliver
×2

Expert in building and selling Notion templates as a business - not just making templates, but building a sustainable digital product business. Covers template design, pricing, marketplaces, marketing, and scaling to real revenue. Use when: notion template, sell templates, digital product, notion business, gumroad.

4k tokens
Draw
by lingxling
×1

Vector graphics and diagram creation, format conversion (ODG/SVG/PDF) with LibreOffice Draw.

1k tokens
Binary Re Synthesis
by ComeOnOliver
×1

Use when ready to document findings, generate a report, or summarize binary analysis results. Compiles analysis findings into structured reports - correlates facts from triage/static/dynamic phases, validates hypotheses, generates documentation with evidence chains. Keywords - "summarize findings", "generate report", "document analysis", "what did we find", "write up results", "export findings

5k tokens
Exam Ready
by github
vendor

> Activate this skill when a student provides study material (PDF or pasted notes) and a syllabus, and wants to prepare for an exam. Extracts key definitions, points, keywords, diagrams, exam-ready sentences, and practice questions strictly from the provided material.

988 tokens
Xiaohongshu Makeup
by anbeime

小红书美妆内容创作技能,支持笔记生成、笔记优化、文生图描述创作;适用于美妆护肤产品的内容创作、测评和营销推广

13k tokens zh
Proposal Writer
by jezweb

Write a client proposal, quote, scope of work, or engagement letter for a service business. Covers project understanding, scope, timeline, pricing presentation, and terms. Use whenever the user asks for a proposal, quote, project proposal, client proposal, SOW, statement of work, engagement letter, or B2B service engagement document — for web dev, consulting, trades, or any service business.

3k tokens
Docs Page Generator
by kostja94

When the user wants to create, optimize, or structure a documentation site. Also use when the user mentions "docs," "documentation site," "docs subdomain," "docs.yourdomain.com," "help center," "knowledge base," "Getting Started," "API Reference," "user guides," or "tutorials." For API marketing landing, use api-page-generator.

840 tokens
Linkedin Posts
by kostja94

When the user wants to create LinkedIn post copy or optimize for LinkedIn. Also use when the user mentions "LinkedIn post," "LinkedIn article," "professional post," "post to LinkedIn," "LinkedIn content," "LinkedIn copy," "B2B LinkedIn," "LinkedIn engagement," "LinkedIn feed," "share box," "document post," "poll," "Newsletter," "reshare," or "LinkedIn marketing." For LinkedIn ads, use linkedin-ads.

3k tokens

How to use it

Copy the folder

Take glebis/browsing-history from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.