关于 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