Skip to content

Comparison · Coding

Claude vs ChatGPT for coding

On llmwise Pro, Claude Sonnet 5.5 gets up to 125 messages a month and GPT-6.1 Sol up to 125 messages a month. ChatGPT is OpenAI's own app for its GPT models; llmwise has GPT models in its own chat, not ChatGPT itself. We ran the same 5 coding prompts on all 6 Claude models and all 4 GPT models and published every reply: the results, then Claude Haiku 5.5 against GPT-6 Luna prompt by prompt, then how Claude and GPT compare on price per message, context and files.

Based on 50 of our test runs on , through OpenRouter with the app's own prompt and settings. Updated .

Short answer

In our coding test runs on October 7, 2026, Claude's 6 models passed 28 of 30; Claude Fable 5.1, Claude Opus 5.5 and 3 more each passed 5 of 5. GPT's 4 models passed 20 of 20; GPT-6 Astra, GPT-6.1 Sol and 2 more each passed 5 of 5. Claude Haiku 5.5 and GPT-6 Luna each passed 5 of the 5 prompts, so these coding prompts don't split Claude and GPT; the replies on this page show how they differ.

Claude and GPT on our coding test runs

Every Claude and GPT model in llmwise on our 5 coding prompts: how many replies passed, what each counted as on Pro, and what it cost to run.

Claude and GPT on our coding test runs
ModelPassedHard onesMessages used on ProCost per replyTime per reply
Claude Fable 5.1Anthropic5 of 52 of 21 each, of 31 a month on Pro$0.04259.1 s
Claude Opus 5.5Anthropic5 of 52 of 21 each, of 62 a month on Pro$0.01718.3 s
Claude Sonnet 5.5Anthropic5 of 52 of 21 each, of 125 a month on Pro$0.00633.0 s
Claude Sonnet 5Anthropic5 of 52 of 21 each, of 125 a month on Pro$0.01028.0 s
Claude Haiku 4.5Anthropic3 of 50 of 21 each, of 250 a month on Pro$0.00273.4 s
Claude Haiku 5.5Anthropic5 of 52 of 21 each, of 60 a day on Pro$0.00054.0 s
GPT-6 AstraOpenAI5 of 52 of 21 each, of 31 a month on Pro$0.02236.8 s
GPT-6.1 SolOpenAI5 of 52 of 21 each, of 125 a month on Pro$0.00234.9 s
GPT-6 SolOpenAI5 of 52 of 21 each, of 125 a month on Pro$0.00525.7 s
GPT-6 LunaOpenAI5 of 52 of 21 each, of 60 a day on Pro$0.00034.9 s
Claude: 28 of 30 replies passed; GPT: 20 of 20 replies passed. Messages used is what each reply counted as on Pro; cost is what OpenRouter charged us per reply.

Every limit is published. Paid plans also have a monthly fair-use limit on AI cost: Pro $7.50, Max $20, Ultra $42, Studio $85. Using every message on your plan at typical sizes stays under it; very large messages and heavy research use it faster. Every limit, explained.

Claude vs GPT, prompt by prompt

Each coding prompt with Claude Haiku 5.5 and GPT-6 Luna side by side, as they replied: for each side, the model that passed the most coding prompts (then the most hard ones, then the cheaper).

