opencode and Claude Code: Hacker News stories and npm downloads moved in opposite directions over 30 days

Summary. Between 2026-09-11 and 2026-10-10, only two of the 6 AI coding CLIs tracked here had enough Hacker News stories to compare across windows. For both of them, HN title counts and npm downloads moved in opposite directions:

  • opencode: HN stories changed by -20.0% while npm downloads changed by +19.9%.
  • Claude Code: HN stories changed by +3.9% while npm downloads changed by -27.0%.

The two signals are measuring different things. Neither one, alone or combined, measures adoption.

The question

If HN attention tracked npm downloads, a tool’s share of Hacker News stories would sit close to its share of npm downloads, and the two counts would rise and fall together. The pipeline tested that assumption with a combined metric, the attention-to-download ratio. This is a tool’s share of HN stories divided by its share of npm downloads, both measured within the 6 tracked tools. A value of 1 means the two shares match.

Across all tracked tools, the current window contains 239 HN stories and 169,292,887 npm downloads. The shares below are computed against those totals.

The data

Tools are listed with the two above-threshold tools first, then alphabetically. The order is not a ranking.

Tool HN stories, current HN stories, previous HN change npm downloads, current npm downloads, previous npm change HN share npm share Attention-to-download ratio
opencode 20 25 -20.0% 11,318,507 9,438,381 +19.9% 8.4% 6.7% 1.25
Claude Code 212 204 +3.9% 55,233,067 75,669,684 -27.0% 88.7% 32.6% 2.72
Gemini CLI 1 1 not compared 1,691,813 1,514,526 not compared not compared not compared not compared
GitHub Copilot CLI 0 1 not compared 6,464,372 10,922,552 not compared not compared not compared not compared
OpenAI Codex CLI 6 6 not compared 94,259,523 74,849,890 not compared not compared not compared not compared
Qwen Code 0 0 not compared 325,605 273,780 not compared not compared not compared not compared

Gemini CLI, GitHub Copilot CLI, OpenAI Codex CLI and Qwen Code had fewer than 10 HN stories in at least one window. Percentages built on counts that small swing on a single story, so these tools appear only as raw counts. Their absence from the comparisons says nothing about the tools themselves. The title-search method simply did not collect enough stories to support a comparison.

Interpretation

Opposite movement, in both directions. opencode went from 25 to 20 HN stories while its npm downloads went from 9,438,381 to 11,318,507. Claude Code shows the mirror pattern: 204 to 212 HN stories, alongside npm downloads that went from 75,669,684 to 55,233,067. Because the gap runs one way for one tool and the other way for the second, a single explanation such as “HN coverage leads installs” is not supported by this window.

Both ratios sit above parity, at different distances. opencode’s ratio of 1.25 is close to 1. Its 8.4% HN share is near its 6.7% npm share. Claude Code’s ratio of 2.72 reflects an 88.7% HN share against a 32.6% npm share. Read plainly, opencode’s HN title presence is roughly in line with its npm footprint within this set. Claude Code’s HN title presence runs well ahead of its npm footprint.

The ratio depends on the comparison set. Both shares are computed within the tracked tools. Adding or removing a tool changes every ratio, even if nothing about opencode or Claude Code changes. A set-independent view is stories per million npm downloads: 1.77 for opencode and 3.84 for Claude Code. That metric still inherits every npm caveat below. The practical consequence for a reader: use the ratio to compare these two tools inside this set and this window, not as a standalone score for either tool.

The author’s reading of the opencode pattern:

If buzz fell while installs grew, it may mean existing users kept using it, though this data alone can’t confirm that.

— The author

That hypothesis fits the direction of opencode’s numbers. The same data would also fit other explanations, such as a change in release cadence that triggered more automated installs. The dataset cannot separate those explanations.

What these numbers do not prove

  • No cause. The opposite movement is a correlation between one 30-day window and the previous 30 days. It does not show that hype faded, that adoption grew quietly, or that either signal drives the other.
  • Not total adoption. npm is one install channel. Its share of installs differs by tool, because some tools are also distributed through Homebrew, standalone binaries or IDE bundles. Downloads therefore cannot rank these tools by popularity. A change of -27.0% or +19.9% does not measure a change in users.
  • Not people. npm counts include CI runs, mirrors, bots and repeated installs from automated update checks. A shift in release frequency or in CI configuration can move these counts without any change in who uses a tool.
  • Not all coverage. HN title search misses stories that do not name the product in the title. The query “opencode” may also match unrelated uses of the word. HN reflects one specific audience, not developers in general.
  • Not sentiment. A story count does not say whether coverage was positive, negative or about an incident. This applies equally to every tool in the table.
  • Small absolute counts. opencode’s HN change rests on counts of 25 and 20 stories. A few stories more or fewer would change its percentage noticeably.

Methodology

Sources. Hacker News stories came from the Hacker News Algolia search API. Download counts came from the npm download counts API (point endpoint).

Time windows. The current window runs from 2026-09-11 to 2026-10-10. The previous window runs from 2026-08-12 to 2026-09-10. Data was collected on 2026-10-11.

HN search. The search covered stories only. Each query was an exact quoted phrase in the title with typo tolerance turned off. Code then re-checked each title for the whole phrase. Hits were de-duplicated across a tool’s queries.

npm counts. Each count came from the npm downloads point API for the listed package over the same windows.

Queries and packages per tool.

Tool HN title queries npm package
Claude Code “Claude Code” @anthropic-ai/claude-code
OpenAI Codex CLI “Codex CLI”, “OpenAI Codex” @openai/codex
Gemini CLI “Gemini CLI” @google/gemini-cli
GitHub Copilot CLI “Copilot CLI” @github/copilot
Qwen Code “Qwen Code” @qwen-code/qwen-code
opencode “opencode” opencode-ai

Derived metrics.

  • HN share: a tool’s current-window stories divided by the 239 stories across tracked tools.
  • npm share: a tool’s current-window downloads divided by the 169,292,887 downloads across tracked tools.
  • Attention-to-download ratio: HN share divided by npm share. Parity is 1.
  • Stories per million downloads: current-window HN stories per million current-window npm downloads.
  • Growth figures: the current window compared with the previous window.

Known limitations.

  • Only opencode and Claude Code have at least 10 HN stories in both windows. Codex CLI, Gemini CLI, Copilot CLI and Qwen Code are reported only as raw counts, with no HN share, ratio or growth comparison.
  • npm is one install channel, and its share of installs differs by tool (Homebrew, standalone binaries, IDE bundles). Downloads cannot show total adoption, and tools must not be ranked by popularity.
  • npm download counts include CI runs, mirrors, bots and repeated installs from automated update checks. A -27.0% or +19.9% change may reflect changes in release cadence or in CI behavior, not in the number of users.
  • HN title search misses stories that omit the product name. The query “opencode” may pick up unrelated uses of the word. HN reflects a specific audience, not developers in general.
  • Opposite movement between the two signals is a correlation within one 30-day window compared with the previous one. It does not establish a cause, such as hype fading or quiet adoption.
  • The data cannot show sentiment. A high HN story count can come from negative or incident coverage as well as positive coverage.

Disclosure. Drafted with AI assistance (Claude, made by Anthropic, which also makes Claude Code, one of the tools compared) from data collected by our pipeline; numbers were checked against the dataset by code and the article was reviewed by the author before publication.