Opinionated, concrete writing on AI coding agents, AI engineering, and the craft of shipping real work. No filler, no listicles.
Learn the five parts of an agentic loop, how feedback enables self-correction, why loops drift, and when a graph adds the control an AI agent needs.
Read the post →Use claude --continue for the latest session or --resume to restore a specific one. Covers the picker, names and IDs, worktrees, forking, and retention.
Read the post →Claude Code stores every conversation as a .jsonl file under ~/.claude/projects. Here is the exact path, how the folder name is built, how to read the files, and the setting that quietly deletes them after 30 days.
Read the post →There is no claude list-sessions command. Running claude --resume with no arguments opens a picker of every past session in the current directory. Here is how to read it, widen it, and find a session that is missing.
Read the post →--dangerously-skip-permissions bypasses Claude Code's permission prompts, but not all of them, and the exceptions matter. What the flag actually skips, what still stops you, and the deny rules that hold even when it is on.
Read the post →Codex hooks are scripts Codex runs at fixed points in a task, configured in .codex/hooks.json or an inline [hooks] table. The exact config shape, the trust step that makes a new hook look broken, every event, and a worked 7-event setup we ship.
Read the post →codex mcp add wires an MCP server into Codex in one line; config lives in [mcp_servers] in config.toml and is shared by the CLI, the IDE extension and the ChatGPT desktop app. The setup, the options that have surprising defaults, and default_tools_approval_mode.
Read the post →A Codex skill is a folder with a SKILL.md carrying a name and a description. Codex scans .agents/skills from your working directory up to the repo root. The initial skill list is capped at 2% of the context window, and that cap changes how many skills you should install.
Read the post →Both are terminal coding agents with hooks, skills, MCP and subagents. The differences that matter are in the extension layer: Codex gates hooks behind a trust review and gives MCP per-tool approval modes, Claude Code lets a hook actually deny a tool call. A comparison with the receipts.
Read the post →The Claude Code 529 “Overloaded” error means Anthropic’s servers are at capacity right now, not that something is broken in your setup. Here is what 529 is, how it differs from a rate limit, and what to actually do.
Read the post →The context window is Claude Code's short-term working memory. Here is how big it is, what fills it, and the commands and habits that keep it lean.
Read the post →Fix Claude Code when it is stuck, hanging, frozen, looping, or stalled on a tool. Match the symptom to the right interrupt, recovery step, and prevention.
Read the post →Claude Code slows down for three reasons, and the biggest is a bloated context window you can fix in seconds. Here is what causes the lag and how to make it fast again.
Read the post →A beginner's guide to Claude Code that skips the command list. The five failure modes that catch everyone, with the real issue numbers, and the ten power moves nobody tells you about.
Read the post →A rule in CLAUDE.md is a request your agent can skim. A Claude Code hook is code that runs. Here are the eight lifecycle events, the eight hooks we ship, and what they measurably changed.
Read the post →Claude Code permissions are a policy question, not an annoyance. Skip them and you lose judgment. A PreToolUse hook can decide allow, deny, or ask deterministically, in code.
Read the post →Claude Code settings.json is not a preferences file, it is where your agent's behavior is configured. The three-file precedence that matters, and the hooks block that changes what the agent does.
Read the post →A Claude Code statusline is a script that prints state under your prompt. Here is how the mechanism works, what JSON arrives on stdin, and what we chose to show and why.
Read the post →Claude Code subagents inherit your model, not your rules. Your CLAUDE.md never reaches a Task() subagent, so every one runs unguarded. Here is why, and the hook that fixes it.
Read the post →The built-in Claude Code commands control the tool. The custom commands that make your agent ask first, stay lean, and stop when it's done, you add yourself.
Read the post →Fix Claude Code’s “Prompt is too long” error without losing work. Diagnose a full context window, oversized request, or client bug in 60 seconds.
Read the post →Anthropic's global workspace research shows Claude has a deliberate reasoning space separate from its automatic instincts. That is exactly why asking it to plan, ask first, and prove its work turns bad output good.
Read the post →The CLAUDE.md best practices that actually matter: keep it lean, lead with behavior, document only what differs, and treat it as a living file. With the common mistakes to avoid.
Read the post →How to install Claude Code in a few minutes, on macOS, Windows, or Linux, plus the setup step everyone skips: configuring it so your agent asks first and stays lean from session one.
Read the post →Is vibe coding bad? The honest answer: vibe coding is not the problem, ungoverned defaults are. Here is the line between fast-and-fine and fast-and-dangerous.
Read the post →A CLAUDE.md file is the one file loaded into every Claude Code session. Here is what it is, why the viral version works, and how to write one that makes your agent behave.
Read the post →Boris Cherny named five archetypes of building software. Your AI coding agent runs only one of them, badly, which is why its output looks AI-made. Meet all five, and how to get the other four working for you.
Read the post →