Most model providers give you two ways to work: a “chat” and a “code” environment. Most people just use chat, but for anything you’ll come back to later the code environment is actually the better choice, because it allows you to work in your own file system.
The name “code” is a bit misleading, because the difference isn’t about doing more or less programming (I use it for many tasks that have nothing to do with coding), but about where your work ends up.
In chat, everything you produce lives in the chat history on the provider’s server. All the input (files you drag in) and outputs (files the model creates for you) and the whole conversation in between is accessible to you only through the chat interface.
With a coding agent you point it at a folder on your own machine, and all the inputs and outputs are just files sitting on your disk.
This matters when you want to switch providers. If they raise their prices, or another model gets better, or their best model is no longer accessible outside of the US, you’ll likely want to move. If all your work lives inside one provider’s chat interface that’s difficult to do.
So the thing you want is to keep the model separate from your files. The model is just a processor you’re renting, the files are the part you actually care about, so it makes sense to store them somewhere that doesn’t depend on which model you happen to be using this month.
There’s a great essay called “file over app” by Obsidian’s founder Steph Ango that makes the argument: store your work in simple formats you control instead of locking it inside whatever app created it. A few reasons this helps:
- if an app or provider goes out of business, your work is still there
- your files are on your own machine, so you can get to them offline
- multiple programs / users / AI agents can read and write the same file
That last part I find especially useful when working together with AI, because it allows me to actually work alongside whatever AI agent I am using. My usual setup is Obsidian open on the right half of my screen and Claude or Codex on the left, both pointed at the same project folder.
I can edit the same documents the agent is working on, and my changes show up for it immediately. Sometimes I use Claude, sometimes Codex - there’s no switching penalty, because neither of them is holding onto anything.
Another problem I often see is that people don’t make files at all. When the model produces a good analysis, or you come to a decision, or you finally figure something out, that shouldn’t just stay sitting in the conversation, but be pulled out into its own document.
If you come back a month later you just open a folder, rather than finding the relevant chat and then re-reading a transcript trying to find the part that mattered.
So the rule I follow is pretty simple: if it’s a one-off thing I’ll never need again, I use chat (chat basically replaces googling something). If it’s something I’ll come back to, I’ll use a coding agent in a dedicated folder.
When I start a project I make a new folder, put the relevant context in it, and point the agent at it. When the agent produces something useful I have it write the result back into the folder as a document, table, or whatever digital artifact is most appropriate. Next time I don’t have to find the right provider and then the right chat, I just open the Projects folder.
Another advantage of keeping your files separate from the model is that they keep getting more useful over time as the models improve.
Models change fast, and the one you use today probably won’t be the one you use next month. But your project folder mostly just sits there and grows slowly as you keep adding to it.
This matters most for the things you only touch now and then. You might open your tax return folder once a year, and by the time you come back the models have changed completely. If everything lived in last year’s chat you’d be starting over. If it lives in files, you just point this year’s model at it.
The way I think about it is that you have two things growing independently. One is your context , which is all the information and insights you’ve gathered on a project. The other is model capability. And what you get out of it is roughly the two multiplied together.
The same folder of tax documents is worth more next year than this year, even if you didn’t change anything, just because the model working on it got better. This year the model might not be able to actually file your taxes for you. Next year it probably can - and when it can, it can do it against everything you already gathered.
I try to think of myself as a context hoarder. The job is to gather everything a future model would find useful and get it out of my head and out of the chat history into structured files in the right folder.
That way my own knowledge and whatever the model figures out along the way both end up in the same place - not stuck in my brain, not stuck in a transcript, just sitting in files, waiting for whatever model comes next.

Top comments (0)