SuperAPI AI 工具集

browser-history

通用与其它

查看项目

更新于 10-16 02:06

技能介绍

用途

browser-history 用于搜索用户的本地浏览器历史记录,帮助查找访问过的页面、分析浏览模式以及找回遗忘的信息。

适用场景包括:

  • 用户询问访问过的页面(例如“我上周看了哪些 GitHub 仓库?”)
  • 用户想找回遗忘的页面(例如“找到我读过的那篇关于 LLM 的文章”)
  • 用户询问浏览习惯(例如“我在 Twitter 上花了多少时间?”)
  • 用户想要浏览统计(例如“显示我最常访问的网站”)

主要能力

  • 按关键词搜索历史记录(匹配 URL 或标题)
  • 按日期范围搜索历史记录
  • 分析在特定网站上花费的时间(Firefox 支持)
  • 统计最常访问的网站
  • 支持 Firefox 和 Chromium 两类浏览器数据库

使用方式

环境要求

需要 sqlite3 命令行工具。

设置

首先检测可用浏览器,运行:

./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 epoch)以来的微秒数。

转换方式:(timestamp/1000000) - 11644473600 得到 Unix epoch。

按关键词搜索:

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 epoch 起的微秒数
visit_count 访问次数
frecency 频率 + 最近度评分

Firefox(moz_places_metadata)

列 说明
place_id 指向 moz_places 的外键
total_view_time 在页面上花费的毫秒数
created_at 自 Unix epoch 起的毫秒数
scrolling_time 滚动花费的时间
key_presses 按键次数

Chromium(urls)

列 说明
url 完整 URL
title 页面标题
last_visit_time 自 1601-01-01 起的微秒数
visit_count 访问次数

输出指南

  • 以可读格式呈现结果,相关时按域名分组
  • 时间分析显示小时/分钟,而非原始毫秒数
  • 显示历史记录时,包含日期和可点击链接
  • 如果结果很多,按域名或时间段汇总
  • 相关时可包含小型 ASCII/Unicode 图表(每日细分、直方图)

更多输出示例参见 @README.md。

适用场景

  • 找回遗忘的网页或文章
  • 回顾特定时间段内的浏览记录
  • 分析在某个网站上的时间投入
  • 查看最常访问的网站排行

限制

  • 需要 sqlite3 命令行工具
  • 仅支持 Firefox 和 Chromium 系列浏览器
  • 时间花费分析仅 Firefox 支持(依赖 moz_places_metadata)
  • 浏览器数据库结构可能随版本变化,需注意字段兼容性