> ## Documentation Index
> Fetch the complete documentation index at: https://usefulai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Best LLMs for Writing in 2026

export const models = [{
  rank: 1,
  name: "Claude Fable 5",
  dev: "Anthropic",
  icon: "/images/icons/anthropic.com.png",
  url: "https://www.anthropic.com/news/claude-fable-5-mythos-5",
  bestFor: "Top-tier creative prose",
  score: "100%",
  price: "$40.00 / 1M",
  license: "Proprietary",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 2,
  name: "Claude Opus 4.6",
  dev: "Anthropic",
  icon: "/images/icons/anthropic.com.png",
  url: "https://www.anthropic.com/news/claude-opus-4-6",
  bestFor: "High-end prose value",
  score: "98%",
  price: "$20.00 / 1M",
  license: "Proprietary",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 3,
  name: "Gemini 3.1 Pro",
  dev: "Google",
  icon: "/images/icons/google.com.png",
  url: "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview",
  bestFor: "Long-form research writing",
  score: "79%",
  price: "$9.50 / 1M",
  license: "Proprietary",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 4,
  name: "Gemini 3.5 Flash",
  dev: "Google",
  icon: "/images/icons/google.com.png",
  url: "https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash",
  bestFor: "High-volume drafting and editing",
  score: "72%",
  price: "$7.13 / 1M",
  license: "Proprietary",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 5,
  name: "Claude Opus 4.8",
  dev: "Anthropic",
  icon: "/images/icons/anthropic.com.png",
  url: "https://www.anthropic.com/news/claude-opus-4-8",
  bestFor: "Current flagship Claude default",
  score: "64%",
  price: "$20.00 / 1M",
  license: "Proprietary",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 6,
  name: "Muse Spark",
  dev: "Meta",
  icon: "/images/icons/meta.ai.png",
  url: "https://ai.meta.com/blog/introducing-muse-spark-msl/",
  bestFor: "Writing inside Meta AI",
  score: "64%",
  price: "n/a",
  license: "Proprietary",
  custom: "n/a",
  customLabel: "Context"
}, {
  rank: 7,
  name: "Grok 4.20",
  dev: "xAI",
  icon: "/images/icons/x.ai.png",
  url: "https://docs.x.ai/developers/models",
  bestFor: "Distinctive voice and style",
  score: "60%",
  price: "$2.19 / 1M",
  license: "Proprietary",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 8,
  name: "GPT-5.5",
  dev: "OpenAI",
  icon: "/images/icons/openai.com.png",
  url: "https://openai.com/index/gpt-5-5-instant",
  bestFor: "Reliable general-purpose writing",
  score: "54%",
  price: "$23.75 / 1M",
  license: "Proprietary",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 9,
  name: "Qwen3.7 Max",
  dev: "Alibaba",
  icon: "/images/icons/qwen.ai.png",
  url: "https://qwen.ai/blog?id=qwen3.7",
  bestFor: "Long-context multilingual writing",
  score: "44%",
  price: "$3.13 / 1M",
  license: "Proprietary",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 10,
  name: "GLM-5.2",
  dev: "Z.ai",
  icon: "/images/icons/z.ai.png",
  url: "https://docs.z.ai/guides/llm/glm-5.2",
  bestFor: "Current open-weight writing",
  score: "44%",
  price: "$3.65 / 1M",
  license: "Open weight",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 11,
  name: "DeepSeek V4 Pro",
  dev: "DeepSeek",
  icon: "/images/icons/deepseek.com.png",
  url: "https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro",
  bestFor: "Low-cost open-weight writing",
  score: "42%",
  price: "$0.76 / 1M",
  license: "Open weight",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 12,
  name: "MiMo-V2.5-Pro",
  dev: "Xiaomi",
  icon: "/images/icons/mimo.xiaomi.com.png",
  url: "https://mimo.xiaomi.com/mimo-v2-5-pro/",
  bestFor: "Cheap open-weight drafting",
  score: "35%",
  price: "$0.76 / 1M",
  license: "Open weight",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 13,
  name: "Claude Sonnet 5",
  dev: "Anthropic",
  icon: "/images/icons/anthropic.com.png",
  url: "https://www.anthropic.com/news/claude-sonnet-5",
  bestFor: "Everyday Claude writing value",
  score: "32%",
  price: "$8.00 / 1M",
  license: "Proprietary",
  custom: "1M",
  customLabel: "Context"
}, {
  rank: 14,
  name: "Kimi K2.6",
  dev: "Moonshot",
  icon: "/images/icons/kimi.com.png",
  url: "https://platform.kimi.ai/docs/guide/kimi-k2-6-quickstart",
  bestFor: "Open-weight prose and critique",
  score: "31%",
  price: "$3.24 / 1M",
  license: "Open weight",
  custom: "262K",
  customLabel: "Context"
}, {
  rank: 15,
  name: "Gemma 4 31B",
  dev: "Google",
  icon: "/images/icons/google.com.png",
  url: "https://huggingface.co/google/gemma-4-31B-it",
  bestFor: "Laptop-friendly local writing",
  score: "20%",
  price: "$0.34 / 1M",
  license: "Open weight",
  custom: "262K",
  customLabel: "Context"
}];

