{"slug": "i-was-always-wondering-how-it-feels-to-switch-between-ai-tools-so-i-tried-it", "title": "I was always wondering, how it feels to switch between AI tools, so I tried it", "summary": "A developer tested Cursor, OpenAI's Codex, and Anthropic's Claude Code on the same real feature inside the Sequo app, using each tool's cheapest paid plan, default model, and default settings, then scored every result against the same 16-item checklist. Claude Code finished fastest, was cheapest in real terms, and was the only tool to get every UI step right, while Codex ran out of limits mid-feature and produced no design prompts for two of three screens; Cursor finished in 52 minutes. The author said he will stick with Claude Code and migrate to Cursor if limits become a problem again.", "body_md": "Half my feed is people announcing they moved from X to Y. I switched to Codex. I'm back on Claude. Cursor changed everything for me. Cool. And then nothing. Nobody shows the codebase, nobody says what it cost, nobody mentions what broke on the way.\n\nSo it's time to finally clarify which tool to choose and what actually happens when you switch.\n\nHere's the thing. I've been paying Claude Code since day one. Sequo, the product I'm building, was written entirely with it. And I never once checked whether that's the right tool for my project, or just the one I happened to start with.\n\nI bet a lot of you are in the same spot. You want to try something else, but your codebase is right there, your agent knows it, and handing it to a stranger feels like a bad idea.\n\nSo I did it for you. Three tools, one real feature, the same real project. Cursor, Codex, Claude Code. Cheapest paid plan for each, default model, default settings, no tuning. Same task, word for word. Then I checked every result against the same list of 16 things the feature had to do.\n\nQuick context on what Sequo is, because the whole test runs inside it: you describe a web app in plain English, it writes the documents and the plan your coding agent works from, and hands you one prompt per step. I built it because context is what breaks first. Your agent forgets what you decided three sessions ago and you spend your evening re-explaining your own project to it.\n\nSequo.app was written entirely with Claude Code, so the repo has Claude-specific files. For this article I removed them and created 3 separate branches: Claude Code, Codex and Cursor. Before testing, each branch gets prepared for its tool: AGENTS.md for Codex, .cursor/rules for Cursor, CLAUDE.md for Claude Code. The content of these files is the same, only the format differs.\n\n### So who won\n\nGuys, it's really hard for me to choose, so let me start with the honest part: it's definitely not Codex.\n\nIt was a great run and most things are implemented correctly. But running out of limits mid-feature, and not producing design prompts where they're 100% needed, is a big issue for me. Two of three screens end up with no design at all, and the logic prompts tell the agent not to style them because a design pass is coming that never arrives. I'm not counting that as done.\n\nCursor surprised me the most. It's cheap, it finished in 52 minutes, and Grok is fucking crazy, not what I expected at all. I'm sure this is just the beginning. People who are deep in AI and have tried most of the stuff keep saying Grok will fuck everyone. Let's see guys, let's see.\n\nClaude Code did the best work. Fastest run, cheapest in real terms, the only one that got every UI step right, and design prompts so detailed they read like a spec from someone who looked at the screen.\n\nBut here's my problem: I'm loyal. I've been on Claude since the beginning and I can't tell how much of that is in my judgement. So Claude and Cursor are close enough that I'd rather you decide.\n\nWhat I'll actually do: stick with Claude Code. And if they get crazy with limits again, I'm migrating to Cursor.**If you're going to try another one anyway**, three things that cost you nothing. Run it in a clean config so it doesn't inherit your old setup, and check Cursor's third-party import toggle before the first run. Write down the places in your project that have to change together, because your current agent knows them and a new one won't. And don't give Codex a feature-sized task on the $20 plan unless you're fine waiting out a limit.\n\n### Same question, three answers\n\nThis is the moment where the three versions differ, played back to back. Same idea, same sentence typed into all three: cyberpunk vintage, neon accents on dark, worn retro feel, chunky old-school type. The questions before it are generated fresh every time, so they are not word for word the same, but they cover the same ground.\n\nWatch what each one gives back.\n\n### What switching actually costs you\n\nYour tool isn't just the thing in the folder. It's everything you bolted onto it over months and forgot about. Two plugins injecting instructions into every session, an MCP server pointing at some unrelated repo, every tool pre-approved. I didn't remember half of it was there.\n\nAnd here's the funny part: Cursor imported my Claude Code plugins by itself, there's a toggle for it, on by default. Then I bought a brand new Claude account for this article so the run would be clean, and Claude Code picked up the same plugins anyway, because they live on the machine, not in the account. A new subscription does not give you a clean tool.\n\n### \n\nWhere all three missed the same way\n\nSequo generates documents for your project and writes a CLAUDE.md that tells your agent which of them to read. I asked all three tools to add a new one, a design system file with your colours and fonts.\n\nAll three created the file. Two of them never added it to the list. So the file lands in your repo, and your agent has no idea it exists, because CLAUDE.md still lists the old seven. Why they missed it: that list is hardcoded in four separate places in my code. My own agent knows that because it wrote them. A new tool doesn't, and nothing in the instructions file says where to look.\n\nAlso, all three lose your custom design the moment you click a preset to compare, and none of them mention the design in the final brief. Same gap, found three times independently.\n\n### What actually separates them\n\nNot code quality. What they think the job is.\n\nCursor writes and stops. The database was down, it said so and finished. Codex treats a broken environment as something to fix: started Docker, applied migrations, wrote its own tests, found its own bug. Claude Code does both and then tells you what it found that you never asked about, including that it caught its own classification bug mid-run.\n\nThree apps, one idea, same sentence about the design, built from the prompts each version produced. Same executing agent for all three, so the difference comes from the prompts and not from who ran them. No database behind them, the data lives in memory, that part is my own edit so I could put them online.\n\nClick around and pick the one you like.**Cursor**: [https://sequo-demo-cursor.vercel.app](https://sequo-demo-cursor.vercel.app)** Codex**: [https://sequo-demo-codex.vercel.app](https://sequo-demo-codex.vercel.app)** Claude Code**: [https://sequo-demo-claude.vercel.app](https://sequo-demo-claude.vercel.app)\n\nCodex is the odd one out, and it's the clearest proof of what I found in its section: it never produced a design prompt for a single step, so that app is unstyled apart from three colours it picked up by accident. Nothing to do with the model's taste. It just never asked itself to do the job. When I tested it by hand, one of the UI steps did get a design prompt. In this run, none did. Same code, different outcome.\n\n### How I ran it\n\nThe branch setup I already mentioned up top. What I haven't said is the rest of the rules, and they matter if you want to trust any of these numbers.\n\nCheapest paid plan for every tool, around $20 each. Default model, default settings, nothing tuned. I didn't go hunting for an autonomy toggle before the first run, because nobody does that on a fresh install.\n\nMy instruction file went in as is, I didn't polish it for the article. It doesn't even mention npm test. That's the point: you're switching with whatever file you actually have, not an ideal one.\n\nLocal database, wiped before every run, so each tool starts from the same empty state.\n\nOrder was Cursor, Codex, Claude Code. Claude last on purpose. I know it best, and if it went first it would quietly become the yardstick I judge the other two against.\n\nAnd the task was the same for all three, word for word:\n\n```\nAdd design to Sequo.\n\nOnboarding\n1. Right after the coding agent question, the onboarding chat asks the user what design they want for their app. Three ways to answer: describe it in their own words, pick one of 8 ready-made design presets, or skip (a Skip button, or typing \"skip\").\n2. A design covers colours, fonts, corner radius, density and overall style. A preset and an own-words description both produce this full set.\n3. You create the 8 presets yourself.\n4. After picking a preset or describing their own, the user sees a small preview: colour swatches, fonts and a few sample elements. They approve it, or change it by describing again or picking another preset. Then onboarding continues as it does now.\n\nDocuments\n5. The document set delivered at step zero includes a design system document. If the user skipped, you decide whether the document is absent or describes a basic design.\n\nSteps\n6. Each step keeps its current prompt, which now covers logic only. For steps that involve UI, Sequo also generates a separate design prompt. The user runs it in a separate agent session after the logic prompt.\n7. The design prompt is generated in the background from the step's logic prompt and the chosen design, while the user runs the logic prompt.\n8. The design generator decides from the logic prompt whether the step needs design. If it does not, the step says there is no design for this step.\n9. If the user skipped, no step gets a design prompt and the app gets a basic design, as it does today.\n\nScope\n10. New projects only. Projects created before this feature behave as if the user skipped.\n11. No separate plan gate. Design comes with the project under the current Free and Pro limits.\n12. Changing the design after onboarding is out of scope.\n13. Everything that works today keeps working: onboarding, generation, steps, change of direction.\n\nHow you implement it is up to you.\n```\n\nThen I checked what came out against a list of 16 things the feature had to do. The tools never saw that list, I wrote it before the first run and didn't touch it after.\n\nThat's the short version. What follows is each run on its own, start to finish: what it cost, what it asked me, what it built, and where it broke. If you only came for the answer, you already have it. If you want to see how each one actually behaves before you hand it your project, keep going.\n\n## \n\nCursor\n\nCursor goes first on purpose. I know Claude Code best, so if it went first it would become the yardstick I judge the other two against.\n\n### \n\nBuying it\n\nFour plans: Hobby free, Pro $20, Pro+ $60, Ultra $200. The higher tiers sell volume, not a smarter model. Pro+ says 3x Pro limits on Agent, Ultra says 20x. For this article I take the cheapest paid plan everywhere, and Pro already has everything needed to add one feature. Unlike many companies, Cursor highlights the $20 plan rather than the expensive ones. At checkout it was $20 plus 23% VAT, so $24.60 for me.\n\nTwo small things on the way in. The first screen after payment asks if I want to share my data, on by default. I shared my money with them and they want me to share data as well - today I share only once. And once you are signed in, the site no longer shows the download button, it lives on cursor.com/home. Funny how after paying they do not care whether you downloaded the app. I am sure some people do it in my order too: subscribe first, then go looking for the app.\n\nThe installer is 274 MB and the app inself around 900 MB, because Cursor ships a full editor. Claude Code and Codex install as terminal tools, and that is the first real difference between the two kinds of product here. But the app itself surprised me. I was expecting 1000 steps of onboarding and weird chains of clicks, and instead you land straight in a chat, with the editor one click away behind an IDE button. Cursor presents itself as an agent first and an editor second now. Bottom right there is an offer to import your Claude Code conversations and continue them in Cursor, which tells you who they are hunting for.\n\n### \n\nThe model\n\nThe picker lists Auto, then Cursor Models with Grok 4.7 High selected by default, then Other Models with Claude Opus 5.5 and GPT-5.6 Sol. I left Grok because it's the default. Not Auto, because Auto can switch models mid-run and I would not know what I tested. Not Claude or GPT inside Cursor either, because that would turn this into one model in three wrappers instead of three products. SpaceX bought Cursor in August, and xAI is part of SpaceX, so Grok being the house model makes sense. It works out well here: every tool in this comparison ends up on a different model.\n\n### \n\nThe trap nobody warns you about\n\nI ran the prompt and the agent started working. In its very first command batch I noticed it was using a plugin called context-mode, even though I never installed any plugins in Cursor. I went to settings, found two plugins installed, context-mode and Superpowers, and clicking delete redirected me to a setting called Include Third-Party Plugins, Skills, and Other Configs, which was on. Those are my Claude Code plugins. Cursor imported them silently. I turned it off, restarted, the plugins disappeared, and started the run over from scratch.\n\nIf you are switching tools on a machine you already work on, this is exactly what will happen to you, and nothing in the chat tells you where a tool came from. In normal life it is a nice feature. If you want to know what the new tool does on its own, it ruins the test. **Check that setting before your first run**.\n\n### \n\nThe run\n\n**52 minutes from prompt to done**, with no input from me except approvals.\n\nApprovals were the one thing that kept pulling me back. The first time it asked, I clicked Always Run and assumed that was it. Then it asked again for npm run dev. In Allowlist mode, Always Run adds that one command to the list, not everything, so any new command asks again.\n\nWhile it worked, Cursor opened Sequo in a browser panel right next to the chat, which is a nice touch.\n\nAt the end it reported the work honestly, including what it had not done: it never walked the onboarding in a browser, because Docker was not running on my side, and it told me the new migration has to be applied before the design prompts will work. So the feature arrived untested by the agent itself.\n\n22.9M tokens. My first reaction was: what? On Claude I usually spend 1 to 2M on a heavy task. But those numbers are not comparable, tools count differently, so the honest number is the share of the plan: **3% of the monthly Cursor Models quota**, zero on-demand. One feature, 3%, on a $20 plan. That is roughly 30 runs of this size in a month, before any iteration on top. And this was a fresh session where I did not test anything during the run. As a founder I would normally do a few rounds of fixes.\n\nOne setting worth keeping as it is: On-Demand Usage is off by default, so when the quota runs out Cursor stops instead of quietly charging you.\n\n### \n\nWhat it built\n\nCursor's own counter said 1922 lines added and 81 removed. Git says 37 modified files with 519 insertions, plus 14 new files and folders git does not count until you add them, which is where the rest of those lines live.\n\nLooking at which files it touched, it really dived deep. It found the download route that builds the document archive, step zero setup, direction change, continuation, regeneration, readiness checks and the docs token, and updated all four living documents. Those are exactly the places a new document has to be wired into. It did not bolt the feature onto the side of the app.\n\n### \n\nThen I tested it myself.\n\nThe onboarding part came out well. The design question lands exactly where it should, right after the coding agent question, with all eight presets on screen, a skip button and a text box.\n\nI typed a description of a cyberpunk vintage look and got back a full visual system, six colour roles, two fonts, corner radius, density and a style line, previewed as a real card with a heading, an input and a button rather than just swatches.\n\nTwo things I did not like. When you send a custom description, your message does not appear immediately, only after the design is generated, which makes it feel like it bugged. And once a custom design is generated, if you click a preset to compare, there is no way back to yours. You have to type it again, and then you get a completely different design from the same words. I know because it happened to me: the first time my phrase came back with nothing cyberpunk about it, the second time it did. *Same input, different output, so never judge a generated design on one look.*\n\nThe eight presets are there, but I would not call them unique. There is a difference, mostly in colours, not in the actual design.\n\n### \n\nWhere it failed\n\nThe design document ships. docs/design-system.md arrives with the right content, your colours, your fonts, your radius. **But nothing tells the agent it exists**. The init prompt still says the archive holds seven documents (The counts in this article go seven, eight and nine for a reason: seven living documents in the archive before this feature, eight files to read once you add CLAUDE.md, nine once the design document exists.) and still lists eight files to read as the source of truth. The generated CLAUDE.md does not mention the design file at all. The reason is in the code: the document set is listed in several prompt files, and one of them explicitly tells the model not to reference any file outside that list. None of those files were touched.\n\nSo Cursor described the feature correctly in the documents a human reads, and missed the prompts that write the documents an agent reads.\n\nWhat saves it is the design prompt. Each step that changes what a person sees gets a second prompt, to run in a fresh session after the logic prompt, and it carries the values inline: the hex codes, the fonts, the radius, the density. It does not just say go read the design system. So the design does reach the built app, but through one path only, and the path meant to back it up is broken.\n\nEverything else held. Steps without a UI say there is nothing to style. Skip is clean all the way through: no document, no design block, the product looks exactly as it did before. Free and Pro limits untouched, change of direction still works, tests, typecheck and build all green, 897 tests passing, 6 more than before. It also wrote a proper decision entry with real reasoning: why the question sits after the coding agent, why a preset and a description end up as the same object, why a skipped design leaves the document out, and why projects created before the feature keep working without a migration.\n\n### \n\nCursor in numbers\n\n**-****52** minutes, no intervention beyond approvals\n\n- **3%** of the monthly quota on the **$20** plan, **22.9M** tokens\n\n- **37** files modified, **14** new, **1922** lines added\n\n- **16** checks: **12** passed, **3** partial, **1** failed\n\nThe failure: a new document nobody is told to read\n\nTwo things I would tell you if you are thinking about Cursor. It handles a real feature in a codebase it has never seen, and it goes looking for the existing wiring instead of writing new code beside it. And it misses in the places your project has memorised: a list that lives in four prompt files is something your current agent knows because it wrote them. A new tool does not, and your instructions file will not tell it.\n\n*Whether that is better or worse than the other two, I do not know yet. Two runs to go, and the comparison is at the end.*\n\n## \n\nCodex\n\nAlright guys, now my lovely ChatGPT. I don't know why, but I can't shake the feeling that he's stupid. After all, remember when the 2023-2024 hype started and everyone began using it and talking about how dumb it was? I know it's a stereotype and he's been at the very top of the pyramid for a long time now, so let's see for ourselves.\n\n### Getting in\n\nTwo days before this I was clicking around my ChatGPT account and saw a banner: get one month of Plus for free. By the time I needed it, it was gone. So I pay.\n\nThree paid plans. I was surprised they have a Go plan at around $9. But Codex is not in it, the first plan that lists it is Plus at $20, so Plus is the cheapest plan that can run this test at all. Same price as Cursor Pro, except here the page price already includes VAT, so $20 is what actually leaves your account. Cursor added 23% on top of mine.\n\nRight after paying I get redirected to the chats page with a popup saying \"Welcome to ChatGPT Plus\". Where's my confetti? It says I can now manage effort, create advanced images and connect apps. Codex is not on that list, you have to know to go looking for it in the sidebar.\n\nThat sends you to a landing page, and after one or two minutes of scrolling I found the install options. Guys, I know their app is cool and everybody recommends it, but I just like the console, I like the vibe of it. You can easily download the app and use it, there's no big difference in functionality. One npm install and it sits in the terminal, same shape as Claude Code. Cursor, by comparison, was a 274 MB editor.\n\nThen I checked what a fresh install brings with it, after what happened with Cursor. Six of its own built-in skills, an empty plugin cache, nothing from my machine. The opposite of Cursor.\n\nAstra was chosen by default and I don't mind, everybody has heard how cool it is and I'm going to see it in action now.\n\n### The run\n\nStarted at 14:35.\n\nOne small thing first: when I paste the prompt I see [Pasted Content 1884 chars] and can't check what's inside. In Claude Code you can see what you pasted by pasting it a second time and the full text appears.\n\nThe first permission request comes fast. It wants to run the local server, and I have no idea why they run it if they can't test in a browser. It says it is able to check in the browser, so I'm wondering if it actually does.\n\nIt did. Docker was off on my machine, the same as during the Cursor run, so the local database was dead. It noticed the DB is not running and asked to start it, unlike Cursor. Then the Supabase CLI failed, so it asked to open Docker Desktop. I like how it can manage apps and so on, I still don't get why Cursor hasn't done the same. Then it asked to apply the pending migrations, then to run an authenticated integration test that creates a test account and a disposable project, then to extend that test through plan generation and step zero.\n\n**Same broken environment for both tools. Cursor reported it as a reason it could not verify. Codex treated it as something to fix.**\n\nIt also wrote its own test script and then found its own bug while testing, and asked me to fix that before reporting that all is done. The design object serialised differently depending on key ordering coming back from the database, which would have broken cache comparisons.\n\nThe price of all this is the questions. Bunch of questions. It could have asked all of that in one or two questions and not given me so many of them. Twelve approvals across the run, and about half of them were about keeping its own test environment alive rather than about the feature.\n\n### Running out\n\nThen, nine approvals in and the feature not finished, hahahah what? The process isn't even finished and my limits are already reached. I had no idea what to do, so I clicked the first option, maybe it would give some additional limits, but I didn't really think so.\n\nIt didn't. Three ways forward: upgrade to Pro, buy credits, or wait until 7:38 PM, three and a half hours away. There was also an offer to switch to a cheaper model to keep going, which I tried, and the session stayed at the limit anyway, so I set the model back. Switching would have meant the rest of the feature gets written by a different model, which makes the run impossible to compare with anything.\n\n*It used 16% of the weekly limit and didn't even finish a task. Yeah.* But it doesn't matter, I'll wait until it resets and we'll continue.\n\nI was waiting for three and a half hours. I was about to buy extra usage, but that's not fair enough actually, so here I am. At 19:40 I typed \"continue\" and it picked up exactly where it stopped, full context, nothing to redo.\n\nNear the end it asked to make the commit required by the instructions file. It wants to commit itself, I don't mind, sure. Cursor, by the way, left everything uncommitted.\n\nAt 19:56 it finished. One hour twenty three minutes of actual work across two sessions, with three and a half hours of waiting in the middle. Cursor did the same task in 52 minutes without stopping.\n\nSame price bracket, one feature: Cursor spent 3% of a monthly quota and finished. Codex burned a 5-hour window plus 16% of a week, and did not.\n\n### What it built\n\n52 files, 1528 insertions, 123 deletions, one commit. 901 tests passing, ten more than the base branch, where Cursor ended at 897.\n\nThen I tested it by the list.\n\nThe design question lands in the same place, right after the agent question, and for now the two versions are barely different in terms of structure. Then I typed my custom cyberpunk theme and, wow, I didn't completely expect such an output, that's really a cyberpunk design. Seven colour roles with the hex under each swatch, both fonts, radius, density, and a sample card rendered in the actual palette.\n\nUnlike Cursor, my custom message never appeared in the chat. Instead it showed \"Preparing your design\" and updated the card in place.\n\nThe presets are the same story as Cursor. We have 8 options and in general they differ in colours; out of 8 we have 3 or 4 that really look unique. And when a custom design is generated and you click a default preset to compare, you can't go back to yours, the same miss as in Cursor.\n\nWhere Codex clearly wins is the wiring. I ran the init prompt locally and got design-system.md in the docs. The document itself is about as short as Cursor's, just general colours and radiuses, but this time it's included in CLAUDE.md, so any time I want to run something custom outside Sequo, the agents will pick up the relevant styles without me mentioning that I have a specific file. That is the exact line Cursor left out.\n\nThe init prompt mentions the design document too, with the wording \"docs/design-system.md, if the archive includes it\", which makes sense once you remember that a skipped design ships no document at all, so the same prompt has to cover both cases. What it missed is the \"Done when\" section at the bottom, which still says docs/ holds the seven living documents, so the file now contradicts itself.\n\n### Where it failed\n\nThree steps in a row I get \"No design for this step. This is a logic step that explicitly defers all visual styling, colours, fonts, radius, density and polish to a separate design handoff using the neon retro system.\" I finally got a design prompt on the 4th step.\n\nThat is the failure. Three of six steps build UI: the login page, the streak dashboard and the check-in button. **Only the check-in step got a design prompt.** Worse, the logic prompts for the other two tell the agent to leave styling for a design handoff that never arrives, and the one design prompt that exists is scoped to its own step only. So the login screen and the main screen end up with no styling from anywhere. Step 2 even lists \"see the login screen with neon retro styling\" in its done-when, which nothing in the flow can deliver.\n\nAnd it isn't even stable. When I later ran the whole thing again to build the demo app, not a single step got a design prompt. Same code, same idea, same sentence. One run gives you one styled screen out of three, the next gives you none.\n\nOn top of that the no-design block appears with no animation, a few seconds late and with a page jump, which feels rude compared to Cursor.\n\nThe design prompt it does generate is better than Cursor's. It sends the agent to read the design system, specification, architecture and decisions first, names the exact surfaces from the logic step, writes all seven colours and both fonts inline, asks for concrete Tailwind classes, adds accessibility requirements, and ends with browser verification and a commit. The quality is not the problem. The classifier that decides which steps need design is.\n\nEverything else held. Skip is clean: clicked skip, the design block disappeared and idea generation started, no document, no design blocks anywhere. Limits untouched, change of direction works, tests, typecheck and build all green. The decision record has its own sections in the architecture, specification and development plan rather than lines squeezed into existing ones.\n\n### Codex in numbers\n\n- 1 hour 23 minutes of work, plus 3.5 hours waiting for a limit reset\n\n- Ran out of quota before finishing: 16% of a weekly limit on the $20 plan\n\n- 52 files changed, 1528 insertions, one commit it made itself\n\n- 12 approval requests, about half about its own test environment\n\n- 16 checks: 13 passed, 2 partial, 1 failed\n\nThe failure: two of three screens get no design at all\n\n*One run to go.*\n\n## \n\nClaude Code\n\nHonestly Claude Code is the most basic for me, I somehow imagine what it's gonna provide. But I was still really wondering what we'd see, because I bought a $20 sub on an absolutely new account. So it has no memory and no knowledge of me there.\n\n### Getting in\n\nI went to their landing, oh I didn't do that for a year. The page immediately pushes you to sign up and download the desktop app. Nothing special on pricing: two plans, Claude Code included starting from 15 euro a month on an annual plan, 18 monthly, which is about $21. Same bracket as the other two.\n\nThen the fun started. I picked Google sign-in and got an error. Tried again, same. Three times. *Guys, I want to give you my money, please let me do it.* Their status page confirmed they were having issues, so nothing new. I waited an hour.\n\nAn hour later it worked. Interesting detail: they ask you to sign in first, and only after taking your email do they show you the policies. Then it asks for your birthday, and I have no idea why it matters, I had a birthday a few days ago and Claude didn't give me anything. Then their own checkout page, no Apple Pay, full card details required, which slows you down and honestly I usually skip apps that ask for that.\n\nAfter payment it pushes the desktop app again, then asks about sharing data for training, which I turned off like I did in Cursor. I keep wondering whether that toggle affects anything. If someone enables it, why not give them $10 in credits every month once they pass, say, 100 conversations?\n\nIt also asks your name and role. The other two never ask your name, and then never use it anyway.\n\nInstalling the CLI took finding, the whole flow wants you on the app. One script, and all three tools were finally in the same shape: two terminals and one editor.\n\n### The trap, again\n\nBefore starting I checked the environment, after what happened with Cursor. New account, new subscription, and Claude Code still picked up everything sitting in my home folder: context-mode, superpowers, two of my skills, and a connected Claude Docs MCP.\n\n**A new subscription does not give you a clean tool.** Those live on the machine, not in the account. So all three tools in this article ended up carrying pieces of my old setup in one way or another, each through a different route.\n\nI restarted with CLAUDE_CONFIG_DIR pointing at an empty folder, so this run started as if nothing had ever been installed and my normal setup stayed untouched.\n\n### The model\n\nThe default was Sonnet 5, and I was sure it should be Opus. Opus 5.5 sat in the list disabled, but not because of the plan: it said update the CLI to 2.1.280+, and I was on 2.1.263. So I updated, and yeah, like I imagined, Opus 5.5 became the default, with a 1M context and a warning that it draws down usage faster than Sonnet.\n\nWorth knowing if you are setting up today: on a fresh install the default model depends on which CLI version you got.\n\n### The run\n\n**38 minutes. Zero approval requests.** It never stopped me once, because auto mode is on by default, where Cursor and Codex both sandbox.\n\nFor comparison: Cursor took 52 minutes and interrupted me a few times, Codex took 1 hour 23 minutes of work plus a three and a half hour wait for a limit reset, and asked twelve times.\n\nThe final message was the most detailed of the three, and most of it reported things nobody asked for:\n\nIt wrote a contrast test across all 8 presets, found two whose button text failed WCAG AA, and fixed them. It found that the model does not reliably follow the contrast rule when it invents a design from words, and corrected that in code instead of trusting the model. Its first live run wrongly said \"no design\" for steps that build pages, caused by its own \"don't style this\" wording in the logic prompts. It noticed, tightened the prompt and added a calibration script that now gets 12 of 12 cases right.\n\n*That last one matters: it is exactly the failure Codex shipped to me.*\n\nTwo honest admissions, which I appreciate more than the fixes: typing \"skip\" was never run live, because Docker stopped partway through its testing. And it told me plainly what it changed on my machine, a started container, an applied migration, two test projects and a test user left in the database.\n\n### What it cost\n\n37% of the 5-hour session window and 6% of the weekly limit, on Opus 5.5, their newest model, on a $20 plan. That's not much actually.\n\nNext to Codex on the same kind of plan: Codex burned its entire 5-hour window and 16% of a week, and still didn't finish. Claude Code used a third of a window and 6% of a week, and finished.\n\nUsage credits sit at $0 and off by default, so the tool stops at the limit instead of charging you extra. Cursor behaved the same way.\n\n### What it built\n\n59 files, 3256 insertions, one commit. Interesting that all three tools touched a really similar range of files: Cursor 51 paths, Codex 52 files. But Claude Code wrote almost twice the volume of either.\n\nThen I tested it.\n\nThe design question lands in the right place. I typed the same cyberpunk description, waited three seconds, and got the biggest preview of the three, and honestly the most accurate design decision among the three tools. It is the only one that picked display fonts to match the words: Press Start 2P for headings, VT323 for body and code, both pixel faces. Cursor stayed on an ordinary sans, Codex went with Courier New, which is at least monospace but nothing like the words I typed.\n\nMy custom message appears in the chat correctly, so I see it immediately, and the whole history of switching between presets and custom messages stays in the conversation. Neither of the others kept that.\n\nThe presets are the same story again: eight of them, the same kind of variety as Cursor and Codex, nothing surprising. And the same miss all three share, once you click a preset to compare, you cannot get back to your custom design.\n\n### Where it failed\n\nThe design document ships, and it is the richest of the three. But nothing points to it.\n\nThe init prompt still says seven documents, still lists eight files to read with none of them being the design system, and its done-when check still says seven. The generated CLAUDE.md lists the same seven documents as always. Meanwhile the app screen counts nine.\n\nSo I can't rely on that design doc, because I would have to mention it explicitly every time I want to do anything with UI.\n\nThis is the Cursor failure repeated. **Two of three tools added the file they were told to add, and neither told anyone it exists.** Codex was the only one that wired it up.\n\n### Where it won\n\nThe step prompts. This is where the three separate most clearly.\n\nCursor's design prompt listed the values and the surfaces. Codex's did the same and added accessibility rules. Claude Code's reads like a spec written by someone who actually looked at the screen: a centered card with CRT grain, the heading in Press Start 2P with a magenta neon outline, shadcn Tabs with a scanline on the active one, 40px control heights, a 4px spacing unit with 32px between sections, square corners, a flicker on the loading button, and a done-when list naming both the hex and the behaviour that must not change.\n\nIt also does something neither of the others mentioned: if the design tokens and fonts are not set up globally yet, set them up once, globally, and never hardcode a hex where a token exists.\n\n That is the difference between styling one screen and giving the project a design system.\n\nAnd it got the classification right where Codex failed. Every step that builds UI has a design prompt. Every step that doesn't says so.\n\nThe rest held. Skip is clean, limits untouched, change of direction works, tests, typecheck and build all green. The decision record is the most thorough of the three, including why old projects need no migration, why the document is rendered by code rather than by a model, and that honest note about the model not following its own contrast rule.\n\n### Claude Code in numbers\n\n- 38 minutes, zero interruptions\n\n- 37% of a 5-hour window and 6% of a week, on Opus 5.5\n\n- 59 files changed, 3256 insertions, one commit\n\n- 16 checks: 13 passed, 2 partial, 1 failed\n\nThe failure: the design document nobody is told to read\n\n### Conclusions and the ravings of a madman\n\nMost things people build are built to get a result. A post, a video, a launch. Hit the number, move on, and nobody is any better off than before you started.\n\nI think there are three parts to it, and you need all three. The process has to be interesting to you, or you quit halfway through and the thing dies in drafts. The topic has to actually resonate with people, or you're talking to nobody. And it has to be useful. If it isn't, it's either a meme or it's noise, and honestly most of what I see is the second one.\n\nSo that's what I was going for here. The one thing nobody wants to risk on their own project, done on mine instead.\n\nI'm staying on Claude Code. But it feels different now. Before, I stayed because I never checked. Now I know what leaving would cost me, and I can make that call any day I want to.\n\nAnd Sequo, the thing I was building while all this was happening, is at sequo.app. Thanks.", "url": "https://wpnews.pro/news/i-was-always-wondering-how-it-feels-to-switch-between-ai-tools-so-i-tried-it", "canonical_source": "https://twitter.com/SSShken/status/2105696802666061863", "published_at": "2026-10-01 17:01:42+00:00", "updated_at": "2026-10-01 17:17:40.202058+00:00", "lang": "en", "topics": ["ai-tools", "ai-products", "generative-ai"], "entities": ["Claude Code", "Cursor", "Codex", "Sequo", "Anthropic", "OpenAI", "Grok"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-was-always-wondering-how-it-feels-to-switch-between-ai-tools-so-i-tried-it", "markdown": "https://wpnews.pro/news/i-was-always-wondering-how-it-feels-to-switch-between-ai-tools-so-i-tried-it.md", "text": "https://wpnews.pro/news/i-was-always-wondering-how-it-feels-to-switch-between-ai-tools-so-i-tried-it.txt", "jsonld": "https://wpnews.pro/news/i-was-always-wondering-how-it-feels-to-switch-between-ai-tools-so-i-tried-it.jsonld"}}