好文集ChatGPT Plus¥119

Codex vs Claude for app development

文章目录

I use both Codex and Claude for app development work, both with the highest-tier subscription. Here's how I've found the two compare, plus some tips for success…

TL;DR

  • I use both agents extensively, but I use Codex significantly more than Claude.

  • Fable 5.1 is very clever, and has a real flair for design. If I want a pleasant surprise or a neat twist on an idea, I use Fable.

  • But it burns tokens so fast that I don't get enough serious use out of it. Maybe a dozen times a week, tops. Believe it or not, I still consider it worth the money because the flair thing is a serious help – I save Fable for special occasions.

  • Opus 5.0 isn't quite as clever, but it is both extremely fast and extremely cheap even on xhigh. I've never had the need to go below xhigh – I literally can't use the tokens fast enough.

  • Astra is a solid, reliable coding partner that chews through work on all Apple platforms very well. I feel like I can trust Astra with most things – and Sol too, to be fair.

  • Astra is better than Sol, but the difference for app development isn't that great. It spots more corner cases, and also asks more intelligent questions, but in terms of actual app development results you can do just fine on Sol.

  • Some people using Astra have reported burning through an entire Pro token allowance in a few hours. I've managed it sometimes, but only on Fast mode – I run Astra at xhigh all the time, usually across multiple tabs at a time, and rarely hit a problem unless I'm doing image or video work.

  • I no longer add signposting to my code, even in large projects – both Claude and Codex use ripgrep to find things in seconds with zero signposting. (This used to be a large part of my AGENTS.md file, describing where various functionality is. Not any more; it ended up being counterproductive.)

  • Both agents really benefit from an app-focused skill. I have a SwiftUI agent skill here, and also host a library of community links here. If you aren't a fan of skills for some reason, at the very least add an AGENTS.md file like this.

  • Make sure your agent knows to add "md" to the end of Apple's documentation URLs to get plain Markdown, otherwise you're burning tokens unnecessarily.

  • Brief your agents thoroughly before letting them near code. Brief, brief, and brief some more. (See the end for details.)

  • If you're serious about making money on the App Store, you should get my Kickstart app for your Mac. Point your agent at its MCP and you can find keyword popularity, check competitor reviews, make TikTok videos, and more.

Where Claude wins

  • For finding bugs, Opus beats Astra and it's not close. Yes, Opus, not even Fable. Example: I was working on an MCP, and – 10 times over – Opus found significant issues whereas Astra found maybe one or two small things each time. Opus also found those issues in maybe half the time Astra took – it was extremely impressive, and has convinced me to use Claude more in debugging.

  • On the command line, Claude is in a different league from Codex. The official response from OpenAI appears to be "don't use the command line", which sucks. Voice mode? Nope. Subagent management? Nope. Sticky headers? Nope. Only Anthropic seems serious about making a great CLI – I didn't realize OpenAI was quite so short on engineering resources that they couldn't devote people to this task.

  • Claude is excellent at spawning subagents. I've seen it spawn dozens at a time to get work done quickly. (Note: Codex has gotten a lot better at this too, but I still need to kick it into action sometimes.)

  • The Ask User Question tool remains unbeaten. Usually it helps me catch mistakes in my thinking / things I hadn't thought of, but very often it presents wholly new ideas too.

  • "auto" mode is basically flawless. I was worried when they said it would be turned on by default, but I was wrong – they nailed it. No notes.

  • I'll admit that Claude does feel more fun; it actually has some personality to it.

Where Codex wins

  • Both Astra and Sol are much more thorough than Opus and Fable. It's the difference between working with a grouchy, battle-worn coding veteran and a hotshot new recruit freshly dropped out of a CS degree – Codex seems to lap up all the really thankless tasks, and will do a careful job of implementing them with solid tests.

  • Honestly, this kind of work is ~80% of software engineering, which is why Codex gets so much use from me. Passkeys? Codex. Unit tests? Codex. Gnarly API design? Codex. Fable's flair is lovely, but honestly not needed most of the time.

  • Having no 5-hour limit on Pro subscriptions is critical to my workflow – I can't imagine going back to the old way of working now. It allows me to work in bursts: massive intensity across 7-8 agents for a day, then a break.

  • Of the two tools, Codex seems to do Apple platform accessibility better. It frequently and proactively thinks about Reduce Motion, color blindness, VoiceOver, and more, where Claude will only sometimes do so.

  • You will – occasionally – get banked resets that you can use at will. These are like afterburners for those ideas you've been itching to try, and have enabled me to do some genuinely breakthrough development I would otherwise never have attempted. (Sadly they also push back your regular reset time, so they aren't quite as generous as you might hope.)