export const Fav = ({icon, size = "h-4 w-4"}) => <img src={icon} alt="" noZoom className={"relative -top-px mr-1 inline rounded-sm object-contain " + size} />;

export const LicenseBadge = ({license}) => license === "Open weight" ? <span className="inline-flex items-center rounded bg-emerald-50 px-1.5 py-[2px] text-xs font-medium leading-4 text-emerald-700 dark:bg-emerald-500/10 dark:text-emerald-400">Open weight</span> : <span className="inline-flex items-center rounded bg-zinc-100 px-1.5 py-[2px] text-xs font-medium leading-4 text-zinc-600 dark:bg-white/10 dark:text-zinc-300">Proprietary</span>;

export const BestForChip = ({children}) => <span className="inline-flex min-w-0 max-w-full items-center rounded bg-sky-50 px-1.5 py-[2px] dark:bg-sky-500/10">
    <span className="truncate text-xs font-medium leading-4 text-sky-700 dark:text-sky-400">{children}</span>
  </span>;

export const HeaderTip = ({label, tip}) => <span className="inline-flex items-center gap-1.5">
    <span>{label}</span>
    <Tooltip tip={tip}>
      <span className="relative top-0.5 inline-flex cursor-pointer text-zinc-500 transition-opacity hover:opacity-70 dark:text-zinc-400">
        <Icon icon="circle-info" size={12} color="currentColor" />
        <span className="sr-only">About {label.toLowerCase()}</span>
      </span>
    </Tooltip>
  </span>;

export const ModelCard = ({model, children}) => <section className="not-prose my-5 rounded-lg border border-zinc-200 bg-white p-5 shadow-sm dark:border-white/10 dark:bg-white/[0.03]">
    <div className="mb-3"><BestForChip>{model.bestFor}</BestForChip></div>
    <div className="flex items-center gap-3">
      <img src={model.icon} alt={model.dev + " logo"} noZoom className="h-10 w-10 shrink-0 rounded-lg object-contain" />
      <div className="min-w-0 flex-1">
        <h2 className="m-0 max-w-full text-xl font-semibold leading-7 tracking-normal">
          <a href={model.url} target="_blank" rel="noreferrer" className="group inline-flex min-w-0 max-w-full items-center gap-1.5 no-underline text-zinc-950 dark:text-white">
            <span className="min-w-0 break-words"><span className="underline-offset-4 group-hover:underline group-focus-visible:underline">{model.name}</span> <span className="font-normal text-zinc-500 dark:text-zinc-400">({model.dev})</span></span>
            <span aria-hidden="true" className="flex shrink-0 text-zinc-400 transition-colors group-hover:text-zinc-900 group-focus-visible:text-zinc-900 dark:text-zinc-500 dark:group-hover:text-white dark:group-focus-visible:text-white"><Icon icon="arrow-up-right" size={12} color="currentColor" /></span>
          </a>
        </h2>
        <div className="mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-[13px] leading-5 uai-ink-muted">
          <LicenseBadge license={model.license} />
          <span aria-hidden="true">∙</span>
          <span>Score <span className="tabular-nums text-zinc-950 dark:text-white">{model.score}</span></span>
          <span aria-hidden="true">∙</span>
          <span>Price <span className="tabular-nums text-zinc-950 dark:text-white">{model.price}</span></span>
          {model.custom && <><span aria-hidden="true">∙</span><span>{model.customLabel} <span className="tabular-nums text-zinc-950 dark:text-white">{model.custom}</span></span></>}
        </div>
      </div>
    </div>
    {children}
  </section>;

export const Take = ({children}) => <div className="not-prose mt-4 text-sm leading-[22px] text-zinc-700 dark:text-zinc-300">{children}</div>;

export const ST = ({label, children}) => <div className="not-prose mt-4">
    <div className="text-sm font-semibold text-zinc-950 dark:text-white">{label}</div>
    <div className="mt-1 flex flex-col gap-2.5 text-sm leading-[22px] text-zinc-700 dark:text-zinc-300">{children}</div>
  </div>;

