{"id":43955257,"url":"https://github.com/robzolkos/web-recap","last_synced_at":"2026-02-07T04:33:05.811Z","repository":{"id":329052515,"uuid":"1117729147","full_name":"robzolkos/web-recap","owner":"robzolkos","description":"Help turn your browser history into AI-ready insights","archived":false,"fork":false,"pushed_at":"2025-12-17T02:38:28.000Z","size":30,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-20T16:43:43.211Z","etag":null,"topics":["ai","browser-history","chrome","cli","firefox","golang","llm","safari"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robzolkos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-16T18:20:51.000Z","updated_at":"2025-12-20T06:15:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/robzolkos/web-recap","commit_stats":null,"previous_names":["robzolkos/web-recap"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/robzolkos/web-recap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robzolkos%2Fweb-recap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robzolkos%2Fweb-recap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robzolkos%2Fweb-recap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robzolkos%2Fweb-recap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robzolkos","download_url":"https://codeload.github.com/robzolkos/web-recap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robzolkos%2Fweb-recap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29186738,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T03:35:06.566Z","status":"ssl_error","status_checked_at":"2026-02-07T03:34:57.604Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","browser-history","chrome","cli","firefox","golang","llm","safari"],"created_at":"2026-02-07T04:33:05.214Z","updated_at":"2026-02-07T04:33:05.791Z","avatar_url":"https://github.com/robzolkos.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# web-recap\n\nExtract browser history from Chrome, Chromium, Brave, Firefox, Safari, and Edge browsers and output it in JSON format suitable for analysis by LLMs and other tools.\n\n\u003e **Privacy:** This tool runs entirely on your machine and never transmits data. Your browser history stays local unless you explicitly pipe it to an external service (like an LLM API).\n\n## Features\n\n- **Multi-browser support**: Chrome, Chromium, Edge, Brave, Firefox, and Safari\n- **Cross-platform**: Works on Linux, macOS, and Windows\n- **Automatic detection**: Auto-detects installed browsers or specify manually\n- **Date filtering**: Extract history for specific dates or date ranges\n- **Timezone support**: Parse dates in your local timezone or specify any timezone\n- **Time filtering**: Extract history for specific hours or time ranges\n- **LLM-friendly output**: JSON format optimized for consumption by language models\n- **Minimal dependencies**: Pure Go implementation with no CGO required for better cross-platform compilation\n\n## Installation\n\n### Download Binary\n\nDownload the latest binary from [GitHub Releases](https://github.com/robzolkos/web-recap/releases):\n\n| Platform | Binary |\n|----------|--------|\n| Linux | `web-recap-linux-amd64` |\n| macOS (Intel) | `web-recap-darwin-amd64` |\n| macOS (Apple Silicon) | `web-recap-darwin-arm64` |\n| Windows | `web-recap-windows-amd64.exe` |\n\n```bash\n# Linux\ncurl -L https://github.com/robzolkos/web-recap/releases/latest/download/web-recap-linux-amd64 -o ~/.local/bin/web-recap\nchmod +x ~/.local/bin/web-recap\n\n# macOS (Apple Silicon)\ncurl -L https://github.com/robzolkos/web-recap/releases/latest/download/web-recap-darwin-arm64 -o ~/.local/bin/web-recap\nchmod +x ~/.local/bin/web-recap\n\n# macOS (Intel)\ncurl -L https://github.com/robzolkos/web-recap/releases/latest/download/web-recap-darwin-amd64 -o ~/.local/bin/web-recap\nchmod +x ~/.local/bin/web-recap\n```\n\n\u003e **Note:** Ensure `~/.local/bin` is in your PATH. Add `export PATH=\"$HOME/.local/bin:$PATH\"` to your shell config if needed.\n\n### Build from Source\n\nRequires Go 1.21+\n\n```bash\ngit clone https://github.com/robzolkos/web-recap.git\ncd web-recap\ngo build ./cmd/web-recap\n./web-recap --help\n```\n\n## Usage\n\n### Basic Commands\n\n```bash\n# Show help\nweb-recap --help\n\n# List detected browsers\nweb-recap list\n\n# Show version\nweb-recap version\n```\n\n### Extract History\n\n```bash\n# Extract today's history from default browser\nweb-recap\n\n# Extract from specific browser\nweb-recap --browser chrome\nweb-recap --browser firefox\nweb-recap --browser safari\n\n# Extract from specific date\nweb-recap --date 2025-12-15\n\n# Extract date range\nweb-recap --start-date 2025-12-01 --end-date 2025-12-15\n\n# Extract from all browsers\nweb-recap --all-browsers\n\n# Save to file\nweb-recap -o history.json\n\n# Custom database path\nweb-recap --db-path /path/to/History\n\n# Timezone support (dates interpreted in your timezone)\nweb-recap --date 2025-12-15 --tz America/New_York\n\n# Explicit UTC mode\nweb-recap --date 2025-12-15 --utc\n\n# Time filtering - extract history for specific hours\nweb-recap --date 2025-12-15 --start-time 12:00 --end-time 13:00\n\n# Shorthand for single hour\nweb-recap --date 2025-12-15 --time 12  # Extracts 12:00-12:59\n```\n\n### Command Examples\n\n```bash\n# Get Chrome history from last 7 days\nweb-recap --browser chrome --start-date 2025-12-09 --end-date 2025-12-16\n\n# Export all browser history to file\nweb-recap --all-browsers --output all-history.json\n\n# Check what browsers are available\nweb-recap list\n\n# Extract yesterday's activity between 12pm and 1pm (in your local timezone)\nweb-recap --date \"$(date -d yesterday +%Y-%m-%d)\" --start-time 12:00 --end-time 13:00\n\n# Extract from a specific timezone\nweb-recap --date 2025-12-15 --tz Europe/London --time 14\n\n# Explicitly use UTC (useful in scripts or CI)\nweb-recap --start-date 2025-12-09 --end-date 2025-12-15 --utc --all-browsers\n```\n\n## JSON Output Format\n\nThe tool outputs history in the following JSON format:\n\n```json\n{\n  \"browser\": \"chrome\",\n  \"start_date\": \"2025-12-15T00:00:00Z\",\n  \"end_date\": \"2025-12-15T23:59:59Z\",\n  \"timezone\": \"America/New_York\",\n  \"total_entries\": 343,\n  \"entries\": [\n    {\n      \"timestamp\": \"2025-12-15T09:15:23Z\",\n      \"url\": \"https://example.com/page\",\n      \"title\": \"Example Page Title\",\n      \"visit_count\": 3,\n      \"domain\": \"example.com\",\n      \"browser\": \"chrome\"\n    },\n    ...\n  ]\n}\n```\n\n## Output Fields\n\n- **browser**: Browser name (chrome, firefox, safari, edge)\n- **start_date**: Report period start (ISO 8601 UTC format)\n- **end_date**: Report period end (ISO 8601 UTC format)\n- **timezone**: Timezone used for date interpretation (e.g., \"America/New_York\", \"UTC\")\n- **total_entries**: Number of history entries in the report\n- **entries**: Array of history entries, each containing:\n  - **timestamp**: Visit time in ISO 8601 UTC format\n  - **url**: Full URL visited\n  - **title**: Page title\n  - **visit_count**: Total visits to this URL\n  - **domain**: Extracted domain name\n  - **browser**: Browser source\n\n## LLM Usage\n\nThe JSON output is designed to be easily consumed by language models. You can pipe the output directly to your LLM:\n\n```bash\n# Get chrome history and pass to Claude\nweb-recap --browser chrome --date 2025-12-15 | claude --prompt \"Summarize my web activity\"\n\n# Or save to file for later analysis\nweb-recap --all-browsers --output history.json\n# Then use with your LLM as context\n```\n\n## Supported Browsers\n\n### Chrome/Chromium/Edge/Brave\n- **Platforms**: Linux, macOS, Windows\n- **Database**: SQLite (`History` file)\n- **Timestamp format**: Microseconds since 1601-01-01\n\n### Firefox\n- **Platforms**: Linux, macOS, Windows\n- **Database**: SQLite (`places.sqlite`)\n- **Timestamp format**: Microseconds since Unix epoch\n\n### Safari\n- **Platforms**: macOS only\n- **Database**: SQLite (`History.db`)\n- **Timestamp format**: Seconds since 2001-01-01\n\n## Database Locations\n\n### Linux\n- Chrome: `~/.config/google-chrome/Default/History`\n- Chromium: `~/.config/chromium/Default/History`\n- Edge: `~/.config/microsoft-edge/Default/History`\n- Brave: `~/.config/BraveSoftware/Brave-Browser/Default/History`\n- Firefox: `~/.mozilla/firefox/*/places.sqlite`\n\n### macOS\n- Chrome: `~/Library/Application Support/Google/Chrome/Default/History`\n- Chromium: `~/Library/Application Support/Chromium/Default/History`\n- Edge: `~/Library/Application Support/Microsoft Edge/Default/History`\n- Brave: `~/Library/Application Support/BraveSoftware/Brave-Browser/Default/History`\n- Firefox: `~/Library/Application Support/Firefox/*/places.sqlite`\n- Safari: `~/Library/Safari/History.db`\n\n### Windows\n- Chrome: `%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default\\History`\n- Chromium: `%LOCALAPPDATA%\\Chromium\\User Data\\Default\\History`\n- Edge: `%LOCALAPPDATA%\\Microsoft\\Edge\\User Data\\Default\\History`\n- Brave: `%LOCALAPPDATA%\\BraveSoftware\\Brave-Browser\\User Data\\Default\\History`\n- Firefox: `%LOCALAPPDATA%\\Mozilla\\Firefox\\*/places.sqlite`\n\n## Technical Details\n\n### Database Locking\nThe tool automatically handles browser database locking by copying the database to a temporary file before reading it. This allows you to extract history while your browser is running.\n\n### Timestamp Conversion\nEach browser uses a different timestamp format which is automatically converted to ISO 8601 UTC format for consistency.\n\n### Timezone Support\nBy default, web-recap interprets dates in your system's local timezone. You can:\n- Explicitly specify a timezone with `--tz America/New_York`\n- Force UTC interpretation with `--utc` (useful for scripts and CI/CD)\n- Extract by time of day with `--start-time` and `--end-time` (in 24-hour format)\n- Use the `--time` shorthand for single-hour extraction (e.g., `--time 12` extracts 12:00-12:59)\n\nAll dates are converted to UTC for database queries, and timestamps in the JSON output are always in UTC format.\n\n### Date Filtering\nWhen using `--date`, it extracts history for the entire 24-hour period in the specified timezone. When using `--start-date` and `--end-date`, both dates are inclusive and cover the full 24-hour period. Use `--start-time` and `--end-time` to narrow results to specific hours of the day.\n\n## Development\n\n### Build\n```bash\ngo build ./cmd/web-recap\n```\n\n### Test\n```bash\ngo test ./...\n```\n\n### Cross-compile for all platforms\n```bash\nmake build-all\n```\n\n### Release Process\n\nReleases are created manually by pushing a version tag. The GitHub Actions workflow will automatically build binaries for all platforms and create a GitHub release.\n\n```bash\n# Create and push a version tag\ngit tag v0.1.0\ngit push origin v0.1.0\n```\n\nThis triggers the release workflow which:\n1. Builds binaries for Linux (amd64), macOS (amd64, arm64), and Windows (amd64)\n2. Creates a GitHub release with the tag name\n3. Uploads all binaries as release assets\n\n## Troubleshooting\n\n### \"No browsers detected\"\nEnsure your browser is installed at the default location. You can specify a custom database path:\n```bash\nweb-recap --db-path /path/to/History\n```\n\n### Permission errors\nMake sure you have read access to the browser database. On macOS, you may need to grant permissions:\n```bash\nxattr -d com.apple.quarantine ./web-recap\n```\n\n### Browser running errors\nThe tool should handle locked databases automatically, but if you get errors, close your browser or try again later.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nMIT License - see LICENSE file for details\n\n## SKILL.md\n\nSee [SKILL.md](./SKILL.md) for integration instructions with Claude and other LLMs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobzolkos%2Fweb-recap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobzolkos%2Fweb-recap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobzolkos%2Fweb-recap/lists"}