___ _ ___ _ _ _
/ __\ |__ _ __ ___ _ __ ___ / __\ |__ _ __ ___ _ __ (_) ___| | ___
/ / | '_ \| '__/ _ \| '_ ` _ \ / / | '_ \| '__/ _ \| '_ \| |/ __| |/ _ \
/ /___| | | | | | (_) | | | | | | / /___| | | | | | (_) | | | | | (__| | __/
\____/|_| |_|_| \___/|_| |_| |_| \____/|_| |_|_| \___/|_| |_|_|\___|_|\___|
.__.__.__.__.__.__.__.__.__.
/ /|
/__________________________/ |
| ___________________ | |
| | | | |
| | 📜 ChromeChronicle | |
| | | | |
| | Your browsing | | |
| | history, | | |
| | beautifully | | |
| | chronicled. | | |
| |___________________| | |
|_________________________|/
Your browsing history, beautifully chronicled.
ChromeChronicle automatically extracts your daily Chrome browsing history and saves it as beautifully formatted markdown files, organized by month. Keep track of your digital journeys with minimal effort!
- 🔄 Daily Automation: Set it once, and forget it! Runs daily at your specified time
- 📊 Beautiful Markdown Format: Your history presented in an easy-to-read table format
- 📂 Organized by Month: Automatically creates and organizes files into year-month directories
- 📱 Lightweight: Minimal system impact, runs in the background
- 🔒 Local Storage: Your data stays on your machine, ensuring privacy
- macOS (10.15 Catalina or newer)
- Python 3.6+
- Google Chrome browser
- Basic Terminal knowledge
-
Clone this repository:
git clone https://github.com/helloprkr/chrome-chronicle.git cd chrome-chronicle
-
Run the installation script:
chmod +x install_chrome_history_automation.sh ./install_chrome_history_automation.sh
-
You're all set! ChromeChronicle will run daily at 11:45 PM by default.
Click to expand manual installation steps
-
Clone this repository:
git clone https://github.com/helloprkr/chrome-chronicle.git cd chrome-chronicle
-
Make the Python script executable:
chmod +x chrome_history_extractor.py
-
Edit the plist file to update paths:
nano com.user.chromehistory.plist
Replace all instances of
REPLACE_WITH_FULL_PATH
with the full path to your ChromeChronicle directory. -
Copy the plist file to your LaunchAgents directory:
mkdir -p ~/Library/LaunchAgents cp com.user.chromehistory.plist ~/Library/LaunchAgents/
-
Load the launchd job:
launchctl load ~/Library/LaunchAgents/com.user.chromehistory.plist
ChromeChronicle will automatically run every day at the scheduled time (default: 11:45 PM). Your browsing history will be saved in markdown format in the directory structure:
YYYY-MM/YYYY-MM-DD_URL-History.md
For example:
2025-03/2025-03-07_URL-History.md
You can run ChromeChronicle manually at any time:
python3 /path/to/chrome-chronicle/chrome_history_extractor.py
To change when ChromeChronicle runs:
-
Unload the current configuration:
launchctl unload ~/Library/LaunchAgents/com.user.chromehistory.plist
-
Edit the plist file:
nano ~/Library/LaunchAgents/com.user.chromehistory.plist
-
Update the
Hour
andMinute
values underStartCalendarInterval
. -
Reload the configuration:
launchctl load ~/Library/LaunchAgents/com.user.chromehistory.plist
To customize the Markdown output format, edit the extract_chrome_history()
function in chrome_history_extractor.py
.
No history is being saved
Check the following:
- Ensure Chrome is installed in the default location
- Verify your LaunchAgent is loaded properly:
launchctl list | grep chromehistory
- Check log files for errors:
cat ~/path/to/chrome-chronicle/chrome_history_error.log
Installation script fails
- Make sure you have the proper permissions
- Try running the manual installation steps
- Check if Python 3 is installed correctly:
python3 --version
ChromeChronicle works by:
- Creating a temporary copy of Chrome's SQLite history database
- Querying for URLs visited on the current day
- Converting Chrome's timestamp format (microseconds since Jan 1, 1601)
- Formatting the data into a readable markdown table
- Organizing files by year and month
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the need to better understand our digital journeys
- Thanks to the SQLite project for making database access so straightforward
- Special thanks to all Alxmnt Ai Labs Team for their support and guidance!
Made with ❤️ by HelloPrkr
If you find ChromeChronicle useful, please consider giving it a ⭐ on GitHub and sharing it with friends!