export const AccessBullets = ({rows}) => <div className="not-prose mt-4 text-sm leading-[22px] text-zinc-700 dark:text-zinc-300">
    <div className="font-semibold text-zinc-950 dark:text-white">How to access</div>
    <div className="mt-1.5 flex flex-col gap-1.5">
      {rows.map(([key, body]) => <span key={key} className="flex items-baseline gap-2.5"><span aria-hidden="true" className="relative -top-0.5 inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-zinc-700 dark:bg-zinc-300" /><span><span className="font-semibold text-zinc-950 dark:text-white">{key}</span> — {body}</span></span>)}
    </div>
  </div>;

export const Alt = ({icon, name, dev, url, children}) => <span className="flex items-baseline gap-2.5">
    <span aria-hidden="true" className="relative -top-0.5 inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-zinc-300 dark:bg-zinc-600" />
    <span><Fav icon={icon} /><a href={url} target="_blank" rel="noreferrer" className="font-medium text-zinc-950 underline underline-offset-2 dark:text-white">{name}</a> <span className="uai-ink-muted">({dev})</span> — {children}</span>
  </span>;

<div className="not-prose -mt-2 mb-8 flex flex-wrap items-center gap-x-2 text-sm text-zinc-800 dark:text-zinc-200 lg:-mt-5" style={{ paddingLeft: "2px" }}>
  <span className="inline-flex items-center gap-1.5"><Icon icon="clock-rotate-left" size={10} color="currentColor" /> Updated <time dateTime="2026-07-12">July 12, 2026</time></span>
</div>

The best LLM for writing isn't the one topping general leaderboards - writing quality and reasoning quality often diverge. We ranked 15 models by a human-preference creative-writing benchmark, then added judgment on price, access, and where each one actually earns its slot.

## Best LLMs for Writing

<div className="uai-overview-breakout not-prose my-5">
  <input type="checkbox" id="models-more" className="fy-more-toggle sr-only" aria-label={"Show all 15 llms for writing models"} />

  <div className="fy-more-table overflow-x-auto rounded-lg border border-zinc-200 bg-white dark:border-white/10 dark:bg-white/[0.03]">
    <div className="table text-sm" style={{ width: "100%" }}>
      <div className="table-header-group bg-zinc-50/60 dark:bg-white/[0.02]">
        <div className="table-row">
          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-left text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">#</span>
          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-left text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">Model</span>
          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-left text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">Best for</span>

          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-right text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">
            <HeaderTip label="Score" tip={"UsefulAI's 0-100 writing score is normalized from Arena Text Creative Writing Elo. Higher reflects stronger human preference for creative prose."} />
          </span>

          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-right text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">
            <HeaderTip label="Price" tip={"Estimated blended API price per 1M tokens using a writing-heavy input-to-output ratio. Tiers and route differences can change the real cost."} />
          </span>

          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-left text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">
            <HeaderTip label="License" tip="Proprietary means no public model weights. Open weight means weights are available, though exact licenses and commercial-use terms vary." />
          </span>

          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-left text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">
            <HeaderTip label={"Context"} tip={"Maximum context window for the represented model. Larger context helps with long drafts and source packs but is not a quality score."} />
          </span>
        </div>
      </div>

      <div className="table-row-group">
        {models.map((model, index) => (
                        <a key={model.name} href={model.url} target="_blank" rel="noreferrer" className={"table-row no-underline transition-colors hover:bg-zinc-50/60 dark:hover:bg-white/[0.02]" + (models.length > 9 && index >= 7 ? " fy-more-row" : "")}>
                          <span className="table-cell w-8 whitespace-nowrap border-t border-zinc-100 px-4 py-3 align-middle text-[13px] tabular-nums dark:border-white/5"><span className="sr-only">Rank </span><span className="uai-ink-muted">{model.rank}</span></span>
                          <span className="table-cell whitespace-nowrap border-t border-zinc-100 px-4 py-3 align-middle dark:border-white/5"><span className="flex items-center gap-2.5"><Fav icon={model.icon} /><span className="text-sm font-semibold leading-5 text-zinc-950 dark:text-white">{model.name}</span></span></span>
                          <span className="table-cell whitespace-nowrap border-t border-zinc-100 px-4 py-3 align-middle text-[13px] leading-5 text-zinc-950 dark:border-white/5 dark:text-white"><span className="sr-only">Best for: </span>{model.bestFor}</span>
                          <span className="table-cell whitespace-nowrap border-t border-zinc-100 px-4 py-3 text-right align-middle text-[13px] leading-5 tabular-nums text-zinc-950 dark:border-white/5 dark:text-white"><span className="sr-only">Score: </span>{model.score}</span>
                          <span className="table-cell whitespace-nowrap border-t border-zinc-100 px-4 py-3 text-right align-middle text-[13px] leading-5 tabular-nums dark:border-white/5"><span className="sr-only">Price: </span><span className="uai-ink-muted">{model.price}</span></span>
                          <span className="table-cell whitespace-nowrap border-t border-zinc-100 px-4 py-3 align-middle dark:border-white/5"><span className="sr-only">License: </span><LicenseBadge license={model.license} /></span>
                          <span className="table-cell whitespace-nowrap border-t border-zinc-100 px-4 py-3 align-middle text-[13px] leading-5 text-zinc-950 dark:border-white/5 dark:text-white"><span className="sr-only">Context: </span>{model.custom}</span>
                        </a>
                      ))}
      </div>
    </div>
  </div>

  {models.length > 9 && <div className="fy-more-pill mt-3 flex justify-center">
      <label htmlFor="models-more" className="inline-flex cursor-pointer items-center gap-1.5 rounded-full border border-zinc-200 px-4 py-1.5 text-[13px] font-medium text-zinc-600 transition-colors hover:text-zinc-900 dark:border-white/15 dark:text-zinc-300 dark:hover:text-white">
        <span className="fy-more-open inline-flex items-center gap-1.5">Show {models.length - 7} more <Icon icon="chevron-down" size={13} /></span>
        <span className="fy-more-close items-center gap-1.5">Show less <Icon icon="chevron-up" size={13} /></span>
      </label>
    </div>}
