
Asif Ahmed
I help people and solve problems. Lately that's building software with AI at a venture firm.
Writing
- Everyone should have something that disagrees with them
Your AI agrees with you all day, and the more senior you get, the more the people around you do too. Agreement is the house default in both systems. Here's a block you can paste in front of the model to turn some of it off, and the way that fix fails.
- I check my Claude usage way too much
I kept typing /usage and opening the settings page too many times a day, so I put my 5-hour and weekly Claude limits in the menu bar. The number was sitting in the statusline Claude Code hands you the whole time. I almost built the version that reads your keychain instead.
- Keeping the sessions was the easy part
I keep every Claude Code session as a file. Then I needed to find one. grep across a couple thousand JSONL transcripts is slow and dumb, so I built a local hybrid search over them.
- An old Claude Code rejected my settings and deleted 2,055 sessions
I set cleanupPeriodDays to 365. A pinned, older Claude Code could not parse my settings file, threw the whole file away, and fell back to deleting after 30 days.
- 26 compacts deep
One build session at work ran a month without restarting. It summarized itself and kept going 26 times, and most of it happened after hours from a phone. What steering an agent that never resets actually looks like.
- Text is cheap, so keep your Claude sessions
Claude Code deletes your session transcripts after 30 days by default. That breaks files are king, so I changed one setting and now they stick around for a year.
- Always a free Claude remote session
I want a clean Claude Code session always waiting on my phone, separate from whatever I am deep in. Here is the launchd agent that guarantees one.
- This blog tells you how AI was used
A starter post that shows the AI-authorship badge, code highlighting, and the general shape of things. Replace it with your own.