Steady is a personal life-planning app I've been building for a few months. It has a PostgreSQL database, structured logging, and an AI chat layer with tool calls. When something goes wrong, there are a few places to look. In addition asking Claude to debug it can be slow and consume a lot of tokens.
In the old days I might not have written custom scripting, perhaps tried to attack the problem with unit tests to figure out the source of problems or perhaps just manually hit the db or REST endpoints to figure out what was going wrong.
The great thing about having an AI assistant is now I can build really sophisticated tooling and it is trivial to do so. For Steady I built a bunch of custom scripts as part of a steady-debugging skill.
analyze-logs.shqueries logs. Filter by time window, errors only, or follow a single request end-to-end using the requestId that every API call carries. Output is a markdown table, readable by me and by Claude.api-call.shmakes authenticated requests from the CLI. It handles the dev login, stores the session cookie, then you just runapi-call.sh GET /api/tasks. No browser, no copy-pasting cookies (obviously very strictly only on my local machine and only in DEV mode)db-query.shgives direct PostgreSQL access. The useful flag is--last-conversation, which dumps the full LLM conversation history as a table: every message, every tool call, every result. When the AI does something unexpected, this is how I find out why./health-check.shchecks the database, AI providers, and permissions in one shot.
The cool thing is the skill points Claude in the right direction, the scripts prevent Claude from doing manual log filtering (saves a load of tokens). If I mention the assistant Claude knows to query the last conversation and get all the tool calls ... and I can use all these tools myself.
None of this is technically complicated or impressive. It's just TypeScript wrappers around SQL calls and curl and log filtering.
What changed is the cost-benefit. Writing a CLI that auto-authenticates, correlates request IDs across logs, and outputs structured data used to be too expensive to justify on a side project. Now it's an hours work so the cost has dropped, at the same time I've stopped Claude spending tokens investigating issues, it now has a clean clear place to start investigations from - at the cost of far less tokens so I've also increased the benefit.