Coding: Claude Haiku 5.5 passed 5 of 5 and GPT-6 Luna 5 of 5. Claude Haiku 5.5 answered 1.2× sooner at the median, 3.9 s against 4.6 s. GPT-6 Luna cost 1.6× less, $0.0023 against $0.0014 for the 5 replies. Claude Haiku 5.5's replies ran 71% longer, in tokens of reply, thinking not counted.

  1. 1. Turn a title into a URL slug

    Everyday. Claude: 6 of 6 models passed, Claude Haiku 5.5 the cheapest at $0.0001 · GPT: 4 of 4 models passed, GPT-6 Luna the cheapest at $0.0001. The prompt in full.

    Claude Haiku 5.5 and GPT-6 Luna both passed this one. Claude Haiku 5.5 answered sooner (1.5 s to 2.3 s), and GPT-6 Luna's reply cost less ($0.0001 to $0.0001); Claude Haiku 5.5 wrote 112 tokens of reply, GPT-6 Luna 74.

    • Claude Haiku 5.5

      Passed: All 7 tests passed.

      ```javascript
      function slugify(title) {
        return String(title)
          .normalize("NFD")
          .replace(/[\u0300-\u036f]/g, "")
          .toLowerCase()
          .replace(/[^a-z0-9]+/g, "-")
          .replace(/^-+|-+$/g, "");
      }
      ```

      672 tokens in, 112 out · 1.5 s · $0.0001 · 1 message on Pro · answered by anthropic/claude-haiku-5.5 via Anthropic ·

    • GPT-6 Luna

      Passed: All 7 tests passed.

      ```javascript
      function slugify(title) {
        return title
          .toLowerCase()
          .normalize("NFD")
          .replace(/[\u0300-\u036f]/g, "")
          .replace(/[^a-z0-9]+/g, "-")
          .replace(/^-|-$/g, "");
      }
      ```

      483 tokens in, 74 out · 2.3 s · $0.0001 · 1 message on Pro · answered by openai/gpt-6-luna via OpenAI ·

  2. 2. Parse a duration like “1h 30m”

    Everyday. Claude: 6 of 6 models passed, Claude Haiku 5.5 the cheapest at $0.0005 · GPT: 4 of 4 models passed, GPT-6 Luna the cheapest at $0.0003. The prompt in full.

    Claude Haiku 5.5 and GPT-6 Luna both passed this one. GPT-6 Luna answered sooner (4.6 s to 5.4 s), and GPT-6 Luna's reply cost less ($0.0003 to $0.0005); Claude Haiku 5.5 wrote 180 tokens of reply, GPT-6 Luna 138.

    • Claude Haiku 5.5

      Passed: All 10 tests passed.

      ```javascript
      function parseDuration(text) {
        if (typeof text !== 'string') return null;
      
        const m = /^\s*(?:(\d+)h)?\s*(?:(\d+)m)?\s*(?:(\d+)s)?\s*$/.exec(text);
        if (!m || m.slice(1).every(v => v === undefined)) return null;
      
        const [, h = 0, mi = 0, s = 0] = m;
        return Number(h) * 3600 + Number(mi) * 60 + Number(s);
      }
      ```

      627 tokens in, 868 out (688 of them reasoning) · 5.4 s · $0.0005 · 1 message on Pro · answered by anthropic/claude-haiku-5.5 via Anthropic ·

    • GPT-6 Luna

      Passed: All 10 tests passed.

      ```javascript
      function parseDuration(text) {
        if (typeof text !== "string") return null;
      
        const match = text.match(/^\s*(?:(\d+)h)?\s*(?:(\d+)m)?\s*(?:(\d+)s)?\s*$/);
        if (!match || !match[1] && !match[2] && !match[3]) return null;
      
        return Number(match[1] || 0) * 3600
          + Number(match[2] || 0) * 60
          + Number(match[3] || 0);
      }
      ```

      468 tokens in, 407 out (269 of them reasoning) · 4.6 s · $0.0003 · 1 message on Pro · answered by openai/gpt-6-luna via OpenAI ·

  3. 3. Merge overlapping intervals

    Everyday. Claude: 6 of 6 models passed, Claude Haiku 5.5 the cheapest at $0.0002 · GPT: 4 of 4 models passed, GPT-6 Luna the cheapest at $0.0001. The prompt in full.

    Claude Haiku 5.5 and GPT-6 Luna both passed this one. Claude Haiku 5.5 answered sooner (1.3 s to 1.5 s), and GPT-6 Luna's reply cost less ($0.0001 to $0.0002); Claude Haiku 5.5 wrote 185 tokens of reply, GPT-6 Luna 130.

    • Claude Haiku 5.5

      Passed: All 7 tests passed.

      ```javascript
      function mergeIntervals(intervals) {
        const sorted = intervals
          .map(([start, end]) => [start, end])
          .sort((a, b) => a[0] - b[0] || a[1] - b[1]);
      
        const merged = [];
        for (const [start, end] of sorted) {
          const last = merged[merged.length - 1];
          if (last && start <= last[1]) {
            last[1] = Math.max(last[1], end);
          } else {
            merged.push([start, end]);
          }
        }
        return merged;
      }
      ```

      622 tokens in, 185 out · 1.3 s · $0.0002 · 1 message on Pro · answered by anthropic/claude-haiku-5.5 via Anthropic ·

    • GPT-6 Luna

      Passed: All 7 tests passed.

      ```javascript
      function mergeIntervals(intervals) {
        const sorted = intervals
          .map(([start, end]) => [start, end])
          .sort((a, b) => a[0] - b[0]);
      
        const merged = [];
      
        for (const [start, end] of sorted) {
          const last = merged[merged.length - 1];
      
          if (!last || start > last[1]) {
            merged.push([start, end]);
          } else {
            last[1] = Math.max(last[1], end);
          }
        }
      
        return merged;
      }
      ```

      449 tokens in, 130 out · 1.5 s · $0.0001 · 1 message on Pro · answered by openai/gpt-6-luna via OpenAI ·

  4. 4. Evaluate an arithmetic expression, no eval

    Hard. Claude: 5 of 6 models passed, Claude Haiku 5.5 the cheapest at $0.0006 · GPT: 4 of 4 models passed, GPT-6 Luna the cheapest at $0.0006. The prompt in full.

    Claude Haiku 5.5 and GPT-6 Luna both passed this one. Claude Haiku 5.5 answered sooner (3.9 s to 8.8 s), and GPT-6 Luna's reply cost less ($0.0006 to $0.0006); Claude Haiku 5.5 wrote 1,074 tokens of reply, GPT-6 Luna 552.

    • Claude Haiku 5.5

      Passed: All 15 tests passed.

      ```javascript
      function evaluate(expression) {
        const s = String(expression);
        const tokens = [];
        let i = 0;
        while (i < s.length) {
          const c = s[i];
          if (c === ' ' || c === '\t' || c === '\n' || c === '\r') { i++; continue; }
          if ((c >= '0' && c <= '9') || c === '.') {
            let j = i;
            while (j < s.length && ((s[j] >= '0' && s[j] <= '9') || s[j] === '.')) j++;
            const text = s.slice(i, j);
            if (!/^(\d+\.?\d*|\.\d+)$/.test(text)) throw new Error(`Invalid number "${text}"`);
            tokens.push({ type: 'num', value: Number(text) });
            i = j;
            continue;
          }
          if ('+-*/^()'.includes(c)) {
            tokens.push({ type: c });
            i++;
            continue;
          }
          throw new Error(`Unexpected character "${c}"`);
        }
      
        let pos = 0;
        const peek = () => tokens[pos] ? tokens[pos].type : null;
        const next = () => tokens[pos++];
      
        // expr := term (('+'|'-') term)*
        function parseExpr() {
          let value = parseTerm();
          while (peek() === '+' || peek() === '-') {
            const op = next().type;
            const rhs = parseTerm();
            value = op === '+' ? value + rhs : value - rhs;
          }
          return value;
        }
      
        // term := unary (('*'|'/') unary)*
        function parseTerm() {
          let value = parseUnary();
          while (peek() === '*' || peek() === '/') {
            const op = next().type;
            const rhs = parseUnary();
            value = op === '*' ? value * rhs : value / rhs;
          }
          return value;
        }
      
        // unary := '-' unary | power
        function parseUnary() {
          if (peek() === '-') {
            next();
            return -parseUnary();
          }
          return parsePower();
        }
      
        // power := primary ('^' unary)?   (right-associative; exponent may be signed)
        function parsePower() {
          const base = parsePrimary();
          if (peek() === '^') {
            next();
            const exp = parseUnary();
            return Math.pow(base, exp);
          }
          return base;
        }
      
        // primary := number | '(' expr ')'
        function parsePrimary() {
          const t = tokens[pos];
          if (!t) throw new Error('Unexpected end of expression');
          if (t.type === 'num') {
            pos++;
            return t.value;
          }
          if (t.type === '(') {
            pos++;
            const value = parseExpr();
            if (peek() !== ')') throw new Error('Expected ")"');
            pos++;
            return value;
          }
          throw new Error(`Unexpected token "${t.type}"`);
        }
      
        if (tokens.length === 0) throw new Error('Empty expression');
        const result = parseExpr();
        if (pos !== tokens.length) throw new Error(`Unexpected token "${tokens[pos].type}"`);
        return result;
      }
      ```

      763 tokens in, 1,074 out · 3.9 s · $0.0006 · 1 message on Pro · answered by anthropic/claude-haiku-5.5 via Anthropic ·

    • GPT-6 Luna

      Passed: All 15 tests passed.

      ```javascript
      function evaluate(expression) {
        if (typeof expression !== "string") {
          throw new Error("Expression must be a string");
        }
      
        let index = 0;
      
        function skipSpaces() {
          while (index < expression.length && /\s/.test(expression[index])) {
            index++;
          }
        }
      
        function parsePrimary() {
          skipSpaces();
      
          if (expression[index] === "(") {
            index++;
            const value = parseExpression();
            skipSpaces();
            if (expression[index] !== ")") throw new Error("Missing closing parenthesis");
            index++;
            return value;
          }
      
          const start = index;
          let digitsBefore = 0;
          while (/\d/.test(expression[index] || "")) {
            index++;
            digitsBefore++;
          }
      
          let digitsAfter = 0;
          if (expression[index] === ".") {
            index++;
            while (/\d/.test(expression[index] || "")) {
              index++;
              digitsAfter++;
            }
          }
      
          if (digitsBefore === 0 && digitsAfter === 0) {
            throw new Error("Expected a number or parenthesized expression");
          }
      
          return Number(expression.slice(start, index));
        }
      
        // Unary minus has lower precedence than exponentiation, but is allowed
        // on an exponent's right-hand side.
        function parseUnary() {
          skipSpaces();
          if (expression[index] === "-") {
            index++;
            return -parseUnary();
          }
          return parsePower();
        }
      
        function parsePower() {
          let value = parsePrimary();
          skipSpaces();
      
          if (expression[index] === "^") {
            index++;
            value **= parseUnary();
          }
      
          return value;
        }
      
        function parseProduct() {
          let value = parseUnary();
      
          while (true) {
            skipSpaces();
            const operator = expression[index];
            if (operator !== "*" && operator !== "/") break;
      
            index++;
            const right = parseUnary();
            value = operator === "*" ? value * right : value / right;
          }
      
          return value;
        }
      
        function parseExpression() {
          let value = parseProduct();
      
          while (true) {
            skipSpaces();
            const operator = expression[index];
            if (operator !== "+" && operator !== "-") break;
      
            index++;
            const right = parseProduct();
            value = operator === "+" ? value + right : value - right;
          }
      
          return value;
        }
      
        const result = parseExpression();
        skipSpaces();
        if (index !== expression.length) throw new Error("Unexpected input");
      
        return result;
      }
      ```

      549 tokens in, 1,007 out (455 of them reasoning) · 8.8 s · $0.0006 · 1 message on Pro · answered by openai/gpt-6-luna via OpenAI ·

  5. 5. Parse CSV with quoted fields

    Hard. Claude: 5 of 6 models passed, Claude Haiku 5.5 the cheapest at $0.0008 · GPT: 4 of 4 models passed, GPT-6 Luna the cheapest at $0.0004. The prompt in full.

    Claude Haiku 5.5 and GPT-6 Luna both passed this one. GPT-6 Luna answered sooner (7.2 s to 8.1 s), and GPT-6 Luna's reply cost less ($0.0004 to $0.0008); Claude Haiku 5.5 wrote 516 tokens of reply, GPT-6 Luna 315.

    • Claude Haiku 5.5

      Passed: All 8 tests passed.

      ```javascript
      function parseCsv(text) {
        const rows = [];
        if (text === '') return rows;
      
        let row = [];
        let field = '';
        let inQuotes = false;
        let fieldStart = true; // true only at the very beginning of a field
        let i = 0;
        const n = text.length;
      
        while (i < n) {
          const c = text[i];
      
          if (inQuotes) {
            if (c === '"') {
              if (text[i + 1] === '"') {
                field += '"';
                i += 2;
              } else {
                inQuotes = false;
                i++;
              }
            } else {
              field += c;
              i++;
            }
            continue;
          }
      
          if (c === '"' && fieldStart) {
            inQuotes = true;
            fieldStart = false;
            i++;
            continue;
          }
      
          if (c === ',') {
            row.push(field);
            field = '';
            fieldStart = true;
            i++;
            continue;
          }
      
          if (c === '\n' || c === '\r') {
            row.push(field);
            rows.push(row);
            row = [];
            field = '';
            fieldStart = true;
            if (c === '\r' && text[i + 1] === '\n') i += 2;
            else i++;
            continue;
          }
      
          field += c;
          fieldStart = false;
          i++;
        }
      
        // Flush the last row unless the text ended with a line break
        if (row.length > 0 || field !== '' || !fieldStart) {
          row.push(field);
          rows.push(row);
        }
      
        return rows;
      }
      ```

      670 tokens in, 1,464 out (948 of them reasoning) · 8.1 s · $0.0008 · 1 message on Pro · answered by anthropic/claude-haiku-5.5 via Anthropic ·

    • GPT-6 Luna

      Passed: All 8 tests passed.

      ```javascript
      function parseCsv(text) {
        if (text === "") return [];
      
        const rows = [];
        let row = [];
        let field = "";
        let inQuotes = false;
        let endedWithRowBreak = false;
      
        for (let i = 0; i < text.length; i++) {
          const char = text[i];
      
          if (inQuotes) {
            if (char === '"') {
              if (text[i + 1] === '"') {
                field += '"';
                i++;
              } else {
                inQuotes = false;
              }
            } else {
              field += char;
            }
            endedWithRowBreak = false;
            continue;
          }
      
          if (char === '"' && field === "") {
            inQuotes = true;
            endedWithRowBreak = false;
          } else if (char === ",") {
            row.push(field);
            field = "";
            endedWithRowBreak = false;
          } else if (char === "\n" || (char === "\r" && text[i + 1] === "\n")) {
            row.push(field);
            rows.push(row);
            row = [];
            field = "";
            if (char === "\r") i++;
            endedWithRowBreak = true;
          } else {
            field += char;
            endedWithRowBreak = false;
          }
        }
      
        if (!endedWithRowBreak) {
          row.push(field);
          rows.push(row);
        }
      
        return rows;
      }
      ```

      481 tokens in, 762 out (447 of them reasoning) · 7.2 s · $0.0004 · 1 message on Pro · answered by openai/gpt-6-luna via OpenAI ·

