Recommendation for Local / open

Best Local LLM for Coding

Our top recommendation for Best Local LLM for Coding, based on the public evidence we track, is MoonshotAI: Kimi K3.[1][2][3] Explore weight-aware streaming with WASTE engine to run trillion-parameter MoE on laptop RAM by loading only activated expert weights per token. Watch out: Expect invocation failures with internal server errors on some deployment routes, as seen in OpenCode Go integration attempts. Tencent: Hy4 preview is the next-ranked alternative. Its currently supported evidence is cautionary: Fix RoPE layout incompatibility where transformers applies rotate-half (NeoX) style but checkpoint stores interleaved (Megatron) layout, requiring manual conversion for correct attention.

About this recommendation

Updated
Sep 25, 2026
Evidence through
Sep 25, 2026
Sources
18
Revision
v84

Decision audit

Why this result

Inspect the inputs and the computed order behind the recommendation.

Models screened

20

live candidates

Evaluation feeds

6

task-weighted

Winner coverage

69%

intended feed weight

Largest provider share

2 of 8

Moonshot AI

Established source breadth. 9 citation families and 4 practitioner families support the top result; 2 cautionary threads is retained. The largest citation family contributes 44%.

Sources evaluated

The task sets these weights before any model is scored.

winner: Kimi K3
Evaluation feedWeightWinner resultField measured
Aider Polyglot
32%
not measured3/20
LiveBench Coding
22%
#18/20
LMArena WebDev
18%
#115/20
SWE-rebench
13%
not measured12/20
price weight
10%
31/10020/20
OpenRouter usage
5%
95/10020/20

Provider concentration

Each exact model is scored separately; provider identity is not a ranking input.

Moonshot AI25%
  • Moonshot AI2 models
  • xiaomi2 models
  • minimax1 model
  • OpenAI1 model
  • Qwen1 model
  • tencent1 model

Decision table

Every published model is shown in computed order. Practitioner sources are distinct community threads, not the citations repeated in the prose below.

RankModelRelative scoreCoveragePractitioner evidenceStrongest measured reason
01Kimi K3Moonshot AI
62
69%4 threads · 4 families · 2 cautions#1 LiveBench Coding · #1 LMArena WebDev
02Hy4 previewtencent
60
52%2 threads · 2 families · 2 cautions#2 LMArena WebDev
03MiMo-V2.5-Proxiaomi
56
72%2 threads · 1 families · 0 cautions#11 SWE-rebench · #12 LMArena WebDev
04Kimi K2 0711Moonshot AI
55
55%no linked practitioner threads#2 Aider Polyglot · #8 SWE-rebench
05Qwen3.5-27BQwen
54
72%3 threads · 1 families · 0 cautions#3 SWE-rebench · #23 LMArena WebDev
06MiniMax M3minimax
53
89%3 threads · 2 families · 0 cautions#9 SWE-rebench · #11 LMArena WebDev
07MiMo-V2.6-Flashxiaomi
52
24%2 threads · 2 families · 2 cautionsprice weight 97/100 normalized
08gpt-oss-120bOpenAI
48
55%4 threads · 3 families · 2 cautions#3 Aider Polyglot · #21 SWE-rebench