</div>

Scores normalize the Arena Text Creative Writing Elo, a human-preference ranking of creative prose. Prices are blended cost per million tokens at a 1:3 input-to-output ratio.

***

<ModelCard model={models[0]}>
  <Take>The strongest pure prose model in the current benchmark, and it shows most on fiction, voice, and nuance, though you pay a real premium for it.</Take>

  <ST label="Strengths:">
    <div>It sits at the top of our writing benchmark for a reason: it holds a consistent voice across long pieces, handles subtext and rhythm, and rarely flattens into generic AI cadence.</div>
    <div>If you want the highest ceiling for fiction, essays, or brand voice, this is the pick.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's the most expensive model here by a wide margin, and creative-writing strength doesn't guarantee factual accuracy or clean SEO structure.</div>
    <div>For research-heavy or high-volume drafting, Gemini 3.1 Pro or Claude Sonnet 5 give you most of the quality for far less.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://claude.ai/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Claude</a>.</span>],
["API", <span>Accessible via <a href="https://docs.anthropic.com/en/api/overview" target="_blank" rel="noreferrer" className="underline underline-offset-2">Anthropic API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[1]}>
  <Take>A previous-generation Opus that still writes near the very top of this list for meaningfully less than Fable 5.</Take>

  <ST label="Strengths:">
    <div>It nearly matches Fable 5 on prose quality for far less, which makes it our value pick for serious writing. It's strong at long-form structure, argument, and holding tone, and it writes better than the newer Opus 4.8.</div>
    <div>Reach for it when you want near-frontier output without the top price.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Being a prior release, it may be retired or repriced before newer Claudes, so check availability if you're building on it.</div>
    <div>Fable 5 still has a higher ceiling for the hardest creative work, and Opus 4.8 is the stronger all-round reasoning model.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://claude.ai/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Claude</a>.</span>],
["API", <span>Accessible via <a href="https://docs.anthropic.com/en/api/overview" target="_blank" rel="noreferrer" className="underline underline-offset-2">Anthropic API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[2]}>
  <Take>Google's strongest current writing model, best when your draft leans on long source documents and research rather than pure style.</Take>

  <ST label="Strengths:">
    <div>The best pick here for research-heavy and long-form work, with a huge context that lets you draft from many sources at once. It stays organized across long outputs and handles structured, factual writing better than most of the higher-scoring creative models.</div>
    <div>A strong default for reports and documentation.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's a notch below the top Claude models on voice and creative nuance, so it's not our first choice for fiction or distinctive brand writing.</div>
    <div>It's also a preview release on Google's routes, so pricing and availability can shift - confirm both before you commit.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://gemini.google.com/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Gemini</a>.</span>],
