Programming
I published a couple of my personal projects to github this past week.
A tool to access your browser history using the llm CLI tool.
This week I created a llm tool called llm-tools-browser-history for the llm command line tool.
What can I do with it? Ask natural language questions about what I’ve been looking at in the browser.
# First lets make a template so I don't have to recreate the switches every time:
llm -T llm_time -T BrowserHistory -m gemini-2.5-flash --save bhistory
# What kind of youtube videos have I been watching?
llm -t bhistory "how many youtube videos have I looked at this year?"
You have looked at 326 YouTube videos this year.
When I asked llm -t bhistory --td "can you categorize what kinds of videos I've looked at on youtube this year?"
, I got this (I trimmed out some details, but it went into some good detail):
Based on your YouTube watch history from this year, your video interests appear to fall into several categories:
- Gardening & Horticulture: A significant portion of your viewing relates to pruning, specifically blueberries, plum trees …
- Gaming & Technology: You’ve watched videos about …
- Arts & Crafts: There’s a clear interest in making paintbrushes, including those made …
- Dance: You’ve viewed videos featuring …
- Web Development & Design: You’ve watched videos about …
- Music: You’ve listened to …
- Automotive/Electric Vehicles: There’s a video about avoiding …
- Unique Creations/Engineering: You watched a video on “34 Years Of Strandbeest Evolution.” …
- Competitive Eating: You viewed a video about an “Æbleskiver Eating Championship.”
- Miscellaneous: “Mirthful Miscellanea” …
Anyhow, I think its interesting, and its useful for me in the sense that I frequently forget where I saw a video or article.
Hooking an LLM up to browser history could be very bad, and I considered the implications of the lethal trifecta. This tool checks 2 of the three boxes: access to personal data, which is made available to an LLM. I cannot control whether someone might use this tool in conjunction with another to then allow that data to be stolen (ticking the third box).
I did a couple things to mitigate this risk: limit what data is available at all (url, time, title, browser source), limit how much data is available (no more than 100 records), stripped URLs of their query parameters, and stripped minute/second from the timestamps.
Its probably not sufficient. I already feel the compulsion to add query parameters back in. Those youtube URLs the LLM is provided with above for example are missing the v=
parameter which makes it impossible to get back to the original video - although the title of the page is probably sufficient to find it.
A python cookiecutter
Over this summer I’ve created several small python projects. Its a bit tedious setting them up the way I like, so I created a cookiecutter project as a starting point. It has the things I like: uv, adr, pre-commit, pytest, and a github action.
Week of Cartoons
I drew these cartoons during the course of this week. They follow from morning on the left, to evening on the right.



