Relative score combines normalized benchmark quality and signal coverage; independent practitioner evidence and freshness are bounded tie-breakers. It is an ordering score, not an absolute quality percentage. The writing model receives this order and cannot change it.

  1. Kimi K3's 2.78 trillion parameter MoE architecture requires WASTE streaming engine for laptop deployment, as full weights exceed consumer RAM despite sparse activation patterns.

    Best when: Explore weight-aware streaming with WASTE engine to run trillion-parameter MoE on laptop RAM by loading only activated expert weights per token.

    Tips

    • Explore weight-aware streaming with WASTE engine to run trillion-parameter MoE on laptop RAM by loading only activated expert weights per token.
      Source 1
      “Kimi K3 has 2.78 trillion parameters and ships as 1.42 TB of weights. It clearly does not fit in the memory of a laptop. But K3 is a Mixture-of-Experts model. For each token, only a small fraction of its 896 experts per layer is activated. That changes the problem: the entire model does not need to be resident in RAM, as long as the weights required by each token can be reached quickly enough. We built WASTE — the Weight-Aware Streaming Tensor Engine — to explore that idea. WASTE keeps the dens…”
      marcobambiniOpen original ↗

    Watch out for

    • Expect invocation failures with internal server errors on some deployment routes, as seen in OpenCode Go integration attempts.
      Source 2
      “### Description On Windows desktop, multiple `opencode-go` models are visible in the model picker but fail when actually invoked. Confirmed behaviors on my machine: - `gpt-5.6-luna` is visible, but invocation fails with `Upstream request failed: [403] This model is not available in your region.` - `kimi-k3` is visible, but invocation fails with repeated `AI_APICallError: Internal server error`. - `deepseek-v4-flash` is visible, but invocation also fails with repeated `AI_APICallError: Internal…”
  2. Hy4 preview exhibits RoPE layout mismatches between transformers and vLLM implementations, causing incorrect relative positions in every layer when deployed locally.

    Best when: Consider only after reviewing the cited caution.

    Watch out for

    • Fix RoPE layout incompatibility where transformers applies rotate-half (NeoX) style but checkpoint stores interleaved (Megatron) layout, requiring manual conversion for correct attention.
      Source 3
      “**Summary.** transformers main's `models/hy_v4` (the only place Hy4-preview model code exists, per `onboarding/hy_v4.md`) applies rotate-half (NeoX) RoPE, but the checkpoint stores `q_pe`/`k_pe` in interleaved (Megatron/PTM) layout. vLLM's `hy_v4` builds its rotary with `is_neox_style=False` for both attention and the DSA indexer and says so in a comment; transformers' conversion mapping has key renames only, no RoPE permutation. Result: relative positions are wrong in every layer. **How it sho…”
    • Expect 403 Forbidden errors from session service on some OpenCode Go deployments despite active subscriptions and working other models.
      Source 4
      “### Description On OpenCode Go, `hy3` and `hy4-preview` return a bare `403 Forbidden: {"model":" "}` from the session service, while other Go models work with identical requests. Subscription is active and usage is low. This matches the bug class already reported in #40343, #43054, #40485 and #45132 — filing with concrete probes since those issues cover other model sets. ### Environment - `opencode` CLI 1.18.31 (latest per npm), Linux (WSL2, OpenClawGateway), also reproduced through a separate…”
      BaskovKonstantinOpen original ↗
  3. MiMo-V2.5-Pro is cited as effective for infrastructure coding tasks when combined with planning models, offering cost advantages over Anthropic and OpenAI APIs for personal coding plans.

    Best when: Combine with planning models like Fable or Opus 4.8 for infrastructure coding workflows, using MiMo for implementation steps after detailed plan layout.

    Tips

    • Combine with planning models like Fable or Opus 4.8 for infrastructure coding workflows, using MiMo for implementation steps after detailed plan layout.
      Source 5
      “It depends on what your task is and how precise your prompts are. Planning with fable or 4.8 and laying out the plan in step by step process and coding with mimo v2.5 pro or dsv4pro or qwen 3.7 max and doing a final review with 5.5 has worked really well for me for infra stuff.”
    • Build personal coding plans at significantly lower cost than proprietary alternatives while maintaining quality for self-hosted use.
      Source 6
      “>Being open is nice though, even though it doesn't matter that much for folks like me with a single consumer GPU. Of course it matters because that makes coding plans much cheaper than those from Anthropic and OpenAI. For personal use I have coding plans with GLM 5.1, Kimi K2.6, MiniMax M2.7 and Xiaomi MiMo V2.5 Pro and I am getting a lot of bang for the buck.”
  4. Kimi K2 0711 scores 59.1% on Aider polyglot coding benchmark, demonstrating solid real-code editing capabilities across multiple languages for local deployment.

    Best when: Use for real-code editing tasks across many languages where Aider benchmark performance indicates strong polyglot capabilities.

    Tips

    • Use for real-code editing tasks across many languages where Aider benchmark performance indicates strong polyglot capabilities.
      Source 7
      “Scores 59.1% on the Aider polyglot coding benchmark (#14 of 27), which tests editing real code across many languages.”
      Aider polyglot benchmarkOpen original ↗
  5. Qwen3.5-27B enables large context coding on single 3090 with 262K window support, delivering competent multi-language generation across C++, Python, and Verilog for local projects.

    Best when: Run 262K context windows on single RTX 3090 with Q4_K_M quantization using llama-server with `-ngl 99 -c 262144` and compressed KV cache for extended codebase analysis.

    Tips

    • Run 262K context windows on single RTX 3090 with Q4_K_M quantization using llama-server with `-ngl 99 -c 262144` and compressed KV cache for extended codebase analysis.
      Source 8
      “I used to run qwen3.5 27b Q4_k_M on a single 3090 with these llama-server flags successfully: `-ngl 99 -c 262144 -fa on --cache-type-k q4_0 --cache-type-v q4_0`”
      skiing_crawlingOpen original ↗
    • Handle multi-language projects spanning C++, Python, and Verilog with competent cross-repository code generation and idea integration on local hardware.
      Source 9
      “Have you tried out Qwen3.5-27b? It's quite amazing that a model with only 27b parameters can do what it's doing. I've had it working on a project that has C++, python and Verilog code. It's generating code in all 3 and very competently. I've had it look into other git repos to bring in ideas from them into this one. Again, it's doing an amazingly good job with this and it's running locally on my PC.”
      UncleOxidantOpen original ↗

    Watch out for

    • Expect 20-25 tok/s throughput on 128GB Strix Halo with 8-bit quant, which is usable but involves noticeable waiting periods during generation.
      Source 10
      “For Qwen3.5-27b I'm getting in the 20 to 25 tok sec range on a 128GB Strix Halo box (Framework Desktop). That's with the 8-bit quant. It's definitely usable, but sometimes you're waiting a bit, though I'm not finding it problematic for the most part. I can run the Qwen3-coder-next (80b MoE) at 36tok sec - hoping they release a Qwen3.6-coder soon.”
      UncleOxidantOpen original ↗
  6. MiniMax M3 represents a capability jump from 2.7 according to community benchmarks, though open-weight release does not guarantee runnable local deployment on consumer hardware.

    Best when: Access significantly improved capabilities over MiniMax 2.7 for coding tasks where the open-weight release enables local or API-flexible deployment.

    Tips

    • Access significantly improved capabilities over MiniMax 2.7 for coding tasks where the open-weight release enables local or API-flexible deployment.
      Source 11
      “> I'd rather use Sonnet than Qwen I get this, though the pace of Chinese releases is relentless. Qwen3.7 Plus Max (closed variants) feel notably better than Qwen3.6, and Minimax M3 is a big jump from 2.7 in capability as well. Both of these families had their previous major release less than 90 days ago. Anthropic must have Sonnet 5 either waiting or cooking though, they said smaller and larger models than Opus were coming and we already briefly had the larger model.”

    Watch out for

    • Recognize that open weights do not translate to home-runnable deployment, with reports of inability to run locally despite hardware squeezing attempts.
      Source 12
      “Another round of my coding benchmark. This time it’s three open source entries: Kimi K2.7 Code, GLM 5.2, and the MiniMax M3 that got open weights but that I can’t run at home no matter how hard I squeeze. Before the numbers, the usual context for anyone who parachuted in here, plus an update to the data center soap opera, because there’s news.”
      akitaonrailsOpen original ↗
    • Watch for integration issues where model selectors fail to display configured MiniMax-M3 in third-party tools like Zeron with cc-switch.
      Source 13
      “## 环境 - Zeron 0.2.59(macOS 桌面版) - Claude Code CLI 2.1.198 - 通过 [cc-switch](https://github.com/farion1231/cc-switch) 切换 Claude Code 的第三方供应商与模型 ## 问题现象 cc-switch 是通过改写 `~/.claude/settings.json` 来切换供应商和模型的,例如切到 DeepSeek 后: 此时在 Zeron 里使用 Claude Code: 1. **模型选择器仍然只列出 Claude 的模型**(Fable 5.1 / Opus 5 / Sonnet 5 / Haiku 4.5 等),看不到 cc-switch 当前实际配置的模型(如 DeepSeek V4 Flash / MiniMax-M3)。 2. **实际请求里带的也是 Claude 的模型名,而不是 cc-switch 配置的模型**。 3. 部分第三方供应商会直接报错(如 `model_not_found` / `400 The supported API model n…”
  7. MiMo-V2.6-Flash experiences response body decoding failures during long generations through OpenAI-compatible endpoints, with headless CLI tooling gaps blocking automated workflows.

    Best when: Consider only after reviewing the cited caution.

    Watch out for

    • Handle `Failed to read OpenAI response body: error decoding response body` errors during long generations, which occurred on every local run in September 2026 testing.
      Source 14
      “With Xiaomi MiMo (`mimo-v2.6-flash`, base URL https://api.xiaomimimo.com/v1), which Sashiko reaches through its OpenAI-compatible provider, long generations failed mid-body on every local run on 2026-09-23. Three runs reviewing the three patches sashiko-repro-ntfs-v2-base..sashiko-repro-ntfs-v2-tip in https://github.com/matthiasgoergens/linux (the base is mainline v7.3-rc3-508-g40288c9206c1) logged 1, 1 and 8 `Failed to read OpenAI response body: error decoding response body` errors, and a sing…”
      matthiasgoergensOpen original ↗
    • Work around missing standalone `mimo` CLI and headless Desktop GUI launch failures when attempting automated or scripted workflows.
      Source 15
      “## Gap A frontier MiMo session cannot dispatch mechanical implementation to Mimo v2.6 flash headlessly today. Two stacked blockers, both verified read-only on edge-dev 2026-09-25 (Step 1 of the model-tier delegation plan): 1. **The standalone `mimo` CLI is still absent on PATH** (`command -v mimo` fails; no `~/.local/bin/mimo`). `bin/ai-mimo` fail-closes with `local_dependency_unavailable` by design and never launches the Desktop GUI headlessly. Related: #758 (live MiMo install verification) an…”
  8. GPT-OSS-120B provides a 120B parameter open-weight option for self-hosted coding and reasoning-intensive agentic flows, with 64 attention heads enabling 8-GPU tensor parallelism.

    Best when: Deploy across 8 GPUs with tensor parallelism due to 64 attention heads, fitting vLLM's divisibility requirements for distributed inference.

    Tips

    • Deploy across 8 GPUs with tensor parallelism due to 64 attention heads, fitting vLLM's divisibility requirements for distributed inference.
      Source 16
      “### Suggestion Description We should use a model that is compatible to use with 8 GPUs, since I believe that the number of attention heads must be divisible by the number of GPUs/tensor-parallelism value in vLLM: https://github.com/vllm-project/vllm/issues/4232 Qwen2.5-0.5B has only 14, gpt-oss-120b has 64. Alternatively we could run Qwen with 7 GPUs. We should create a new CI job, similar to tiny-test, that runs the 8 GPU tests reusing the image/tarball produce my `build-dist` or `build-dist-f…”
    • Use for reasoning-intensive agentic workflows where 120B scale provides advantages over smaller local models.
      Source 17
      “I use Opus 4.7 for personal stuff (basically for everything), but have been considering gpt-5.5 given all I hear about it. At work I use 4.6 because we don't have 4.7 yet...zzz... I also do a LOT of personal portfolio work with self-hosted models. Ministral-3-14B-Reasoning for validating concepts, MVPs, etc and some prod systems (punches above its weight class). Qwen3.6-35B-A3B for self-hosted coding (custom harness). GPT-OSS-120B for self-hosted coding or more reasoning-intensive agentic flows…”

    Watch out for

    • Note lower Aider benchmark performance at 41.8% (#17 of 27) compared to leading open-weight alternatives for polyglot code editing tasks.
      Source 18
      “Scores 41.8% on the Aider polyglot coding benchmark (#17 of 27), which tests editing real code across many languages.”
      Aider polyglot benchmarkOpen original ↗

Frequently asked

What is the top-ranked model for Best Local LLM for Coding?
MoonshotAI: Kimi K3 ranks first in the current evidence-weighted comparison. Explore weight-aware streaming with WASTE engine to run trillion-parameter MoE on laptop RAM by loading only activated expert weights per token.[1]
What should I watch out for with MoonshotAI: Kimi K3?
Expect invocation failures with internal server errors on some deployment routes, as seen in OpenCode Go integration attempts.[2]

Sources

  1. 1

    “Kimi K3 has 2.78 trillion parameters and ships as 1.42 TB of weights. It clearly does not fit in the memory of a laptop. But K3 is a Mixture-of-Experts model. For each token, only a small fraction of its 896 experts per layer is activated. That changes the problem: the entire model does not need to be resident in RAM, as long as the weights required by each token can be reached quickly enough. We built WASTE — the Weight-Aware Streaming Tensor Engine — to explore that idea. WASTE keeps the dens…”

    marcobambini · Hugging Face · Jul 29, 2026
  2. 2

    “### Description On Windows desktop, multiple `opencode-go` models are visible in the model picker but fail when actually invoked. Confirmed behaviors on my machine: - `gpt-5.6-luna` is visible, but invocation fails with `Upstream request failed: [403] This model is not available in your region.` - `kimi-k3` is visible, but invocation fails with repeated `AI_APICallError: Internal server error`. - `deepseek-v4-flash` is visible, but invocation also fails with repeated `AI_APICallError: Internal…”

    ZXH109030 · GitHub · Aug 1, 2026
  3. 3

    “**Summary.** transformers main's `models/hy_v4` (the only place Hy4-preview model code exists, per `onboarding/hy_v4.md`) applies rotate-half (NeoX) RoPE, but the checkpoint stores `q_pe`/`k_pe` in interleaved (Megatron/PTM) layout. vLLM's `hy_v4` builds its rotary with `is_neox_style=False` for both attention and the DSA indexer and says so in a comment; transformers' conversion mapping has key renames only, no RoPE permutation. Result: relative positions are wrong in every layer. **How it sho…”

    bot-lab-21 · GitHub · Sep 10, 2026
  4. 4

    “### Description On OpenCode Go, `hy3` and `hy4-preview` return a bare `403 Forbidden: {"model":" "}` from the session service, while other Go models work with identical requests. Subscription is active and usage is low. This matches the bug class already reported in #40343, #43054, #40485 and #45132 — filing with concrete probes since those issues cover other model sets. ### Environment - `opencode` CLI 1.18.31 (latest per npm), Linux (WSL2, OpenClawGateway), also reproduced through a separate…”

    BaskovKonstantin · GitHub · Sep 21, 2026
  5. 5

    “It depends on what your task is and how precise your prompts are. Planning with fable or 4.8 and laying out the plan in step by step process and coding with mimo v2.5 pro or dsv4pro or qwen 3.7 max and doing a final review with 5.5 has worked really well for me for infra stuff.”

    Bnjoroge · Hacker News · Jun 12, 2026
  6. 6

    “>Being open is nice though, even though it doesn't matter that much for folks like me with a single consumer GPU. Of course it matters because that makes coding plans much cheaper than those from Anthropic and OpenAI. For personal use I have coding plans with GLM 5.1, Kimi K2.6, MiniMax M2.7 and Xiaomi MiMo V2.5 Pro and I am getting a lot of bang for the buck.”

    DeathArrow · Hacker News · May 3, 2026
  7. 7

    “Scores 59.1% on the Aider polyglot coding benchmark (#14 of 27), which tests editing real code across many languages.”

    Aider polyglot benchmark · Benchmark · Sep 24, 2026
  8. 8

    “I used to run qwen3.5 27b Q4_k_M on a single 3090 with these llama-server flags successfully: `-ngl 99 -c 262144 -fa on --cache-type-k q4_0 --cache-type-v q4_0`”

    skiing_crawling · Hacker News · Apr 22, 2026
  9. 9

    “Have you tried out Qwen3.5-27b? It's quite amazing that a model with only 27b parameters can do what it's doing. I've had it working on a project that has C++, python and Verilog code. It's generating code in all 3 and very competently. I've had it look into other git repos to bring in ideas from them into this one. Again, it's doing an amazingly good job with this and it's running locally on my PC.”

    UncleOxidant · Hacker News · Apr 20, 2026
  10. 10

    “For Qwen3.5-27b I'm getting in the 20 to 25 tok sec range on a 128GB Strix Halo box (Framework Desktop). That's with the 8-bit quant. It's definitely usable, but sometimes you're waiting a bit, though I'm not finding it problematic for the most part. I can run the Qwen3-coder-next (80b MoE) at 36tok sec - hoping they release a Qwen3.6-coder soon.”

    UncleOxidant · Hacker News · Apr 22, 2026
  11. 11

    “> I'd rather use Sonnet than Qwen I get this, though the pace of Chinese releases is relentless. Qwen3.7 Plus Max (closed variants) feel notably better than Qwen3.6, and Minimax M3 is a big jump from 2.7 in capability as well. Both of these families had their previous major release less than 90 days ago. Anthropic must have Sonnet 5 either waiting or cooking though, they said smaller and larger models than Opus were coming and we already briefly had the larger model.”

    ac29 · Hacker News · Jun 16, 2026
  12. 12

    “Another round of my coding benchmark. This time it’s three open source entries: Kimi K2.7 Code, GLM 5.2, and the MiniMax M3 that got open weights but that I can’t run at home no matter how hard I squeeze. Before the numbers, the usual context for anyone who parachuted in here, plus an update to the data center soap opera, because there’s news.”

    akitaonrails · Hacker News · Jun 14, 2026
  13. 13

    “## 环境 - Zeron 0.2.59(macOS 桌面版) - Claude Code CLI 2.1.198 - 通过 [cc-switch](https://github.com/farion1231/cc-switch) 切换 Claude Code 的第三方供应商与模型 ## 问题现象 cc-switch 是通过改写 `~/.claude/settings.json` 来切换供应商和模型的,例如切到 DeepSeek 后: 此时在 Zeron 里使用 Claude Code: 1. **模型选择器仍然只列出 Claude 的模型**(Fable 5.1 / Opus 5 / Sonnet 5 / Haiku 4.5 等),看不到 cc-switch 当前实际配置的模型(如 DeepSeek V4 Flash / MiniMax-M3)。 2. **实际请求里带的也是 Claude 的模型名,而不是 cc-switch 配置的模型**。 3. 部分第三方供应商会直接报错(如 `model_not_found` / `400 The supported API model n…”

    dcdyouget · GitHub · Sep 10, 2026
  14. 14

    “With Xiaomi MiMo (`mimo-v2.6-flash`, base URL https://api.xiaomimimo.com/v1), which Sashiko reaches through its OpenAI-compatible provider, long generations failed mid-body on every local run on 2026-09-23. Three runs reviewing the three patches sashiko-repro-ntfs-v2-base..sashiko-repro-ntfs-v2-tip in https://github.com/matthiasgoergens/linux (the base is mainline v7.3-rc3-508-g40288c9206c1) logged 1, 1 and 8 `Failed to read OpenAI response body: error decoding response body` errors, and a sing…”

    matthiasgoergens · GitHub · Sep 25, 2026
  15. 15

    “## Gap A frontier MiMo session cannot dispatch mechanical implementation to Mimo v2.6 flash headlessly today. Two stacked blockers, both verified read-only on edge-dev 2026-09-25 (Step 1 of the model-tier delegation plan): 1. **The standalone `mimo` CLI is still absent on PATH** (`command -v mimo` fails; no `~/.local/bin/mimo`). `bin/ai-mimo` fail-closes with `local_dependency_unavailable` by design and never launches the Desktop GUI headlessly. Related: #758 (live MiMo install verification) an…”

    u2giants · GitHub · Sep 25, 2026
  16. 16

    “### Suggestion Description We should use a model that is compatible to use with 8 GPUs, since I believe that the number of attention heads must be divisible by the number of GPUs/tensor-parallelism value in vLLM: https://github.com/vllm-project/vllm/issues/4232 Qwen2.5-0.5B has only 14, gpt-oss-120b has 64. Alternatively we could run Qwen with 7 GPUs. We should create a new CI job, similar to tiny-test, that runs the 8 GPU tests reusing the image/tarball produce my `build-dist` or `build-dist-f…”

    john00003 · GitHub · Jul 29, 2026
  17. 17

    “I use Opus 4.7 for personal stuff (basically for everything), but have been considering gpt-5.5 given all I hear about it. At work I use 4.6 because we don't have 4.7 yet...zzz... I also do a LOT of personal portfolio work with self-hosted models. Ministral-3-14B-Reasoning for validating concepts, MVPs, etc and some prod systems (punches above its weight class). Qwen3.6-35B-A3B for self-hosted coding (custom harness). GPT-OSS-120B for self-hosted coding or more reasoning-intensive agentic flows…”

    zambelli · Hacker News · May 17, 2026
  18. 18

    “Scores 41.8% on the Aider polyglot coding benchmark (#17 of 27), which tests editing real code across many languages.”

    Aider polyglot benchmark · Benchmark · Sep 24, 2026

Rankings synthesized from community evidence and open benchmarks. See methodology. Not driven by vendor marketing.