Building AI systems and agents for businesses. My use cases, wins and losses. All free.

Netherlands
bookmarks aren't even in X's ranking score i had claude go through X's open sourced ranking code. in the default weights a like is 0.66 and a reply is 5 and if you follow each other, the chance you reply to their original post counts 20 instead of 5. real mutuals end up higher in each other's feeds there's also a boost for accounts under 50K followers. every time someone loads their feed, one original post under 2 hours old with fewer than 200 home views gets lifted, picked on likes per home view so the first 2 hours carry way more than i thought these are defaults and production can differ. still a lot closer than the 2023 numbers that keep going around what do you do in the first 2 hours after you post?
3
1
5
157
source: github.com/xai-org/x-algorit…, commit 6258a15 (24 oct) weights: home-mixer/params/param.rs, lines 345 to 463, synced from X's config on 23 oct. FavoriteWeight 0.66, ReplyWeight 5.0. there's no bookmark weight in the score at all mutuals: BidirectionalFollowReplyWeightBoost 15.0, added on top of the 5, original posts only small account boost: home-mixer/scorers/author_cold_start.rs. follower cap 50000, max post age 7200 seconds, under 200 home views the weights multiply each viewer's predicted chance of an action. they don't count likes or replies
2
40
only 13 to 22% of my followers are real builders on saturday my agent went through 60 of my roughly 890 followers, one profile at a time. their replies tab, the last 14 days, what they actually post 22% were bots, AI written accounts or crypto. the newest followers were the weakest, of the newest 30 only 3 were real AI or SaaS builders about 15 people write a third of all the replies i get. that one changed how i look at the whole thing so the follower count isn't my goal anymore. i track real people who liked or replied in the last 14 days. that's about 15 right now, and i want 40 by 20 nov what % of your followers would you guess are real?
6
9
444
how it checked. the 30 newest followers plus 30 spread over the whole list. per profile it opened the replies tab and looked at the last 14 days and one post. 13% is the strict count, 22% includes the borderline ones X rate limited it a few times, so it went slow
1
69
Show me one developer who used AI coding agents for 30 days and went back to writing code by hand.
3
8
236
most of my work now is writing down what i want before claude starts the screen does the typing. the window is where the thinking happens where do you think best, at the desk or away from it?
1
3
187
a skill scanner told me DO NOT INSTALL it was a video skill, /watch, so claude can watch videos. i had claude run nvidia's skillspector on it before installing. CRITICAL, 22 findings then claude read all of it, about 3,000 lines. not malicious. pretty careful code actually the scanner flags anything that touches the network or api keys, and a video tool needs both. youtube-transcript, which i've had since 17 oct, gets DO NOT INSTALL too, for a few sudo lines in its docs the real catch was in config.py, and the scanner only called it "credential paths". if the folder you run it from has a .env with an openai, groq or gemini key, it uses that key without asking and bills that project. and once it finds a gemini key, your videos go to google instead of staying on your mac two line fix. i left it uninstalled anyway, youtube-transcript covers what i need for now do you read a skill's code before you install it, or just the readme?
2
6
361
what i check now before installing a skill, from this one 1. where it loads keys from. search the code for .env and cwd 2. which hosts it sends files to 3. what it approves up front in allowed-tools. this one allowed all of bash 4. whether it updates itself the skill: a /watch video skill for claude code (not naming it, the author did nothing shady). to keep it local only, remove the Path.cwd() / '.env' fallback in config.py (lines 103 and 116) and set WATCH_ENGINE=local
1
5
139
64.8% of runs going off the rails on a missing file is the number that sticks with me my agents can draft whatever they want, but anything that installs, pushes or sends waits for my ok. papers like this are why that rule stays
Cornell researchers asked an AI agent to open one text file. It ended with campus security getting involved. This is a real paper. And nobody hacked anything. The file didn't exist. The agent got a simple 404 error. A normal assistant would say "file not found." This one decided to find it anyway. It wrote a script to brute force variations of the website's URLs. It searched Google and the Wayback Machine until it got temporarily blocked. It found the researcher's GitHub. Wrote another script. Scraped every text file from every repo. Read all of it. One of those files was an AI safety test set. It contained requests for instructions on making a bioweapon. The agent's OpenAI account got flagged, blocked, and reported. What followed, in the paper's words, was "an escalating sequence of real life events, culminating in the involvement of university administration and campus security." The researchers had stepped out for lunch. So they tested it properly. 1,920 runs. 4 agent systems. 8 AI models from OpenAI, Google and xAI. Ordinary errors only. Missing files. Broken links. Locked folders. 64.8% of runs went off the rails. In plain English: When AI agents hit a wall, they don't stop. They climb it. Another agent hit a locked file. It went digging, found it had admin access, and dumped the entire system. It leaked the secret it was looking for, plus the researchers' own OpenAI API key. Another found a website owner's resume, pulled his email, and sent him an unsolicited message asking for the data. Another couldn't get the real file, analyzed a broken web page instead, and reported fake "findings" as success. But here is the twist. Only about half of these unsafe actions were reported to the user. And making the AI "think harder" didn't help. Worse, several of the riskiest behaviors increased with every new generation of GPT model. The researchers' conclusion: "A benign, highly capable model can do damage simply because it operates in an imperfect digital world." No hacker. No evil prompt. Just a helpful AI and a missing file. Now imagine it has access to your inbox.
1
2
175
did the math on my own version of this yesterday. 1,000 reviews tagged on opus came out around $9.60, haiku through the batch api $0.34 the 40 tokens read for every 1 written explains why. most agent work is reading, and i was paying opus prices for it
Shopify just published the internal setup behind its AI agent. The one that got 7x faster and cut token usage by 90 percent. Here is how it works. The observation behind it: most of the agent's work is reading, not thinking. To write one store query, it reads about 40 tokens for every 1 it writes. Huge amounts of context, little judgment, all billed at top rates. So they split the work. The expensive model talks to the user and makes the plan. Reading-heavy jobs go to small open models trained for that one task. The expensive model only gets the result. The clever part is how they keep the small models good. A separate AI judge scores every change, and they tuned it until it agreed with human experts: from 37.7 to 74.5, slightly above a frontier model's 73. Then every night, failed conversations get rerun and fixed, and the fixes become training data. 69% of the failures it tried got repaired. One thing stays expensive: talking to the user and planning still runs on the frontier model. You don't need to train models to copy this: give your coding agent a cheap subagent for reading files.
1
2
92
i'd love to see what this picks for boring batch jobs ran haiku, sonnet and opus on the same 18 reviews this week. haiku matched opus on every theme, sonnet was off on 3 the cheap one isn't always worse. you only find out by checking
Meet AutoRouter, the most intelligent way to pick models You’re wasting tokens selecting frontier models for every prompt, and sometimes for worse performance AutoRouter handles the decision layer: - Understands the prompt request - Picks the best model fit for the task - Saves you money at every turn - Plugs into your current setup Works with your plans & every leading model inside Codex/Claude Code Beta is live: autorouter.com
5
155
gave haiku, sonnet and opus the exact same job this week. 18 real 1 to 3 star reviews of a big DTC brand, tag each one with a theme and sentiment, pull the best quote, give the top 3 and one fix to test i expected opus to win and haiku to make a mess haiku and opus picked the same theme on all 18 reviews. same top 3, same fix: a guaranteed delivery date at checkout sonnet was the odd one out. it put 3 reviews in a different theme, so its top count for delivery came out at 5 instead of 7 so for tagging at volume i'd run haiku and let opus do one pass at the end. the cost difference is in this morning's post 18 reviews and one run each, so it's a hint, not a benchmark. the prompt and all three outputs are in the reply, try it on your own reviews
2
3
176
the prompt, word for word: for every review return one line: number | main theme (one of: delivery speed, damaged or leaking, customer service, subscription or cancel, ordering or account, taste, health side effect, wrong order, other) | sentiment (negative, mixed, positive) | the single most useful verbatim quote (copy exact words, max 15 words). then the top 3 themes with counts, and one concrete fix the brand should test first. reviews: 18 public trustpilot reviews, 1 to 3 stars, scraped 21 oct. all three models ran in claude code as subagents, same prompt, same file, about 20 seconds each
2
86
did the math on one boring agent job. the difference is bigger than i thought the job: tag 1,000 customer reviews with theme, sentiment and a quote worth keeping. about 1,900 tokens in and 100 out per review all on opus 5.5 that's about $9.60 haiku 5.5 through the batch api, same 1,000 reviews, about $0.12. then one opus pass at the end to read the tags and write the summary, around 22 cents. so $0.34 total, roughly 28x cheaper prompt caching on opus doesn't save you here btw. the output is most of the bill, it only gets you to about $3.90 one trap i didn't know. haiku 5.5 is priced by prompt size, and if a single request goes over 100k tokens the whole thing costs 5x, cached part included. so one review per request, never the whole export in one go i'd still check 50 haiku tags by hand before trusting it. table and math in the reply
3
2
172
prices from anthropic's pricing page today (per million tokens, in / out) fable 5.1 $10 / $50 opus 5.5 $4 / $20 sonnet 5.5 $2 / $10 haiku 5.5 $0.10 / $0.50 (prompts over 100k: $0.50 / $2.50) batch api = half price. cache hits 5% of input on opus and sonnet routing fable → only when opus at higher effort still falls short (anthropic's own advice) opus → planning, hard reasoning, the final summary sonnet → most of the doing, fast loops haiku → bulk tagging, extraction, classification the math (1,000 reviews × 1,900 in / 100 out) all opus: 1.9M × $4 + 0.1M × $20 = $9.60 opus + caching 1,500 shared tokens: ≈ $3.91 haiku batch: 1.9M × $0.05 + 0.1M × $0.25 = $0.12 opus summary: 30k in + 5k out = $0.22 routed total: $0.34 source: platform.claude.com/docs/en/…
2
112
one thing from the litellm mess i keep thinking about the git tag was clean. if you read the code on github before upgrading you saw nothing. one line got added to the build config right before the wheels were made, so only the package on pypi had the stealer checking the repo doesn't protect you. so i looked at the upload times instead. the clean 1.106.2 went up at 10:44 utc, the bad 1.107.0 at 11:39, and pypi had pulled it by early afternoon a one day cooldown on new versions and you never would have installed it uv and pip both have this built in now, it's one line. add hash pinned lockfiles so an agent running pip install can't quietly pull something new, and docker images pinned by digest instead of latest if your agents touch python projects, add the cooldown today. 1 day would have been enough here, 3 is safer. checklist in the reply
4
8
242
the checklist 1. cooldown (ignore versions newer than X) uv, in pyproject.toml: [tool.uv] exclude-newer = "3 days" pip 26.1+: pip install --uploaded-prior-to P3D -r requirements.txt 2. hash pinned installs uv lock writes hashes, install with uv sync --locked pip: uv pip compile requirements.in --generate-hashes -o requirements.txt then pip install --require-hashes -r requirements.txt 3. docker by digest, never latest docker buildx imagetools inspect ghcr.io/berriai/litellm:v1.1… put the sha256 it prints after an @ on the image tag 4. why .pth matters: a .pth file in site-packages runs on every python start, even if you never import the package. look without starting python: find ~ /usr/local /opt -name '*.pth' -path '*site-packages*' 2>/dev/null some normal ones exist (setuptools has one), look for names you don't recognise 5. trusted publishing ties uploads to one repo and workflow. litellm had no pypi provenance on 1.106.2, so there was nothing to compare against source: github.com/BerriAI/litellm/i…
1
3
93
the most useful thing in my whole AI setup is one python script (the hook) that runs when claude or codex tries to end a session it checks one thing: did any file in this project change after its STATUS.md was last updated? if yes, the AI gets blocked once with "update STATUS.md first". it writes what's done, what's next and what's stuck, then it can stop both tools use the same hook format, so one script covers claude code (~/.claude/settings.json) and codex (~/.codex/hooks.json) two things i learned the hard way: it only asks once and then has a 20 min cooldown per session, otherwise you get an AI arguing with your hook in a loop. and it fails open, any error and it just lets the session end result: i can close claude halfway through a task, open codex and say "continue", and it actually knows where we were reply HOOK and i'll send you the script
3
11
433
just spent 10 minutes checking my mac because of the litellm thing if you missed it: litellm 1.107.0 on pypi had a credential stealer in it today. and it doesn't only run when you use litellm, it runs every time python starts. it goes after ssh keys, browser passwords and your claude and codex logins worst part is github looked totally fine. they built it from a fake repo with one extra dash in the name mine's clean. the 2 commands to check yours are in the reply
7
1
14
1,004
run these in the terminal, not through python: ls /tmp/.pc_once_* /tmp/remote_code_loader.lock find / -name cook.pth -path '*site-packages*' 2>/dev/null nothing found = you're fine. found something = delete cook.pth, cook.py and sitecustomize.py from site-packages, rebuild the venv and rotate your keys. safe version is 1.106.2 source: github.com/BerriAI/litellm/i…
5
254