Locked in.

Why I rebuilt my entire AI setup from scratch in plain text files I own.

Build your AI workflows in plain text files (AGENTS.md), not inside Claude Cowork or any single tool. Any agent (Claude Code, Codex) can run them.

I opened my laptop on a Monday morning. 50% of my weekly Claude tokens were already gone.

I had just flown back from Vietnam. Different timezone. And while I was somewhere over the Gulf of Tonkin, every scheduled task I had set up in Claude Cowork had been firing. Burning through my token allocation in the exact window I was supposed to be sleeping.

That was the moment I decided I was done.

Why did all my AI workflows break at once?

The timezone was the trigger, not the cause. The real problem: I had built everything inside one proprietary tool I did not control.

For months Claude Cowork had been running my life. Scheduled tasks, live artifacts, weekly content workflows. Zero code. Serious automation. A content engine, a research tool, a weekly analytics summary - all running on autopilot while I worked my day job.

Then it started breaking.

Tasks failed silently. I fixed them. The fix broke something else. Fixing that cost more tokens. By the time I was done troubleshooting, I had spent more tokens debugging than the original task would have used.

Anthropic also started quietly changing how much intelligence the models delivered. Not in a press release. Just... less. Results that were solid two weeks before came back wrong. Tasks I had not touched suddenly produced garbage. More fixes. More tokens. More time I was not getting back.

It was a leak I could not close.

What does vendor lock-in cost when your tool is an AI?

The math made it concrete. Upgrading to the next Claude Cowork tier costs €90 per month. Claude Code plus Codex together cost around €40 total. Same capability. Two agents. No single point of failure.

But the money is not the main argument.

The main argument: if Claude Cowork changes its pricing tomorrow, deprecates a feature, or shifts the model again, every workflow I have built breaks. I start over. The longer I wait, the more there is to rebuild.

The most expensive thing in any AI setup is not the subscription. It is starting over.

What does "tool-agnostic" actually mean?

Here is what nobody tells you when you start automating with AI. The workflows are not the problem. The problem is where they live.

If your instructions, context, and project knowledge live inside a proprietary tool's interface, you are locked in. If they live in plain text files you own, any agent can read them. Point a different agent at the folder. Keep going.

Tool-agnostic means: the agent is replaceable, the files are not.

