DEV Community

Cover image for Ripple-65B Is an Open Coder With 1M Context. Its DGX Spark Script Stops at 128K
Gabriel Anhaia
Gabriel Anhaia

Posted on Edited on AI-assisted

Ripple-65B Is an Open Coder With 1M Context. Its DGX Spark Script Stops at 128K


On November 4, Ricursive Intelligence released Ripple-65B Preview, a 65-billion-parameter dense model it says it pretrained from scratch on 12 trillion tokens. The weights are on Hugging Face under Apache 2.0.

The headline is 80.5 on Terminal-Bench 2.1, ahead of Reflection's Beam (501B, 80.1), Meta's Muse Spark Open (816B, 76.4) and Thinking Machines' Inkling (975B, 63.8). Ripple's score is Ricursive's own, set against each rival lab's self-reported figure, and VentureBeat points out these are separate vendor evaluations, not a controlled head-to-head test.

The launch page also says the model's size lets it run efficiently on local devices such as NVIDIA's DGX Spark, a desktop box with a GB10 chip and 128 GB of unified memory. Ricursive's own inference scripts show the window depends on the route. Its two-B200 server recipe defaults to 1,048,576 tokens. Its DGX Spark script sets 131,072.

What Ricursive shipped

Four repos, per the model card:

  • Ripple-65B-Preview: the BF16 instruct model.
  • Ripple-65B-Preview-NVFP4: labelled Experimental, a "conservative quantization" with NVFP4 MLP layers and attention kept in BF16 (card).
  • Ripple-65B-Base-Preview: the BF16 base model.
  • Ripple-65B-Preview-DFlash2: a draft model the inference scripts use for speculative decoding (spark.py).

The card says "up to 1M" context in its intro, while its training table lists a 2M sequence length for the long-context stages.

The architecture is new, and it ships as code. The repo's config sets model_type to ricursive and maps the model class to modeling_ricursive.py in the repo (Hub API). Loading that with Transformers takes trust_remote_code=True, which runs the repo's Python on your machine (Hugging Face docs). This is the publisher's own repo, but read the file before you load it.

Read the scorecard row by row

Editorial illustration of a balance scale holding one small solid black cube on one side and a tall tower of many hollow cubes on the other, the beam level, burnt orange highlights on the small cube
Ricursive's pitch: one 65B dense model against MoE models roughly 8 to 15 times its total size, on its own scorecard.

The card's table mixes published numbers with Ricursive's in-house runs, and the harnesses differ: Terminus 2 for SWE-bench Pro v2.0 Hard, DeepSWE 1.1 and one of the two Terminal-Bench columns, Inspect AI for SciCode, and OpenCode wherever no harness is named (card). Ripple's Terminal-Bench lead holds under both columns it reports: 80.5 against Beam's 80.1 self-reported, and 80.5 against Beam's 70.8 under Terminus 2.

It does not lead everywhere. On the same table, Beam scores 81.6 to Ripple's 76.5 on SWE-bench Verified, and 66.1 to 61.42 on SWE-bench Pro v1.0. Muse Spark Open leads DeepSWE 1.1 at 60.0 to 44.3 and MCP Atlas at 89.2 to 71.67. On SciCode, Ripple's 39.4 is the lowest of the five models.

The numbers also move between Ricursive's own documents. VentureBeat found the launch graphic giving Inkling 39.6 on SWE-bench Pro v2.0 Hard, where the card lists 2.0.

"Smaller" needs a footnote too. Beam has 501B total parameters but 23B active per token. Ripple is dense, so every token it generates goes through all 65B, on a Spark that Ricursive's launch page itself describes as low on memory bandwidth next to datacenter accelerators.

Three ways to run it, three context windows

Editorial illustration of one cream water tank feeding three pipes of very different widths: a wide pipe into a cloud, a medium pipe into a pair of server racks, a thin pipe into a small desktop box
Same weights, three routes. The context window you get depends on which one you take.

Route Hardware Context Requests at once
OpenRouter, served by GMICloud none 1,048,576, max output 131,072 provider-managed
Ricursive's server recipe (SGLang 0.5.19) 2× B200, Linux, CUDA 13 1,048,576 8 per port
Ricursive's DGX Spark script DGX Spark (GB10) 131,072 1