Each Claude model against each GPT model

Every Claude model against every GPT model on the same 5 coding prompts: passes, the median wait and what the replies cost. A lead under 10% counts as close.

  • Claude Fable 5.1 vs GPT-6 Astra: 5 of 5 each; Claude Fable 5.1 answered 1.5× sooner at the median and GPT-6 Astra cost 1.9× less. Claude Fable 5.1 vs GPT-6 Astra, on every job.

  • Claude Fable 5.1 vs GPT-6.1 Sol: 5 of 5 each; GPT-6.1 Sol answered 1.2× sooner at the median and cost 18.5× less.

  • Claude Fable 5.1 vs GPT-6 Sol: 5 of 5 each; GPT-6 Sol answered 1.2× sooner at the median and cost 8.1× less.

  • Claude Fable 5.1 vs GPT-6 Luna: 5 of 5 each; GPT-6 Luna answered 1.2× sooner at the median and cost 148.3× less.

  • Claude Opus 5.5 vs GPT-6 Astra: 5 of 5 each; Claude Opus 5.5 answered 1.1× sooner at the median and cost 1.3× less. Claude Opus 5.5 vs GPT-6 Astra, on every job.

  • Claude Opus 5.5 vs GPT-6.1 Sol: 5 of 5 each; GPT-6.1 Sol answered 1.5× sooner at the median and cost 7.4× less.

  • Claude Opus 5.5 vs GPT-6 Sol: 5 of 5 each; GPT-6 Sol answered 1.5× sooner at the median and cost 3.3× less. Claude Opus 5.5 vs GPT-6 Sol, on every job.

  • Claude Opus 5.5 vs GPT-6 Luna: 5 of 5 each; GPT-6 Luna answered 1.6× sooner at the median and cost 59.5× less.

  • Claude Sonnet 5.5 vs GPT-6 Astra: 5 of 5 each; Claude Sonnet 5.5 answered 4.2× sooner at the median and cost 3.6× less.

  • Claude Sonnet 5.5 vs GPT-6.1 Sol: 5 of 5 each; Claude Sonnet 5.5 answered 2.4× sooner at the median and GPT-6.1 Sol cost 2.7× less. GPT-6.1 Sol vs Claude Sonnet 5.5, on every job.

  • Claude Sonnet 5.5 vs GPT-6 Sol: 5 of 5 each; Claude Sonnet 5.5 answered 2.5× sooner at the median and GPT-6 Sol cost 1.2× less. Claude Sonnet 5.5 vs GPT-6 Sol, on every job.

  • Claude Sonnet 5.5 vs GPT-6 Luna: 5 of 5 each; Claude Sonnet 5.5 answered 2.3× sooner at the median and GPT-6 Luna cost 21.8× less.

  • Claude Sonnet 5 vs GPT-6 Astra: 5 of 5 each; Claude Sonnet 5 answered 3.1× sooner at the median and cost 2.2× less.

  • Claude Sonnet 5 vs GPT-6.1 Sol: 5 of 5 each; Claude Sonnet 5 answered 1.8× sooner at the median and GPT-6.1 Sol cost 4.4× less.

  • Claude Sonnet 5 vs GPT-6 Sol: 5 of 5 each; Claude Sonnet 5 answered 1.8× sooner at the median and GPT-6 Sol cost 1.9× less. Claude Sonnet 5 vs GPT-6 Sol, on every job.

  • Claude Sonnet 5 vs GPT-6 Luna: 5 of 5 each; Claude Sonnet 5 answered 1.7× sooner at the median and GPT-6 Luna cost 35.4× less.

  • Claude Haiku 4.5 vs GPT-6 Astra: Claude Haiku 4.5 3 of 5, GPT-6 Astra 5; Claude Haiku 4.5 answered 3.5× sooner at the median and cost 8.1× less.

  • Claude Haiku 4.5 vs GPT-6.1 Sol: Claude Haiku 4.5 3 of 5, GPT-6.1 Sol 5; Claude Haiku 4.5 answered 2.0× sooner at the median and GPT-6.1 Sol cost 1.2× less.

  • Claude Haiku 4.5 vs GPT-6 Sol: Claude Haiku 4.5 3 of 5, GPT-6 Sol 5; Claude Haiku 4.5 answered 2.0× sooner at the median and cost 1.9× less. Claude Haiku 4.5 vs GPT-6 Sol, on every job.

  • Claude Haiku 4.5 vs GPT-6 Luna: Claude Haiku 4.5 3 of 5, GPT-6 Luna 5; Claude Haiku 4.5 answered 1.9× sooner at the median and GPT-6 Luna cost 9.6× less. Claude Haiku 4.5 vs GPT-6 Luna, on every job.

  • Claude Haiku 5.5 vs GPT-6 Astra: 5 of 5 each; Claude Haiku 5.5 answered 2.1× sooner at the median and cost 49.3× less.

  • Claude Haiku 5.5 vs GPT-6.1 Sol: 5 of 5 each; Claude Haiku 5.5 answered 1.2× sooner at the median and cost 5.1× less.

  • Claude Haiku 5.5 vs GPT-6 Sol: 5 of 5 each; Claude Haiku 5.5 answered 1.2× sooner at the median and cost 11.6× less.

  • Claude Haiku 5.5 vs GPT-6 Luna: 5 of 5 each; Claude Haiku 5.5 answered 1.2× sooner at the median and GPT-6 Luna cost 1.6× less. Claude Haiku 5.5 vs GPT-6 Luna, on every job.

