AI analysis12 min read

Your next coding agent could run on your Mac: meet Flint

Recursive's new local coding model combines 40B total parameters with a small active slice. Here is what changes for private repositories, hardware and real development work.

K
Ken Jo

Official Flint model mark identifying the local coding model discussed here

Official Flint model mark from Recursive's model repository, shown unchanged on neutral padding for editorial identification. It is not a screenshot of a running model or evidence of a benchmark result.

A coding assistant that works on your own machine changes a familiar question. Instead of asking whether a repository can be sent to an API, you can ask whether the machine on your desk can finish the change reliably. That is a useful shift, especially when the work involves private code, repeated experiments or an unreliable connection.

Recursive's Flint makes that proposition concrete. A day-zero vLLM announcement dated October 21, 2026 introduces support for the new coding model. Recursive describes a roughly 40-billion-parameter mixture-of-experts model with about 2.5 billion active parameters per token. Its optimized Mac runtime gives the release a route from model download to an actual coding harness.

Our take: Flint is interesting because the model, serving software and agent connection arrive together. The important purchase decision is still the whole workstation. “2.5B active” describes part of the computation; it does not mean a small-memory laptop can hold the complete model. This guide explains the hardware distinction, three useful starting jobs and a way to evaluate local coding without confusing fast text with a finished repair.

A local model becomes useful when it can work with your tools

Recursive is an AI research company developing the Eureka Machine, an automated research system. Flint is a public product of that effort, with downloadable weights and a dedicated inference engine called rec. For developers unfamiliar with the company, the practical starting point is straightforward: this is a text model intended to inspect code, propose changes and use tools through a coding application.

The distinction between a model and its harness matters. The model produces a response or requests a tool action. The surrounding program decides which files it can read, executes commands, returns results and presents changes to you. Installing a local model does not automatically give it a useful development workflow; connecting those pieces is part of the product experience.

Recursive's setup documentation lists local runtime options alongside coding applications, including Pi, OpenCode, Cline and OpenHands. That makes Flint more approachable than a release consisting only of a weight download. It also gives a team options: keep a familiar editor, use the suggested launcher, or serve the model separately.

The local inference boundary is valuable, but it is only one boundary. A harness can still invoke a package manager, contact a documentation website or run a deployment command if its permissions allow it. For a private repository, examine the model endpoint and the tools around it. A local inference server keeps inference local; an agent's other connections follow their own configuration.

Forty billion parameters still have to live somewhere

Mixture-of-experts models select a subset of their learned components for each token. That reduces the amount of model computation involved in generating a token compared with activating the entire network. It is similar to having a large workshop whose current job uses only some of its tools: the idle equipment still needs storage.

The Flint model card, checked October 23, specifies 39.8B total parameters, approximately 2.5B active per token, and text input and output. It lists a 262,144-token documented context configuration, shared by the prompt and generated output. These figures answer different questions, so a single “model size” label is not enough for planning.

A simple calculation makes the storage issue visible. At exactly four bits per parameter, 39.8 billion parameters contain about 19.9 GB of raw parameter bits in decimal units. At 16 bits, the same arithmetic gives 79.6 GB. These are illustrative lower-level calculations, not measured download sizes or complete RAM requirements: metadata, quantization scales, runtime allocations and the conversation cache add to the total.

Flint has distinct totals for stored parameters, active computation and growing conversation memory

Original infographic. Parameter-bit arithmetic is illustrative; active parameters do not specify total device memory. Runtime and context allocations are additional.

The distinction becomes more important as a conversation grows. Source files, instructions, tool definitions, command output and the model's own answers all consume context. A generous maximum lets a session carry more material, but it does not guarantee equal quality at every length or make long prompts free to process. Keeping a task focused remains a useful engineering choice.

Recursive's current rec requirements specify an M4 Pro, M5 Pro or M5 Max Mac, at least 48 GB of unified memory and about 30 GB of free disk space. Those are requirements for that optimized runtime path, not a promise for every Apple Silicon machine. Owners of smaller machines should inspect the requirements of another supported runtime rather than interpreting the active-parameter figure as compatibility advice.

Speed numbers need a device and a context length

Recursive's launch page reports more than 125 generated tokens per second on an M4 Pro MacBook Pro at short contexts using its optimized engine. That is the company's reported inference result. The page also presents coding evaluations, but neither a throughput claim nor a benchmark position predicts how quickly your application test suite will run. Recursive's launch announcement.

The vLLM launch article describes a different environment: a single GB200, batch-one decoding and a 100K-token context. It reports about 485 tokens per second end to end in that setup. A server GPU result and a laptop result should not occupy the same comparison row without their conditions; the hardware and inference stack are doing consequential work.

There is another distinction between generating a token and finishing a task. A model can generate more reasoning, call tools more often or choose a repair that requires another attempt. Faster output helps when generation is the bottleneck. It helps less when the longest step is a ten-minute integration test or a sequence of mistaken edits.

For an everyday evaluation, measure elapsed time until a reviewed change passes the right checks. Record how much human correction it required and whether it disturbed unrelated behavior. Token speed remains useful diagnostic information, but the result you wanted was a correct patch. A fast assistant that repeatedly takes the wrong route can consume more of the afternoon.

DecisionUseful evidenceWhat it does not settle
Can the device run the model?Supported chip, memory, runtime and checkpointWhether a particular codebase fits comfortably
Does generation feel responsive?Throughput at a stated context and hardware setupTotal time spent in tools and tests
Can it repair this class of issue?Reviewed task results with a reproducible checkReliability on unfamiliar task categories
Does the workflow meet privacy needs?Actual endpoints and tool permissionsEvery action a permissive harness can perform

