Skip to content
firefox-bookmarks logo

Firefox Bookmarks Analyzer

firefox-bookmarks

Analyze Firefox bookmarks and tags directly from the places.sqlite database. Extract recent bookmarks, analyze tag popularity, find bookmark statistics, and explore bookmark metadata. Use when working with Firefox bookmarks, analyzing bookmark usage, organizing tags, or extracting bookmark data f...

SKILL.md

Full skill instructions

Firefox Bookmarks Analyzer

Overview

This Skill provides direct access to Firefox bookmark data by querying the places.sqlite database. It includes utilities for extracting bookmarks, analyzing tags, and generating insights about bookmark usage.

Capabilities

  • Extract recent bookmarks with metadata (URL, title, date added, last visited)
  • Analyze bookmark tags to find most popular tags and tag usage statistics
  • Query Firefox database directly using SQLite
  • Database schema exploration to understand Firefox's bookmark structure
  • Cross-platform support for macOS, Linux, and Windows Firefox profiles

Prerequisites

  • Ruby (system Ruby is sufficient)
  • sqlite3 gem (usually pre-installed on macOS)
  • Firefox installed with existing bookmarks

Instructions

When the user asks to work with Firefox bookmarks, follow these steps:

1. Understanding User Intent

Determine what the user wants:

  • List recent bookmarks: Use the bookmark extraction script
  • Analyze tags: Use the tag analysis script
  • Explore database: Use database exploration utilities
  • Custom queries: Help write SQLite queries against places.sqlite

2. Locate Firefox Profile

The scripts automatically find the Firefox profile using these paths:

  • macOS: ~/​Library/​Application Support/​Firefox/​Profiles/​*default*
  • Linux: ~/​.mozilla/​firefox/​*default*
  • Windows: ~/​AppData/​Roaming/​Mozilla/​Firefox/​Profiles/​*default*

3. Run Appropriate Script

Use the scripts located in ~/​.claude/​skills/​firefox-bookmarks/​scripts/:

Extract Recent Bookmarks:

ruby ~/​.claude/​skills/​firefox-bookmarks/​scripts/​extract_bookmarks.rb [limit]

Analyze Tags:

ruby ~/​.claude/​skills/​firefox-bookmarks/​scripts/​analyze_tags.rb

Explore Database:

ruby ~/​.claude/​skills/​firefox-bookmarks/​scripts/​explore_db.rb

4. Present Results

  • Format the output clearly for the user
  • Highlight key insights (most used tags, recently added bookmarks, etc.)
  • Suggest follow-up actions or analyses

Common Use Cases

Use Case 1: Find Recent Bookmarks

User asks: "What are my most recent Firefox bookmarks?"

Response: Run extract_bookmarks.rb with default limit (50) and show the results.

Use Case 2: Tag Analysis

User asks: "What are my most popular bookmark tags?"

Response: Run analyze_tags.rb and present the top tags with usage counts.

Use Case 3: Custom Analysis

User asks: "Show me all bookmarks tagged with 'ruby'"

Response: Write a custom SQLite query to filter by specific tag.

Use Case 4: Database Exploration

User asks: "How does Firefox store bookmarks?"

Response: Run explore_db.rb to show the database schema and explain the structure.

Database Structure Reference

Firefox stores bookmarks in places.sqlite with these key tables:

  • moz_bookmarks: Bookmark entries, folders, and tags

    • id: Unique identifier
    • type: 1=bookmark, 2=folder
    • fk: Foreign key to moz_places (NULL for folders/​tags)
    • parent: Parent folder ID
    • title: Bookmark/​folder/​tag name
    • dateAdded: Timestamp in microseconds
    • lastModified: Last modification timestamp
  • moz_places: URL and visit data

    • id: Unique identifier
    • url: The URL
    • title: Page title
    • visit_count: Number of visits
    • last_visit_date: Last visit timestamp
  • Tags Structure: Tags are stored as folders with parent ID 4

    • Tag folder: parent=4, fk=NULL, title=tag_name
    • Tagged bookmarks: Children of tag folder

Safety Features

All scripts create temporary copies of places.sqlite to avoid:

  • Database locking issues (Firefox may have the DB open)
  • Accidental data corruption
  • Read-only access ensures no modifications

Error Handling

If scripts fail:

  1. Firefox not found: Check Firefox installation and profile location
  2. Database locked: Close Firefox and retry
  3. Missing dependencies: Install sqlite3 gem (gem install sqlite3 --user-install)
  4. Permission errors: Check file permissions on Firefox profile directory

Advanced Usage

Custom Queries

Help users write custom SQLite queries:

-- Find bookmarks by keyword in title
SELECT url, title, datetime(dateAdded/​1000000, 'unixepoch') as added
FROM moz_bookmarks b
JOIN moz_places p ON b.fk = p.id
WHERE p.title LIKE '%keyword%'
ORDER BY dateAdded DESC;

Filtering and Aggregation

Examples of useful analyses:

  • Bookmarks added in last 30 days
  • Most visited bookmarked pages
  • Untagged bookmarks
  • Bookmark folder depth analysis
  • Duplicate URL detection

Limitations

  • Read-only access (cannot modify bookmarks)
  • Requires Firefox to be closed for reliable database access (scripts use temp copies)
  • Tag analysis only works if user has created tags in Firefox

See Also

  • REFERENCE.md: Detailed database schema documentation
  • EXAMPLES.md: Complete usage examples with sample outputs
  • scripts/: Ruby implementation files

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View