How the coding replies are scored

Every Claude and GPT reply above was checked the same way as every other model's, by the rules published with the prompts: how the coding prompts are scored, and each one in full.

The differences at a glance

What follows from each model's facts in our catalog.

  • The lineups

    Claude: 6 models, Claude Fable 5.1, Claude Opus 5.5, Claude Sonnet 5.5, Claude Sonnet 5, Claude Haiku 4.5, and Claude Haiku 5.5. GPT: 4 models, GPT-6 Astra, GPT-6.1 Sol, GPT-6 Sol, and GPT-6 Luna.

  • Price per message

    The least expensive Claude model is Claude Haiku 5.5 (60 messages a day on Pro); the least expensive GPT model is GPT-6 Luna (60 messages a day on Pro).

  • Context window

    Claude goes up to 1M tokens (Claude Fable 5.1); GPT up to 1.05M tokens (GPT-6 Astra).

  • Images and PDFs

    Every model here reads images. Every model here takes a PDF as a whole file.

  • On the Free plan

    Free's one-time trial of 5 messages covers Claude Sonnet 5.5, Claude Sonnet 5, Claude Haiku 4.5, Claude Haiku 5.5, GPT-6.1 Sol, GPT-6 Sol, and GPT-6 Luna, and Claude Opus 5.5 for 1 message. Paid plans have every model, with messages every month.