Where Claude loses

  • I'm really tired of Anthropic doing things their own special way. It shouldn't have taken so long to get AGENTS.md supported, but that's just one example – I don't want to have to make a Claude marketplace file for a basic skill.

  • You're going to see "Update installed · Restart to update" so often it will feel like gaslighting. I get that shipping regular updates is great, but maybe make that appear when it actually matters?

  • Claude frequently runs straight to implementation when I'm still firmly in planning mode. You need to give it a tight leash, otherwise it will just start getting into code when you aren't ready.

  • The downside to Claude feeling more fun is that it also adapts to your tone. If you come in all excited for something, Claude will mirror that and basically engage Maximum Glaze Overload, and that's rarely helpful. Codex maintains a quiet disinterest no matter how excited (or otherwise) you get.

  • They don't have an equivalent of Tibo. He seems to spend a lot of time on Twitter just listening to the general pulse of discussion – he's actively engaged and seems to care about making a difference. (Although I do wish he would recognize that when he publicly replies to someone it easily turns into a massive pile-on from passing strangers with too much time on their hands.)

  • Did I mention Fable's wallet-melting token cost? Yes, yes I did.

Where Codex loses

  • Codex consistently over-engineers tasks. At least once a week I have to talk it down off a cliff of its own creation, when it has invented impossible scenarios and written a thousand lines of code to defend against them. When this happens to you – and it is when, not if – you can at least ask it to walk you through the code and decisions so you can spot and resolve the problem areas. (Yesterday it wrote a gigantic regex-based parser for SQL to check for a data migration… for something that had never shipped. Really clever. Really pointless.)

  • Astra is perfectly capable of designing beautiful user interfaces, but seems to prefer to avoid doing so unless explicitly instructed. Initially I tried providing detailed design feedback – padding, fonts, colors, shapes, etc – but over time I realized it just needs a kick. Seriously, even saying "that looks lousy; try harder" will immediately make it improve.

  • Astra will often spawn subagents, but maybe 20-30% of the time I need to kick it to do so. I even have "Can't this work be done in parallel using subagents?" as a macOS text replacement for "tsub" because I got tired of typing it.

  • Both Astra and Sol will often ignore rules in AGENTS.md. For example, a pet peeve of mine is using the very small Dynamic Type options on macOS – caption and caption2 – along with a secondary foreground style, which effectively makes text invisible. I ban it outright in skills and AGENTS.md, but Astra brings it back a few times each week.

  • For anything human-facing – websites, etc – Astra will write some of the most tedious text you can imagine. Even if you provide copious amounts of sample material, your best bet is to tell it to make placeholders that you fill in manually. (Bonus: Astra also loves to describe implementation details in user-facing text, which… 🤷‍♂️)

  • Sol used to proactively run adversarial reviews of its work to catch problems, but Astra seems to rarely do so even when it's beneficial. Again, you need to ask for it to happen, and it will nearly always find and fix problems.

The most important thing to do

Use Claude if you want, or use Codex if you prefer; I'm not tied to either, and honestly I think it's weird when people get attached to one specific tool.

But whatever you choose, I suggest you do one thing:

Spend the majority of your time briefing your agent. Anything you don't specify leaves holes in your spec, and those holes will simply be filled with a bland average of the internet.

I sometimes spend a day or two just in planning mode, going from a rough idea to a comprehensive plan file that lives in source control alongside my code.

I start by bouncing ideas back and forth to find the extent of the idea, then turn things around and have the agent ask me questions to clarify things, and then spend time looking for – and filling – any holes in my thinking.

The result is usually a plan file of around 50 KB, which I then feel confident enough to hand over to an agent to implement. Even then it won't be perfect, and that's okay – it will be close enough that I can take over the reins and make it great.

There's a simple rule here: the quality of the code starts with the quality of the brief.

Still here?

Do yourself a favor and download Kickstart for your Mac – it's designed to help indie app developers grow their success on the App Store, and works with any agent you want.

文章配图

Kickstart: The difference between shipping and succeeding.

PS: This article opened by saying "Here's how I've found the two compare", but I'm sure some randos will respond saying I'm wrong. About my own experience. It's almost as if LLMs aren't deterministic…

全文完
查看原文

沿着这个主题继续读

从一篇文章,找到相关的教程、经验和阅读路径。

ClaudeClaude 与 Opus 5.5 使用指南:项目设置、隐藏功能、平台选择和代码做视频。