My new setup:

  • VS Code as the project home
  • Claude Code as one agent
  • Codex (OpenAI's coding agent) as another
  • The same setup works with Cursor, Windsurf, GitHub Copilot, Gemini CLI, or any future tool that does not exist yet

The moment something better ships, you switch. Your project knowledge moves with you.

Is Codex actually better than Claude Code?

I expected Codex to be the weaker option. It is not.

Codex is proactive in a way Claude Code is not. It plans ahead. It flags potential problems before touching anything. It explains its reasoning without being asked. Right now, for my workflows, it tops Claude Code.

My developer friend was testing the same setup. His verdict on Claude arrived in four messages: "fucking dumb bitch," "nah, im done with his dumb ass," "we over," "getting blocked." Then: "unblock tomorrow." Then: "codex credits coming back in 20min or so."

I sent him my take in the same chat: "claude keeps forgetting and correcting itself constantly. codex is like the eager new employee who goes 20 extra miles."

He unblocked Claude the next day. We are both still using both.

To be fair: when Claude is behaving normally, it still outperforms Codex on most things I use it for - especially writing.

How do you set up Claude Code and Codex in VS Code?

This section is more technical than what I usually cover. If you have never used VS Code, work through Claude Code. No code required. first, then come back. The longer you wait, the more you build inside tools you do not own.

If you have a developer in your team, send them this article. They will have the whole thing running in an afternoon.

Step 1: Start with a folder. Just a folder.

A "project" in this setup is not a special thing inside an app. It is literally a folder on your computer.

Create a folder anywhere - Desktop, Documents, wherever you keep your files. Name it after your project. That is your project. Everything goes inside that folder: instructions, workflows, config files. Plain text in a plain folder.

Open VS Code, go to File → Open Folder, select your folder. VS Code shows everything inside it in the left panel. You edit files there. Your AI agents read from there.

You can create files and folders directly on your computer (Finder on Mac, File Explorer on Windows) or inside VS Code using the left panel. Both work the same way.

Step 2: Install the extensions (no terminal required)

Both Claude Code and Codex have official VS Code extensions with full chat interfaces. You type to them the same way you type in Claude.ai or ChatGPT. No commands.

For Claude Code:

  • Click the Extensions icon in the VS Code sidebar (four squares)
  • Search for "Claude Code"
  • Install the one published by Anthropic
  • Sign in with your Anthropic account in the chat panel

For Codex:

  • Same process: Extensions icon
  • Search "Codex"
  • Install the one published by OpenAI
  • Click "Sign in with ChatGPT" and log in with your OpenAI account

Both panels work like a chat window. You type what you want. The agent reads your project files and responds.

Step 3: Write your AGENTS.md briefing file

Every AI coding agent needs a briefing document. A file it reads automatically when you open the project. Instructions, context, goals - all in one place.

The open standard is AGENTS.md. It is not just OpenAI's format - it is a cross-tool standard, stewarded by the Linux Foundation, used by Codex, Cursor, GitHub Copilot, Windsurf, Gemini CLI, and growing. Over 60,000 public repositories on GitHub already use it.

Claude Code uses a file called CLAUDE.md. Same idea, Claude-specific name.

The solution: write everything in AGENTS.md. Then make CLAUDE.md point to it automatically (the symlink section below).

To create AGENTS.md: right-click in the VS Code file panel → New File → name it AGENTS.md. Paste this starter template:

# Project Name

## What this project is
[Describe the project in 2-3 sentences]

## My goals
[What you are trying to accomplish with this project]

## How I want the agent to behave
[Tone, approach, what to always do, what to never do]

## Important context
[Anything else the agent needs to know]

Three sentences is enough to start. Update as you go.

Step 4: The folder structure

Each tool has its own config folder inside your project. Here is what matters:

Your project folder/
│
├── AGENTS.md          ← your instructions (open standard)
├── CLAUDE.md          ← will be linked to AGENTS.md
│
├── .claude/           ← Claude Code's config (auto-created)
│
├── .codex/            ← Codex's config
│   └── config.toml
│
└── docs/              ← shared knowledge both agents read

Folders starting with a dot are hidden on Mac and Linux by default. VS Code shows them normally in its file panel. You do not need to touch them via Finder.

For .codex/config.toml, paste this minimal starting config:

[model]
provider = "openai"

The .claude/ folder is auto-created by Claude Code on first run.

Step 5: The three-layer mental model

This is the idea that makes the whole setup portable:

  • Layer 1 - Shared knowledge. Anything both agents need. Lives in docs/. Write once. Both read. Never duplicate inside a tool folder.
  • Layer 2 - Skills (reusable workflows). Same format, two folders: .claude/skills/ for Claude Code, .agents/skills/ for Codex. Copy the same files into both.
  • Layer 3 - Tool config. .claude/ and .codex/ are tool-specific. Not interchangeable.

Your actual project knowledge lives in files any agent can read. The tool-specific folders are just adapters.

Step 6: Four things that trip people up

  • .agents/skills/ is where Codex looks for skills - not .codex/. Create it at your project root.
  • Agent definition files use different formats. Claude Code agents end in .md. Codex agents end in .toml. Instructions inside work the same way; the file format differs.
  • The two config files configure different things. Do not copy .claude/settings.json into .codex/config.toml or vice versa.
  • Put shared knowledge in docs/. The moment you put project knowledge inside .claude/ or .codex/, only one agent has access. That defeats the purpose.

How do you keep AGENTS.md and CLAUDE.md in sync forever?

One terminal command. Run it once. Never think about it again.

The problem: AGENTS.md is your source of truth. But Claude Code reads CLAUDE.md. Two separate files will drift apart. You will forget to update one. Your agents will work from different instructions.

The fix: make CLAUDE.md a symbolic link to AGENTS.md.

On Mac or Linux, from your project root:

ln -s AGENTS.md CLAUDE.md

On Windows - open Command Prompt as Administrator (or enable Developer Mode in Windows Settings first):

mklink CLAUDE.md AGENTS.md

CLAUDE.md is now a symbolic link, not a copy. When Claude Code reads CLAUDE.md, it reads AGENTS.md directly. Every update to AGENTS.md is automatically what Claude Code sees. No sync step. No drift. No maintenance.

This is also why AGENTS.md is the right file to write in. It is the open standard. Every serious AI coding tool already reads it, and more are adding support every month. You write once. Every tool follows.

Sources and further reading

  • AGENTS.md open specification - stewarded by the Linux Foundation
  • Claude Code documentation - Anthropic
  • Codex VS Code extension - OpenAI
  • Claude Code. No code required. - the brisk. setup guide for non-technical professionals

Don't build workflows in tools. Build them in files.

Any agent can read a file. Not every agent can read a proprietary interface you don't own.

The sooner you set this up, the less you have to migrate later.

→ Want the migration prompt for moving an existing Claude Cowork project to Codex? It lands in the welcome email when you join the brisk. Newsletter.