Assah Bismark

Tooling

Stabilize Claude Code for Open-Weight Models

A three-layer proxy stack to keep Claude Code stable when routing through LiteLLM to open-weight models.
Running Claude Code with open-weight models like DeepSeek or Qwen through a LiteLLM proxy works. Until it doesn't. The port changes every time LiteLLM restarts because it picks a random dynamic port. The request payload grows until backends reject it with 400 errors. Usage stats come back null and t...More ›

Factory Droid with Any OpenAI-Compatible Endpoint

Use LiteLLM as a local proxy to run Factory droid with any OpenAI-compatible model endpoint.
Factory droid supports custom models through BYOK (Bring Your Own Key), but environment variables don't work for the interactive CLI or desktop app. The droid daemon has its own API client and ignores and env vars. The working path is adding your model to the array in and pointing it at a local ...More ›

Hacker News Is High Friction

HN is the best signal source in tech. Reading it shouldn't cost an hour.
Hacker News is where the best technical conversations happen. When a new database gets traction, the thread on HN is where the people who actually built competing systems show up and explain the tradeoffs. When a paper drops, the comments are often better than the paper. The signal is real and it's ...More ›

Context Is What Makes Code Review Work

AI code review is a systems problem, not a prompt problem. Here is how I built Snif to stay useful.
I spent some time researching every AI code review tool I could find. CodeRabbit, Greptile, Qodo merge, Copilot and lots of others, half a dozen smaller ones. The pattern I saw seems to be the same, teams install these tools, get excited with the feedback they provide, then disable them after some t...More ›

Using Claude Code with any model

Claude Code's toolset works with non-Anthropic models through a local proxy. Here's the setup, the bug, and the tradeoffs.
Claude Code has the best agentic coding toolset available right now. File editing with diffs, bash execution, grep, glob, MCP server integration, subagents, plan mode. It runs in your terminal, reads your entire codebase, and orchestrates multi-step changes autonomously. It only speaks Anthropic Mes...More ›

AI coding agents and the cloud provider gap

Desktop AI coding agents don't work with cloud provider auth. A local proxy fixes all of them at once.
The current generation of AI coding agents ships with a shared assumption: you have an API key from a model provider, and you paste it into a settings field. That works if you pay for a direct subscription. It does not work if you access models through a cloud provider like AWS Bedrock, Google Verte...More ›

Solving the Context Problem - A Local RAG System for Code

Building Local Semantic Code Search - 11ms Queries Across 7,620 Files
Solving the Context Problem: A Local RAG System for Code Yesterday I was using Kilocode to help refactor some authentication code in a 7,620-file Java codebase. The AI agent kept giving me generic advice because it couldn't see the actual implementation patterns in the project or some constraints. I...More ›

How to Read Hacker News Threads with Most Recent Comments First

Learn how to read HN threads in reverse chronological order.
Hacker News displays comments in a tree structure, which can make it difficult to track the latest updates in a conversation. To address this, I explored three different methods to sort and read Hacker News comments by most recent first. Here's how you can do it, starting from the simplest approach....More ›

How to use cURL to interact with GraphQL APIs.

How to use cURL to interact with GraphQL APIs.
Running GraphQL queries from the command line using can be made simple and readable. Here's an example of how to query the GitHub GraphQL API using , tested in both and . Replace with your GitHub API personal access token. This command constructs and submits a GraphQL query encoded in JSON, using...More ›

jq Array of Array Object

Example of handling arrays of array objects in jq.
Input: I want an array of objects. Here's what I came up with, using jqplay.org: This outputs: If you remove the outer and and use the "Compact output" option you get back this instead:More ›