Begin with a bounded repair rather than an entire migration

The first useful scenario is an ordinary bug in a repository you already understand. Imagine a parser that mishandles an empty input. Ask Flint to identify the owning function, explain its current behavior and add a regression test before changing the implementation. This is an illustrative trial, not a report of our own execution.

That task gives the assistant a small, observable finish line. The expected behavior is explicit, the relevant files are limited, and a reviewer can tell whether the test exercises the failure. If the model wanders into broad cleanup, you can recognize the deviation before it becomes a large patch. Local generation makes iteration available without a per-request API bill, but the constraint still improves the work.

A second scenario is learning a private module. Ask for a map of the request path with file references, then verify a few of those references yourself. Follow with a narrow request such as adding one missing validation rule. The value is a conversation grounded in the actual repository, rather than a generic explanation detached from its contracts.

A third scenario is routine test maintenance. A team can try Flint on a set of already understood failures or small test gaps, keeping the expected outcomes hidden until review. Include a task where the correct answer is that the current behavior is intentional. An assistant's ability to refrain from unnecessary edits is part of development quality, even when it is less dramatic than a large generated feature.

These cases deliberately differ in their outputs: a repair, an explanation and a test decision. Success in one should guide the next experiment, rather than becoming evidence that every development activity can move to the same local model.

A supported Mac has a short route to the first task

The following sequence uses the published rec workflow, checked October 23. It assumes a supported Mac and a repository you are authorized to inspect. The commands are setup instructions for readers; they are not evidence that we installed or ran the model.

  1. Confirm the chip, free storage and memory against the current requirements. Start in a disposable branch or copy of a familiar project so the first experiment is easy to review.
  2. Open the official rec repository, inspect its installation instructions and installer, then follow the documented installation path. The first model download needs a network connection even if later inference is local.
  3. Check the installation, then launch the suggested harness from the project directory:
BashRun in Terminal
rec doctor
rec launch pi

  1. Give it one concrete task with expected behavior, relevant scope and a verification command. For example: explain why an empty-input test fails, add a focused regression and change only the function that owns that behavior.
  2. Review the diff and actual test output. When finished, check the server state and stop the runtime if it should no longer occupy memory:
BashRun in Terminal
rec status
rec stop

The launcher's convenience is worth understanding. Recursive documents that the model server can remain running after the harness or terminal closes. Stopping the interactive session and releasing the local model are separate actions. That matters on a machine also being used for builds, a browser and other daily applications.

Keep the generation configuration with the result

The generation-settings guide recommends starting with temperature 1.0, top-p 0.95 and top-k 20. It also explains that reasoning consumes the output budget. When a response stops because the limit was reached, the unfinished answer is a different problem from an incorrect completed answer.

Use the launcher's bundled configuration for the first evaluation. If you later switch to another runtime or precision, record the change alongside the result. Otherwise, an apparent model regression can actually come from a mismatched chat template, a truncated response or a tool parser that does not understand the generated format.

The vLLM article documents GLM-4.7-style tool and reasoning parsers for that serving path. That is a concrete example of why a model appearing in a dropdown is not the whole integration. The application must preserve the relevant conversation structure and execute intended tool calls correctly. A healthy chat response alone does not demonstrate functioning file edits.

A useful Flint evaluation follows the task through generation, tools, tests and human review

Original conceptual workflow. The final check is a reviewed task outcome; the diagram does not represent measured performance or a completed installation.

An evaluation note can remain small: checkpoint revision, runtime version, hardware, context setting, task, elapsed time, test result and reviewer corrections. Repeating the same bounded tasks after an update is more informative than comparing two sessions whose settings and goals both changed. Keep failed attempts in that record, because their recovery cost affects whether the tool is useful.

Local inference changes the bill, not the existence of a cost

Avoiding an inference API fee can be attractive for repeated work on hardware you already own. A team that frequently asks an assistant to explain code or generate small tests may prefer predictable local capacity. The comparison still includes the time spent installing, maintaining and reviewing the system, along with the opportunity cost of the machine's memory.

Buying a new high-memory laptop solely for one release is a different calculation from trying a model on an existing supported machine. Estimate the actual workload before treating hardware as a saving. Include tasks where a larger hosted model completes work with fewer corrections; a local-and-hosted split can be sensible when different jobs benefit from different tools.

Concurrency deserves attention too. The current rec documentation says its engine handles one generation at a time, with overlapping requests able to receive HTTP 429. A useful single-developer experience therefore does not imply a shared team server with the same behavior. Serving several agents introduces a different workload and may call for another runtime.

The promising development is that local coding is becoming a complete workflow choice. Flint's small active computation, accessible weights and purpose-built runtime attack different parts of that problem. What should come next is broader evidence about completed repairs on ordinary projects, stable runtime support and clear behavior under long sessions. Those are the improvements that turn an impressive demo into a dependable daily tool.

The workstation is becoming part of the coding assistant

Flint asks developers to evaluate more than a model score. Your memory capacity, tool permissions, harness and review habits become part of the assistant you actually experience. That is a demanding proposition, but also an empowering one: the development loop can be inspected and shaped on a machine you control.

Start with a task whose outcome you can judge. If the local loop repeatedly produces a good change with manageable review, you have found a useful tool. The stronger claim—that it should handle the next, harder category of work—can wait for the next piece of evidence.


Sources

Keep the reasoning behind a technical decision

If you want a separate workspace for source links and your reviewed technical notes, Telli.sh is one option. Open your notes workspace.


← Back to Blog