mcpField
B
browser-history

browser-history

github.com/samhvw8生産性1548 回インストール今日更新
リポジトリ

browser-history について

Firefox または Chromium の閲覧履歴を検索・分析するスキルです。SQLite クエリを使ってページ、閲覧日、頻繁に訪れるサイト、取得可能な滞在時間データを調べます。

主な機能

  1. 01最近使用したブラウザーの検出
  2. 02キーワードや日付による履歴検索
  3. 03訪問回数と閲覧時間の分析
  4. 04頻繁に訪れるサイトの集計

活用シーン

  1. 01以前見たページの検索
  2. 02期間を指定した閲覧履歴の確認
  3. 03サイトごとの滞在時間の確認
  4. 04頻繁に訪れるドメインの特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/samhvw8/dotfiles --skill browser-history

インストール後、Claude Code で/browser-historyを入力して読み込まれたか確認します。

同梱ファイルexecutable_find-browser.sh

詳細

ブラウザー履歴の検索

ユーザーのブラウザー履歴を検索し、閲覧したページを見つけたり、閲覧パターンを分析したり、忘れてしまった情報を取得したりします。

使用するタイミング

  • ユーザーが閲覧したページについて尋ねた場合(「先週、どの GitHub リポジトリを見た?」など)
  • 忘れてしまったページを探したい場合(「読んだ LLM に関する記事を探して」など)
  • 閲覧習慣について尋ねた場合(「Twitter にどれくらい時間を費やした?」など)
  • 閲覧統計を確認したい場合(「最もよく訪問したサイトを表示して」など)

要件

  • sqlite3 CLI

セットアップ

まず、次を実行して利用可能なブラウザーを検出します。

./find-browser.sh
  • 出力:PATH,TYPE,BROWSER,LAST_MODIFIED
  • TYPE:firefox または chromium(SQL 構文を決定します)
  • デフォルトでは最初の結果(最後に使用したブラウザー)を使用します
  • 複数のブラウザーが最近(過去 24 時間以内に)使用されている場合は、どのブラウザーを検索するかユーザーに尋ねます

データベースのクエリ

ブラウザーが開いている場合でもデータベースを読み取れるよう、SQLite URI で ?immutable=1 を使用します。

sqlite3 "file:///path/to/history.db?immutable=1" "SELECT ..."
Firefox データベース(places.sqlite)

キーワードで検索:

SELECT
    title,
    url,
    datetime(last_visit_date/1000000, 'unixepoch', 'localtime') as visit_date
FROM moz_places
WHERE url LIKE '%keyword%' OR title LIKE '%keyword%'
ORDER BY last_visit_date DESC
LIMIT 50;

日付範囲で検索:

SELECT url, title, datetime(last_visit_date/1000000, 'unixepoch', 'localtime') as visit_date
FROM moz_places
WHERE last_visit_date > strftime('%s', '2025-01-01') * 1000000
  AND last_visit_date < strftime('%s', '2025-01-31') * 1000000
ORDER BY last_visit_date DESC;

滞在時間の分析(moz_places_metadata を使用):

SELECT
    SUM(m.total_view_time) / 1000 / 60 as minutes,
    COUNT(*) as sessions
FROM moz_places_metadata m
JOIN moz_places p ON m.place_id = p.id
WHERE p.url LIKE '%example.com%'
  AND m.created_at > strftime('%s', '2025-01-01') * 1000;

注:created_at はミリ秒単位、last_visit_date はマイクロ秒単位です。

最もよく訪問したサイト:

SELECT
    SUBSTR(url, INSTR(url, '://') + 3,
           INSTR(SUBSTR(url, INSTR(url, '://') + 3), '/') - 1) as domain,
    SUM(visit_count) as visits
FROM moz_places
WHERE url LIKE 'http%'
GROUP BY domain
ORDER BY visits DESC
LIMIT 20;
Chromium データベース(History)

重要: Chromium のタイムスタンプは、1601 年 1 月 1 日(Windows エポック)からのマイクロ秒単位です。

変換式:(timestamp/1000000) - 11644473600 で Unix エポックになります。

キーワードで検索:

SELECT
    title,
    url,
    datetime((last_visit_time/1000000)-11644473600, 'unixepoch', 'localtime') as visit_date
FROM urls
WHERE url LIKE '%keyword%' OR title LIKE '%keyword%'
ORDER BY last_visit_time DESC
LIMIT 50;

日付範囲で検索:

SELECT url, title, datetime((last_visit_time/1000000)-11644473600, 'unixepoch', 'localtime') as visit_date
FROM urls
WHERE last_visit_time > (strftime('%s', '2025-01-01') + 11644473600) * 1000000
  AND last_visit_time < (strftime('%s', '2025-01-31') + 11644473600) * 1000000
ORDER BY last_visit_time DESC;

データベーススキーマ

Firefox(moz_places)
列説明
url完全な URL
titleページタイトル
last_visit_dateUnix エポックからのマイクロ秒
visit_count訪問回数
frecency頻度と新しさのスコア
Firefox(moz_places_metadata)
列説明
place_idmoz_places への外部キー
total_view_timeページに費やした時間(ミリ秒)
created_atUnix エポックからのミリ秒
scrolling_timeスクロールに費やした時間
key_pressesキーを押した回数
Chromium(urls)
列説明
url完全な URL
titleページタイトル
last_visit_time1601-01-01 からのマイクロ秒
visit_count訪問回数

出力ガイドライン

  • 関連する場合はドメインごとにまとめ、読みやすい形式で結果を提示します
  • 時間の分析では、生のミリ秒値ではなく時間・分で表示します
  • 履歴を表示する際は、日付とクリック可能なリンクを含めます
  • 結果が多い場合は、ドメインまたは期間ごとに要約します
  • 関連する場合は、小さな ASCII/Unicode チャート(日ごとの内訳、ヒストグラム)を含めてもかまいません

出力例については @README.md を参照してください。

コメント