["API", <span>Accessible via <a href="https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview" target="_blank" rel="noreferrer" className="underline underline-offset-2">Gemini API</a> and <a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/3-1-pro" target="_blank" rel="noreferrer" className="underline underline-offset-2">Gemini Enterprise Agent Platform</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[3]}>
  <Take>A fast, cheaper Gemini that punches above its tier for writing, ideal when you're generating or editing at volume.</Take>

  <ST label="Strengths:">
    <div>Unusually strong prose for a fast, low-cost model, with the same large context as the Pro tier.</div>
    <div>It's built for speed and throughput, making it the pick when you're drafting, rewriting, or editing in bulk and want quality that holds up without slowing you down.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It doesn't have the top prose ceiling, so for your most important creative or high-stakes pieces, Fable 5, Opus 4.6, or Gemini 3.1 Pro do better.</div>
    <div>Use Flash where volume, cost, and speed matter more than peak polish.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://gemini.google.com/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Gemini</a>.</span>],
["API", <span>Accessible via <a href="https://ai.google.dev/gemini-api/docs" target="_blank" rel="noreferrer" className="underline underline-offset-2">Gemini API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[4]}>
  <Take>The newest flagship Opus and a superb all-round model, though for pure creative writing the older Opus 4.6 actually scores higher.</Take>

  <ST label="Strengths:">
    <div>The most capable current Claude for reasoning, instruction-following, and mixed work that blends writing with analysis or code.</div>
    <div>When your writing sits inside broader tasks - briefs, technical docs, judgment-heavy editing - it's a dependable default that keeps quality high across the whole job.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>For pure creative prose it's a real step down from Opus 4.6, an unusual case where the older Opus is the better writer at the same price.</div>
    <div>If style and voice are your priority, choose Opus 4.6 or Fable 5 instead.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://claude.ai/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Claude</a>.</span>],
["API", <span>Accessible via <a href="https://docs.anthropic.com/en/api/overview" target="_blank" rel="noreferrer" className="underline underline-offset-2">Anthropic API</a> and <a href="https://aws.amazon.com/blogs/machine-learning/claude-opus-4-8-is-now-available-on-aws/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Amazon Bedrock</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[5]}>
  <Take>Meta's surprise strong writer, but you can only use it inside the Meta AI app - there's no API and no pricing to compare.</Take>

  <ST label="Strengths:">
    <div>Genuinely strong prose that scores with the mid-pack frontier models, wrapped in a free, mainstream consumer app.</div>
    <div>If you write casually and just want good output without setting up API access or paying per token, it's an easy and capable option.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>There's no public API or published pricing, so you can't build on it or budget for it, and there's no local route.</div>
    <div>For any programmatic or team workflow, a model with real API access - the Claude, Gemini, or GPT options - is the practical choice.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://www.meta.ai/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Meta AI</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[6]}>
  <Take>The Grok to use for writing with edge and personality, and notably it beats the newer Grok 4.3 on prose.</Take>

  <ST label="Strengths:">
    <div>It writes with more attitude and less hedging than most models here, which makes it fun for opinionated, casual, or voice-driven content.</div>
    <div>It's also cheap for its quality, so it's a sensible pick when you want personality and volume without a big bill.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>That distinctive voice can tip into glib or off-tone for formal and professional writing, where a Claude or Gemini model is safer.</div>
    <div>Worth knowing that the newer Grok 4.3 writes worse here, so don't assume the higher version number is the better writer.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://grok.com/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Grok</a>.</span>],
["API", <span>Accessible via <a href="https://docs.x.ai/developers/models/grok-4.20" target="_blank" rel="noreferrer" className="underline underline-offset-2">xAI API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[7]}>
  <Take>OpenAI's best writer in our set and a dependable generalist, though it trails the top Claude and Gemini models on prose.</Take>

  <ST label="Strengths:">
    <div>A well-rounded, familiar writing model that handles most everyday tasks - drafts, emails, summaries, rewrites - with steady quality and strong instruction-following.</div>
    <div>If you want one broadly capable model for mixed writing work, it's an easy and low-risk default.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It sits mid-pack for creative prose, so for fiction, voice, or your highest-stakes pieces the top Claude and Gemini models clearly do better.</div>
    <div>Note that our score is for the Instant variant, so higher-effort GPT-5.5 modes may read differently.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://chatgpt.com/" target="_blank" rel="noreferrer" className="underline underline-offset-2">ChatGPT</a>.</span>],
["API", <span>Accessible via <a href="https://developers.openai.com/api/docs/models" target="_blank" rel="noreferrer" className="underline underline-offset-2">OpenAI API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[8]}>
  <Take>Alibaba's flagship writer, most interesting for long-context and multilingual drafting rather than top-tier English prose.</Take>

  <ST label="Strengths:">
    <div>A capable flagship with a large context window and solid multilingual range, useful if you write across languages or from long documents.</div>
    <div>It's reasonably priced for a proprietary frontier model, which makes it a practical choice when breadth matters more than peak English prose.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>For English creative writing it sits mid-pack, well behind the Claude and Gemini leaders.</div>
    <div>It's also a preview release with regional access and API caveats, so confirm availability in your region before you rely on it.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://qwen.ai/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Qwen Chat</a>.</span>],
["API", <span>Accessible via <a href="https://www.alibabacloud.com/help/en/model-studio/models" target="_blank" rel="noreferrer" className="underline underline-offset-2">Alibaba Cloud Model Studio</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[9]}>
  <Take>The current GLM and a solid open-weight writer, though the older GLM-5.1 actually scores higher for prose.</Take>

  <ST label="Strengths:">
    <div>A strong open-weight option with a large context and weights you can route through whichever host fits your cost or compliance needs.</div>
    <div>Good all-round writing quality for the price, and it's the most current, best-supported model in the GLM line.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>The older GLM-5.1 writes better on this benchmark, so pick 5.2 for freshness and support, not for top score.</div>
    <div>Despite open weights, it needs real self-hosting infrastructure rather than a laptop, so most people will use a hosted API anyway.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://chat.z.ai/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Z.ai</a>.</span>],
["API", <span>Accessible via <a href="https://docs.z.ai/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Z.ai API</a>.</span>],
["Run locally", <span>Open weights are available from <a href="https://huggingface.co/zai-org/GLM-5.2" target="_blank" rel="noreferrer" className="underline underline-offset-2">Hugging Face</a>, but in practice this needs self-hosting infrastructure, not a local machine.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[10]}>
  <Take>The value standout here: open weights and near-GLM writing quality at one of the lowest prices on the list.</Take>

  <ST label="Strengths:">
    <div>Remarkably cheap for its quality, with open weights and a large context.</div>
    <div>It writes at roughly the level of pricier open-weight rivals while costing a fraction, which makes it our best value pick when you're generating writing at scale and watching cost.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's mid-pack on prose, so it's a value play, not a quality leader - the top Claude and Gemini models write clearly better.</div>
    <div>Open weights need self-hosting infrastructure rather than a laptop, and the score reflects its slower thinking mode.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://chat.deepseek.com/" target="_blank" rel="noreferrer" className="underline underline-offset-2">DeepSeek Chat</a>.</span>],
["API", <span>Accessible via <a href="https://api-docs.deepseek.com/news/news260424" target="_blank" rel="noreferrer" className="underline underline-offset-2">DeepSeek API</a>.</span>],
["Run locally", <span>Open weights are available from <a href="https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro" target="_blank" rel="noreferrer" className="underline underline-offset-2">Hugging Face</a>, but in practice this needs self-hosting infrastructure, not a local machine.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[11]}>
  <Take>A low-cost open-weight option worth knowing if you want cheap, capable drafting from outside the usual US and Chinese labs.</Take>

  <ST label="Strengths:">
    <div>Very cheap, with open weights and a large context, and it holds its own against other budget open-weight models for everyday writing.</div>
    <div>A reasonable pick if you're routing high-volume, low-stakes drafting and want to keep costs near the floor.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's toward the lower end of this list for quality, so it's a budget workhorse, not a model for polished or high-stakes writing. There's no first-party app, and local use means self-hosting, not a laptop.</div>
    <div>For a little more money, DeepSeek V4 Pro writes better.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://openrouter.ai/models" target="_blank" rel="noreferrer" className="underline underline-offset-2">OpenRouter</a>.</span>],
["Run locally", <span>Open weights are available from <a href="https://huggingface.co/XiaomiMiMo/MiMo-V2.5-Pro" target="_blank" rel="noreferrer" className="underline underline-offset-2">Hugging Face</a>, but in practice this needs self-hosting infrastructure, not a local machine.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[12]}>
  <Take>The sensible everyday Claude for writing - clearly cheaper than Fable or Opus, and good enough for most drafting and editing.</Take>

  <ST label="Strengths:">
    <div>A fast, affordable Claude that handles the bulk of routine writing well - drafts, edits, summaries, and clean structure - with the reliability and tone control Claude is known for.</div>
    <div>It's the right default when Fable 5 and the Opus models are more than the task needs.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It scores below the older Opus rows and the Gemini leaders, so for your most demanding creative or long-form work, step up to Opus 4.6 or Fable 5.</div>
    <div>Think of it as the workhorse, not the showpiece.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://claude.ai/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Claude</a>.</span>],
["API", <span>Accessible via <a href="https://docs.anthropic.com/en/api/overview" target="_blank" rel="noreferrer" className="underline underline-offset-2">Anthropic API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[13]}>
  <Take>A capable open-weight writer with a loyal following, good for drafting and sharp critique if you don't need frontier prose.</Take>

  <ST label="Strengths:">
    <div>A well-liked open-weight model that writes cleanly and is especially handy for editing and critiquing existing text.</div>
    <div>Open weights give you routing and privacy flexibility, and it's a practical, mid-priced option for teams that want an open model for everyday writing.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Its context window is the smallest here alongside Gemma, which limits very long documents, and it sits low on prose quality. Despite open weights, it's too large for a personal machine, so you're on a hosted API.</div>
    <div>For cheaper open-weight value, DeepSeek V4 Pro wins.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://kimi.ai/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Kimi</a>.</span>],
["API", <span>Accessible via <a href="https://platform.kimi.ai/docs/overview" target="_blank" rel="noreferrer" className="underline underline-offset-2">Kimi API</a>.</span>],
["Run locally", <span>Open weights are available from <a href="https://huggingface.co/moonshotai/Kimi-K2.6" target="_blank" rel="noreferrer" className="underline underline-offset-2">Hugging Face</a>, but in practice this needs self-hosting infrastructure, not a local machine.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[14]}>
  <Take>The one model here you can genuinely run on a normal computer, trading top quality for offline, private, zero-cost writing.</Take>

  <ST label="Strengths:">
    <div>The most local-friendly pick by far: it runs on a typical machine, so you get offline use, privacy, and no per-token cost.</div>
    <div>Great for private drafting, learning, and low-stakes writing where you want full control and nothing leaving your device.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It has the lowest prose score here, so expect noticeably weaker writing than any hosted frontier model - fine for notes and casual drafts, not polished work.</div>
    <div>If you can use the cloud at all, almost everything above it writes better.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://openrouter.ai/models" target="_blank" rel="noreferrer" className="underline underline-offset-2">OpenRouter</a>.</span>],
["Run locally", <span>You can run it locally with <a href="https://ollama.com/library/gemma4" target="_blank" rel="noreferrer" className="underline underline-offset-2">Ollama</a> and <a href="https://lmstudio.ai/models/google/gemma-4-31b" target="_blank" rel="noreferrer" className="underline underline-offset-2">LM Studio</a> after downloading weights from <a href="https://huggingface.co/google/gemma-4-31B" target="_blank" rel="noreferrer" className="underline underline-offset-2">Hugging Face</a>.</span>],
]}
  />
</ModelCard>

***

## How to Choose

When choosing between these models, consider:

* **Access:** Decide first whether you'll use a model in an app, call it through an API, or self-host, because that choice drives cost, privacy, latency, and setup. Most models here are app-and-API; only Gemma 4 31B runs comfortably on a normal machine, and Muse Spark is app-only.
* **Quality:** Our score normalizes the Arena Text Creative Writing Elo, a human-preference ranking of creative prose. It captures voice and style well, but it doesn't measure factual accuracy, SEO structure, or editing reliability - so treat it as a prose signal, not a verdict on every kind of writing.
* **Price:** We use blended cost per million tokens at a 1:3 input-to-output ratio so you can compare on one number. Open-weight models can be cheaper still if you self-host, but only Gemma runs locally without server-grade hardware.
* **Context window:** A bigger window matters when you draft from long sources or many documents at once. Most models here reach about 1M tokens; Kimi K2.6 and Gemma 4 31B are the notable smaller exceptions at 262K.

***

## Other Models We Considered

<div className="not-prose my-4 flex flex-col gap-1.5 text-sm text-zinc-700 dark:text-zinc-300">
  <Alt icon={"/images/icons/anthropic.com.png"} name={"Claude Opus 4.7"} dev={"Anthropic"} url={"https://www.anthropic.com/news/claude-opus-4-7"}>A strong Opus bridge, but 4.6 and 4.8 are the better current picks.</Alt>
  <Alt icon={"/images/icons/google.com.png"} name={"Gemini 3 Pro"} dev={"Google"} url={"https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-preview"}>Scored high, but Google shut down the preview, so it's no longer available.</Alt>
  <Alt icon={"/images/icons/anthropic.com.png"} name={"Claude Sonnet 4.6"} dev={"Anthropic"} url={"https://www.anthropic.com/news/claude-sonnet-4-6"}>Still widely searched, but Sonnet 5 is the better value now.</Alt>
  <Alt icon={"/images/icons/z.ai.png"} name={"GLM-5.1"} dev={"Z.ai"} url={"https://huggingface.co/zai-org/GLM-5.1"}>Writes better than GLM-5.2, but it's the older, less-supported release.</Alt>
  <Alt icon={"/images/icons/openai.com.png"} name={"GPT-5.4"} dev={"OpenAI"} url={"https://developers.openai.com/api/docs/models/gpt-5.4"}>A capable prior OpenAI writer, now behind GPT-5.5.</Alt>
  <Alt icon={"/images/icons/qwen.ai.png"} name={"Qwen3.5 397B A17B"} dev={"Alibaba"} url={"https://huggingface.co/Qwen/Qwen3.5-397B-A17B"}>A big open-weight Qwen, but weaker at writing than newer picks.</Alt>
  <Alt icon={"/images/icons/openai.com.png"} name={"GPT-4.5"} dev={"OpenAI"} url={"https://openai.com/index/introducing-gpt-4-5/"}>A landmark writing model, but that exact version is no longer offered.</Alt>
  <Alt icon={"/images/icons/openai.com.png"} name={"ChatGPT-4o"} dev={"OpenAI"} url={"https://platform.openai.com/docs/models/gpt-4o"}>The old ChatGPT default many still expect; that snapshot is gone.</Alt>
  <Alt icon={"/images/icons/google.com.png"} name={"Gemini 2.5 Pro"} dev={"Google"} url={"https://ai.google.dev/gemini-api/docs/models/gemini-2.5-pro"}>A familiar baseline, now behind newer Gemini models.</Alt>
  <Alt icon={"/images/icons/deepseek.com.png"} name={"DeepSeek V4 Flash"} dev={"DeepSeek"} url={"https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash"}>Cheaper than V4 Pro, but a clear step down in quality.</Alt>
  <Alt icon={"/images/icons/x.ai.png"} name={"Grok 4.3"} dev={"xAI"} url={"https://docs.x.ai/developers/models/grok-4.3"}>The newer Grok, but it writes worse than Grok 4.20 here.</Alt>
</div>

***

## Frequently Asked Questions

<AccordionGroup>
  <Accordion title={"What is the best LLM for writing right now?"}>
    For pure prose quality, Claude Fable 5 is the top of our list. But Claude Opus 4.6 writes almost as well for half the price, so it's the one most serious writers should reach for first.
  </Accordion>

  <Accordion title={"What is the best LLM for writing for most people?"}>
    Claude Sonnet 5 and Gemini 3.5 Flash. Both are strong, affordable, and easy to access in a mainstream app, and they cover the everyday drafting and editing most people actually do.
  </Accordion>

  <Accordion title={"What is the best free LLM for writing?"}>
    Muse Spark, if you're happy working inside the Meta AI app. If you'd rather run something yourself for free, Gemma 4 31B is the only pick here that runs on a normal computer at no per-token cost.
  </Accordion>

  <Accordion title={"What is the best open-weight LLM for writing?"}>
    GLM-5.2 is the strongest current open-weight writer with active support. DeepSeek V4 Pro is the value choice, and Gemma 4 31B is the one you can actually run locally.
  </Accordion>

  <Accordion title={"What is the best LLM for writing you can run locally?"}>
    Gemma 4 31B. It's the only model on this list that runs comfortably on a typical machine. The other open-weight models - GLM-5.2, DeepSeek V4 Pro, MiMo-V2.5-Pro, Kimi K2.6 - technically have downloadable weights but need server-grade hardware.
  </Accordion>

  <Accordion title={"Why does an older model rank above the newer Claude Opus 4.8?"}>
    Because writing quality and version number don't move together. Opus 4.6 was tuned in a way that produces better creative prose than Opus 4.8, even though 4.8 is the newer, stronger all-round model. For writing specifically, 4.6 wins.
  </Accordion>

  <Accordion title={"Do writing benchmarks match real-world use?"}>
    Partly. Our score comes from human preference on creative prose, so it tracks voice and style well. It says little about factual accuracy, SEO structure, or reliable editing, so a high score is a good starting signal, not a guarantee for your exact task.
  </Accordion>

  <Accordion title={"Is Claude Fable 5 worth the premium over Opus 4.6?"}>
    Only for the hardest creative work - fiction, distinctive brand voice, or pieces where prose quality is the whole point. For most writing, Opus 4.6 gets you nearly the same result for far less.
  </Accordion>
</AccordionGroup>
