Codex-Maxxing: Jason Liu's Advanced Workflow for AI Coding Agents

⬅️ Back to Tutorials

Codex-maxxing by Jason Liu


Jason Liu was already using coding agents heavily before Codex. Mostly for coding work — making diffs, changing repos, shipping code. The shift happened when he started pushing agents into knowledge work: presentations in Slidev, note-taking with voice input, producing HTML files, PDFs, spreadsheets, slide decks.

His post is the best practical guide I have read on treating Codex as an operating loop instead of a chat app. Here is the condensed version.

Durable Threads

Liu keeps pinned threads for every important workstream — Chief of Staff, the Agents SDK, even one just to monitor Twitter. These are not short chats. They are megathreads compacted for months, accumulating history, preferences, and old decisions.

The tradeoff is cost. Long threads eventually fall out of cache. For workstreams he cares about, continuity is worth it.

Voice Input

Voice gets the unedited version of his thinking into Codex. He uses Wispr Flow for system-wide dictation and Granola to record conversations. Transcripts become starting material for posts and plans. A sentence like “there is some guy named Ben in Slack who mentioned this, go look” is annoying to type but natural to say.

Steering

Steering lets you inject the next message during a tool call. While the agent works, you can say: make this smaller, the spacing is off, open a PR, wait for the preview deploy, send the link on Slack. You keep adding intent while the agent is still executing. The unit of work stops being “one prompt, one answer” and becomes a small operating loop.

Memory as Files

This is the key insight. A long thread can remember a lot, but that memory is trapped inside the thread unless the useful parts get serialized somewhere durable.

Liu keeps an Obsidian vault as a GitHub repo with directories for people, projects, agents, notes. An AGENTS.md at the top level tells the agent: as you learn about people, make progress on projects, or close open loops, update the relevant pages. The vault is where the agent lives, separate from any single repository. Diffs on the vault become a review surface for what the agent thought was important enough to remember.

Heartbeats

Heartbeats are thread-local automations that make work recur without waiting for input. His Chief of Staff thread runs every 30 minutes: check Slack and Gmail, prioritize, research answers, draft replies but never send. When he returns, replies are ready for review.

He used the same pattern to get a refund from Amazon. Created a thread with computer use, set a Heartbeat to check every 5 minutes for the support agent, escalate to every minute once they joined. By the time he got out of the shower, the refund was done.

Goals

The newest feature he is learning. A strong goal has a real success criterion the agent can push against — not “implement this plan” but “migrate Rich into Rust and pass all the original unit tests.” Ambition without verification is just a wish.

The Side Panel

The part he is most excited about. Markdown, spreadsheets, CSVs, PDFs, slides — all render inline. The in-app browser lets the agent control it with JavaScript while you leave annotations on what you are looking at. Storybook for UI components, Remotion Studio for animations, Slidev for presentations, Streamlit for data apps.

The smallest version is often the best. A single index.html with JavaScript and CSS, opened in the side panel, no server required. Heartbeats can update it over time so whenever you return to the thread, there is a fresh artifact waiting.

The whole post is worth reading in full, but the takeaway is this: the more places Codex has to remember, revisit, inspect, and act, the less your work dies between prompts.

Crepi il lupo! 🐺