browser-history について
Firefox または Chromium の閲覧履歴を検索・分析するスキルです。SQLite クエリを使ってページ、閲覧日、頻繁に訪れるサイト、取得可能な滞在時間データを調べます。
主な機能
- 01最近使用したブラウザーの検出
- 02キーワードや日付による履歴検索
- 03訪問回数と閲覧時間の分析
- 04頻繁に訪れるサイトの集計
活用シーン
- 01以前見たページの検索
- 02期間を指定した閲覧履歴の確認
- 03サイトごとの滞在時間の確認
- 04頻繁に訪れるドメインの特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ samhvw8/ dotfiles --skill browser-historyインストール後、Claude Code で/browser-historyを入力して読み込まれたか確認します。
同梱ファイルexecutable_find-browser.sh
詳細
ブラウザー履歴の検索
ユーザーのブラウザー履歴を検索し、閲覧したページを見つけたり、閲覧パターンを分析したり、忘れてしまった情報を取得したりします。
使用するタイミング
- ユーザーが閲覧したページについて尋ねた場合(「先週、どの GitHub リポジトリを見た?」など)
- 忘れてしまったページを探したい場合(「読んだ LLM に関する記事を探して」など)
- 閲覧習慣について尋ねた場合(「Twitter にどれくらい時間を費やした?」など)
- 閲覧統計を確認したい場合(「最もよく訪問したサイトを表示して」など)
要件
sqlite3CLI
セットアップ
まず、次を実行して利用可能なブラウザーを検出します。
./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_date | Unix エポックからのマイクロ秒 |
visit_count | 訪問回数 |
frecency | 頻度と新しさのスコア |
Firefox(moz_places_metadata)
| 列 | 説明 |
|---|---|
place_id | moz_places への外部キー |
total_view_time | ページに費やした時間(ミリ秒) |
created_at | Unix エポックからのミリ秒 |
scrolling_time | スクロールに費やした時間 |
key_presses | キーを押した回数 |
Chromium(urls)
| 列 | 説明 |
|---|---|
url | 完全な URL |
title | ページタイトル |
last_visit_time | 1601-01-01 からのマイクロ秒 |
visit_count | 訪問回数 |
出力ガイドライン
- 関連する場合はドメインごとにまとめ、読みやすい形式で結果を提示します
- 時間の分析では、生のミリ秒値ではなく時間・分で表示します
- 履歴を表示する際は、日付とクリック可能なリンクを含めます
- 結果が多い場合は、ドメインまたは期間ごとに要約します
- 関連する場合は、小さな ASCII/Unicode チャート(日ごとの内訳、ヒストグラム)を含めてもかまいません
出力例については @README.md を参照してください。
コメント
Markdown 対応