Every Claude and GPT model's context window, files and API price: Claude vs ChatGPT.

Where your messages go

In llmwise, a message to Claude or GPT goes to the model's maker, or through OpenRouter when llmwise can't reach the maker directly. The Privacy Policy has the details.

Bar chart: Prompts passed in our test runs, coding. GPT-6 Luna: 5 of 5; Claude Haiku 5.5: 5 of 5; GPT-6.1 Sol: 5 of 5; GPT-6 Sol: 5 of 5; Claude Sonnet 5.5: 5 of 5; Claude Sonnet 5: 5 of 5; Claude Opus 5.5: 5 of 5; GPT-6 Astra: 5 of 5; Claude Fable 5.1: 5 of 5; Claude Haiku 4.5: 3 of 5.
Our test runs of September 27, 28, 29 and October 2, 7, 8, 9, 2026: the same prompts for every model, each reply checked the same way.

Questions

Which is better, Claude or ChatGPT for coding?

In our coding test runs on October 7, 2026, Claude's 6 models passed 28 of 30; Claude Fable 5.1, Claude Opus 5.5 and 3 more each passed 5 of 5. GPT's 4 models passed 20 of 20; GPT-6 Astra, GPT-6.1 Sol and 2 more each passed 5 of 5. Claude Haiku 5.5 and GPT-6 Luna each passed 5 of the 5 prompts, so these coding prompts don't split Claude and GPT; the replies on this page show how they differ.

Is Claude or GPT cheaper?

In llmwise, the least expensive Claude model is Claude Haiku 5.5 (60 messages a day on Pro), and the least expensive GPT model is GPT-6 Luna (60 messages a day on Pro). At API list prices (October 2026), a typical message of 4,000 tokens in and 700 out costs $0.0008 on Claude Haiku 5.5 and $0.0008 on GPT-6 Luna.

Can I use Claude and GPT in the same chat?

Yes. Ask Claude Haiku 5.5 a question, then switch the picker to GPT-6 Luna and ask again: GPT-6 Luna sees the whole conversation, Claude Haiku 5.5's answer included.

Claude, GPT, Gemini, DeepSeek, Grok, Kimi, GLM, and Mistral, in one chat.

See what a message costs before you send it. Free is 5 messages to try; sign in with an email link, no password or card.