The OpenRouter row comes from its endpoint listing: BF16, $0.20 per million input tokens, $0.60 per million output, $0.05 for cached input, with tools and tool_choice supported. VentureBeat's article reported a 16,384-token limit there; the listing now shows the full window, so check it before you size a prompt. Together AI lists the model as coming soon.

The fastest way to try it is one OpenAI-style call:

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ricursiveai/ripple-65b-preview",
    "messages": [
      {"role": "user",
       "content": "Explain git rebase --onto with an example"}
    ],
    "max_tokens": 4096
  }'
Enter fullscreen mode Exit fullscreen mode

Give it room. Ricursive's server README says to allow enough output tokens for both the reasoning and the answer. On its own server, reasoning comes back in message.reasoning_content, separate from message.content.

The DGX Spark path, line by line

spark.py in the NVFP4 repo is short, and it tells you what local means here:

  • It checks for the Spark's GB10 GPU (compute capability 12.1) and raises an error on anything else.
  • It fixes the context at 131,072 tokens and runs one request at a time.
  • It wraps SGLang's engine inside your Python process. There is no HTTP server and no port, and complete() rejects streaming.
  • chat() defaults to max_tokens=256 and temperature=0.

Usage, from inside the repo's inference/local folder:

from spark import Spark

engine = Spark(
    "ricursiveAI/Ripple-65B-Preview-NVFP4",
    "ricursiveAI/Ripple-65B-Preview-DFlash2",
)
print(engine.chat("Find files over 100 MB", max_tokens=4096))
Enter fullscreen mode Exit fullscreen mode

A coding agent that expects an OpenAI-compatible endpoint won't find one on this path. You'd put your own server in front of it. I haven't run the script myself.

MacBooks? VentureBeat says Ricursive's social announcement names them, but the release doesn't pin down a laptop memory configuration, speed or usable context. The Hub already lists nine community quantizations, including MLX and GGUF builds, all from uploaders other than Ricursive. Ricursive's own cards don't mention them.

Running it next to the agent you already use

Several of the agentic scores on Ripple's card came from the OpenCode harness, and OpenCode can talk to OpenRouter through its provider config. That makes a fair test cheap: give one ticket to the agent you trust and the same ticket to OpenCode on Ripple, then compare the diffs.

I build Hermes IDE, so weigh this with that in mind. Hermes runs OpenCode next to Claude Code, Codex and other CLI agents, each in its own real terminal. ⌘N (Ctrl+Shift+N on Windows and Linux) starts each task on its own hermes/<name> branch and worktree, so the two attempts never touch each other's files. You set OpenRouter up as a provider in OpenCode itself; Hermes uses each agent's own sign-in and never asks for your tokens. Hermes is not affiliated with Ricursive, OpenRouter or any agent vendor.

The Hermes IDE 2.3.4 New task sheet with its agent picker open
The ⌘N New task sheet in Hermes 2.3.4 with the agent picker open: Claude Code and Codex installed, and OpenCode, Antigravity CLI and the other supported agents listed as not installed, plus Custom agent.

What to watch before you switch

The card calls this a Preview release, and the NVFP4 build is marked Experimental. Neither the release nor VentureBeat's coverage cites an independent Terminal-Bench run of the 65B model. Together's listing still says coming soon. Fireworks, which the launch page said would go live later on release day, had no confirmed rate in VentureBeat's report. And the community MLX and GGUF builds still have to prove themselves on real agent tasks.

If you own a Spark, measure tokens per second on spark.py with a prompt close to 128K before you plan local agent work around it.


If this was useful

A 128K local window still means choosing what the model sees. The RAG Pocket Guide covers that half: chunking, retrieval and reranking, so the files that matter land in the window and the rest stay out. If you want to race Ripple against your current agent on one repo, I build Hermes IDE for that: free, source-available (GitHub), on macOS, Windows and Linux.

RAG Pocket Guide: Retrieval, Chunking, and Reranking Patterns for Production

Top comments (0)