{"id":1857,"date":"2026-09-29T09:00:00","date_gmt":"2026-09-29T07:00:00","guid":{"rendered":"https:\/\/pletzenauer.com\/?p=1857"},"modified":"2026-07-27T17:48:55","modified_gmt":"2026-07-27T15:48:55","slug":"terminal-agents-compared","status":"publish","type":"post","link":"https:\/\/pletzenauer.com\/en\/2026\/09\/29\/terminal-agents-compared\/","title":{"rendered":"Claude Code vs Codex vs Gemini CLI: terminal agents compared"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>The short answer:<\/strong> all three do the same thing \u2014 an AI agent works on your project inside your terminal. The difference lies not in the operation but in the billing model and the maturity. Gemini CLI is open source and free with a personal Google account, Codex runs on your ChatGPT plan, Claude Code on your Claude plan. If you already pay for one of the assistants, try its terminal agent first \u2014 it costs nothing extra.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Last checked: September 2026. Figures verified against the vendors&#8217; own pages on the day of publication. This article is the technical offshoot of <a href=\"https:\/\/pletzenauer.com\/en\/2026\/09\/22\/claude-code-cursor-copilot-compared\/\">Claude Code, Cursor or GitHub Copilot?<\/a> \u2014 if you do not work in the terminal at all yet, start there.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Disclosure:<\/strong> I earn my living advising on and training people in Claude, and I use Claude Code daily. Treat my assessment accordingly \u2014 the points where the other two lead are stated explicitly in this text.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The short version<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Terminal agents are their own class of tool<\/strong> \u2014 they work on tasks, they do not complete lines.<\/li>\n<li><strong>Gemini CLI is open source<\/strong> (Apache 2.0) and free with a personal Google account: 60 requests per minute, 1,000 per day.<\/li>\n<li><strong>Codex is included in the ChatGPT plans<\/strong>, with scope rising by plan.<\/li>\n<li><strong>Claude Code is included in the Claude plans<\/strong> and in my practice is strongest on multi-step tasks.<\/li>\n<li><strong>Free entry is real<\/strong> \u2014 try before you decide.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What a terminal agent actually is<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The difference from editor completion is fundamental. A completion suggests your next line. A terminal agent receives a task and works on it: it reads itself into the project, changes several files, runs tests, sees the error message, corrects and repeats \u2014 until the goal is met or it gets stuck.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In practice that means you describe a goal instead of a line. &#8220;Rework invoicing so it handles partial payments, and adjust the tests&#8221; is a task for an agent. For a completion it is not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From which follows the most important prerequisite: <strong>you need a way to check whether the result is correct.<\/strong> Usually that means tests and version control. An agent working in a project without tests and without Git is not a tool but a risk.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The three at a glance<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><\/th><th>Claude Code<\/th><th>Codex<\/th><th>Gemini CLI<\/th><\/tr><\/thead><tbody>\n<tr><td>Billing<\/td><td>via Claude plan<\/td><td>via ChatGPT plan<\/td><td>free with Google account<\/td><\/tr>\n<tr><td>Limits<\/td><td>by plan<\/td><td>by plan<\/td><td>60\/min, 1,000\/day<\/td><\/tr>\n<tr><td>Open source<\/td><td>no<\/td><td>no<\/td><td><strong>yes<\/strong> (Apache 2.0)<\/td><\/tr>\n<tr><td>Strength<\/td><td>multi-step tasks, large projects<\/td><td>ties into the ChatGPT ecosystem<\/td><td>zero barrier to entry<\/td><\/tr>\n<tr><td>For whom<\/td><td>those already using Claude<\/td><td>those already using ChatGPT<\/td><td>those who want to try first<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The most important row is the first. None of the three has a price of its own \u2014 you pay for the assistant behind it, and the terminal agent is included. So anyone who already has Claude or ChatGPT in house has nothing to decide to get started, only something to install.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Gemini CLI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The strongest argument:<\/strong> it costs nothing and it is open source under Apache 2.0. With a personal Google account you get 60 requests per minute and 1,000 per day \u2014 generous for exploration and occasional use.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why that is more than a price argument:<\/strong> being open source means you can read what the tool does before you let it loose on your project. For a program that autonomously changes files and executes commands, that is not an academic point. It also means you can adapt it if it does not fit your environment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The caveat:<\/strong> the free allowance is tied to a <em>personal<\/em> Google account. For business use with client code that is the wrong construction \u2014 the same logic as personal assistant accounts, which I describe in the <a href=\"https:\/\/pletzenauer.com\/en\/2026\/09\/08\/ai-gdpr-vendor-comparison\/\">GDPR comparison<\/a>. Sort out the business route before experimentation becomes routine.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Codex<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The strongest argument:<\/strong> if your organisation runs on ChatGPT anyway, Codex is the path of least resistance \u2014 one contracting party, one user directory, one data protection review. Usage scope rises with the plan; Codex is included in the business plans.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The caveat:<\/strong> that same coupling is also the constraint. You are not choosing the terminal agent, you are choosing the assistant \u2014 and if your assistant is ChatGPT for other reasons, you get Codex whether or not it is the best fit for your kind of work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Claude Code<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The strongest argument:<\/strong> in my daily practice it is the tool that handles large, nested tasks most reliably \u2014 changes across many files where order matters and tests have to run in between. It stays on task even when a job takes twenty minutes and three intermediate errors appear.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The caveat:<\/strong> the working method has to be learned, and that costs one to two weeks. Anyone using it like an autocomplete considers it overrated \u2014 and from their perspective they are right. Where handing over a whole task pays off is covered in <a href=\"https:\/\/pletzenauer.com\/en\/2026\/06\/09\/claude-code-sub-agents\/\">Sub-agents in Claude Code<\/a>; for the feature set see <a href=\"https:\/\/pletzenauer.com\/en\/2026\/06\/09\/claude-code-the-12-best-features\/\">The 12 best features<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How I would approach the choice<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Check what you already have.<\/strong> If Claude or ChatGPT is in house, install the matching agent. It costs nothing and answers the underlying question \u2014 whether this way of working suits you \u2014 within a week.<\/li>\n<li><strong>If you have nothing:<\/strong> Gemini CLI. Free, open source, no contract. The most honest entry point.<\/li>\n<li><strong>After two weeks, decide<\/strong> whether you want a terminal agent at all. That is the real question \u2014 not which one.<\/li>\n<li><strong>Only then<\/strong> is a quality comparison worth doing, and it should use your own tasks, not somebody else&#8217;s examples.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">What you must settle regardless of the tool<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Version control and tests<\/strong> must be in place. Without them an agent is irresponsible.<\/li>\n<li><strong>A business route<\/strong> instead of personal accounts, as soon as client code is involved.<\/li>\n<li><strong>Clarify what the agent may execute.<\/strong> These tools run commands \u2014 define the boundary before somebody finds it.<\/li>\n<li><strong>Code review remains mandatory<\/strong>, especially for changes the agent itself reports as finished.<\/li>\n<li><strong>Check client contracts<\/strong> on whether code may go to external services at all.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Does a terminal agent replace my development environment?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No, it complements it. Most people keep working in the editor and call the agent for the big tasks \u2014 the editor remains where you read and check what the agent changed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Is Gemini CLI&#8217;s free allowance enough?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For trying it out and occasional use, comfortably. A thousand requests a day is far more than a normal working day consumes, unless you run agent tasks continuously. For sustained business use, though, the account question decides it, not the allowance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Is open source safer?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Not automatically, but more verifiable. For a tool that autonomously changes files and executes commands, traceability is a real argument \u2014 provided somebody actually looks. The advantage is the possibility, not the fact.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I run several in parallel?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Technically yes. It is rarely sensible \u2014 the tools are too similar for a division by purpose to work. This is exactly the case I describe as unnecessary variety in <a href=\"https:\/\/pletzenauer.com\/en\/2026\/09\/15\/one-ai-tool-or-several\/\">One AI tool or several?<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How quickly does this comparison go stale?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Faster than any other in this series. Terminal agents are the tool class with the highest pace of development. The structure of the decision \u2014 take the agent belonging to the assistant you already pay for \u2014 should hold considerably longer than any feature list.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>None of the three has a price of its own \u2014 you pay for the assistant behind it. What a terminal agent does and which to try first.<\/p>\n","protected":false},"author":1,"featured_media":2001,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-1857","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automatisierung"],"_links":{"self":[{"href":"https:\/\/pletzenauer.com\/en\/wp-json\/wp\/v2\/posts\/1857","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pletzenauer.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pletzenauer.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pletzenauer.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pletzenauer.com\/en\/wp-json\/wp\/v2\/comments?post=1857"}],"version-history":[{"count":1,"href":"https:\/\/pletzenauer.com\/en\/wp-json\/wp\/v2\/posts\/1857\/revisions"}],"predecessor-version":[{"id":1966,"href":"https:\/\/pletzenauer.com\/en\/wp-json\/wp\/v2\/posts\/1857\/revisions\/1966"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pletzenauer.com\/en\/wp-json\/wp\/v2\/media\/2001"}],"wp:attachment":[{"href":"https:\/\/pletzenauer.com\/en\/wp-json\/wp\/v2\/media?parent=1857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pletzenauer.com\/en\/wp-json\/wp\/v2\/categories?post=1857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pletzenauer.com\/en\/wp-json\/wp\/v2\/tags?post=1857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}