Software Mirrors
ProductsBlogs
TensorFold v1.2.9

TensorFold v1.2.9

TensorFold is an open-source local AI inference engine for running large language models on Apple Silicon and NVIDIA GPUs. Built in Zig, it supports Metal and CUDA acceleration, OpenAI-compatible and Anthropic APIs, model downloads, concurrent requests, and a desktop workspace for managing local models and AI coding agents.
(4.6)

Developer

Ash Hart

Category

Developer Tools

Operating System

macOS / Linux

Date Published

Sun Nov 15 2026

Review TensorFold v1.2.9

TensorFold is an open-source local AI inference engine designed to run large language models directly on personal computers and GPU servers. Developed primarily in Zig, it provides native GPU execution through Metal on Apple Silicon and CUDA on NVIDIA hardware, without requiring a Python or MLX installation to serve models.

Unlike tools that simply wrap existing inference frameworks, TensorFold implements its own model execution and GPU kernels. It also provides an API server compatible with popular AI clients, making it possible to use locally hosted models with applications designed for OpenAI or Anthropic services.

The project goes beyond basic model inference by including a desktop workspace, web interface, model management tools, and experimental capabilities for modifying model weights while running.

Features

Native Local LLM Inference

TensorFold runs language models directly on supported hardware using native GPU backends.

Its main advantages include:

The engine is designed to make local inference more accessible without requiring users to maintain a complicated Python-based machine learning environment.

Hardware support varies by backend and model architecture. Not every model is compatible with every GPU, so users should consult the project's model compatibility information before downloading large checkpoints.

Model Management

TensorFold includes commands for downloading and managing models from Hugging Face and other supported sources.

For example, users can download a model and start an inference server with:

tensorfold pull mlx-community/Qwen3.5-2B-MLX-4bit
tensorfold serve mlx-community/Qwen3.5-2B-MLX-4bit --name local-model

The application also supports existing local checkpoint directories and models already present in the Hugging Face cache.

Model configuration options include context length, maximum output tokens, temperature, sampling parameters, and reasoning settings. This provides flexibility when adapting a model for coding, chat, document processing, or other workloads.

An important consideration is that model weights have their own licenses. TensorFold's Apache 2.0 license does not automatically grant permission to use every model distributed through external repositories.

OpenAI and Anthropic-Compatible API

One of TensorFold's most useful features is its local API server.

It supports several popular API formats, including:

This allows compatible applications to communicate with locally hosted models instead of relying on cloud AI providers.

For example, after starting the server, users can test it with:

curl http://127.0.0.1:8080/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "local-model",
    "messages": [
      {
        "role": "user",
        "content": "Explain how local LLM inference works."
      }
    ],
    "max_tokens": 256
  }'

The default server address is 127.0.0.1:8080. Authentication options are available for deployments that need API access control.

This compatibility makes TensorFold useful for integrating local models with coding assistants, chat interfaces, and other applications that already support standard AI APIs.

Concurrent Requests and Performance Controls

TensorFold includes controls for managing inference workloads and available GPU memory.

Its serving configuration supports:

The automatic parallelism option attempts to determine how many requests can run concurrently based on available resources. Explicit concurrency limits are also supported.

Prompt caching can reduce repeated processing when conversations share common prefixes. Additional options allow users to control memory allocation and retained prompt data.

These features are particularly useful when operating a local inference server for multiple applications or users.

TensorFold Desktop Workspace

TensorFold also provides a desktop application for managing local AI workloads.

The workspace combines several functions:

This provides a more approachable interface for users who prefer graphical applications over terminal-based workflows.

The macOS desktop application is distributed as an Apple Silicon beta. Its mobile clients remain preview software, so users should not expect the same maturity as the native inference engine.

TensorFold Web

For users who prefer a browser interface, TensorFold includes a local web application.

It provides a graphical environment for selecting models, running inference, and chatting with locally hosted models.

The web interface complements the command-line server and desktop application, giving users another way to interact with their local AI environment.

AI Coding Workers

TensorFold's desktop workspace also includes coding workers designed to assist with development tasks.

This extends the application beyond conventional chat-based inference. Users can manage coding-oriented workflows alongside their local models and documents.

The desktop workspace is still evolving, so its agent functionality should be evaluated separately from the more established inference engine.

Living Weights

One of TensorFold's more experimental capabilities is Living Weights.

Instead of keeping newly learned information exclusively in an external database or conversation history, this feature attempts to write selected facts directly into a model's checkpoint files.

Users can provide information through a dedicated API endpoint, and TensorFold processes the material as lessons that modify the model's weights.

The project also provides a 3D visualization interface showing learned facts and their associated model components.

However, Living Weights is explicitly experimental. The project documents limitations involving interference between related facts, declining recall after learning multiple facts, and reduced decoding performance on some hardware.

It is an interesting research feature, but it should not be considered a replacement for established retrieval-augmented generation systems or a reliable persistent memory solution.

Download TensorFold v1.2.9 - Software Mirrors

TensorFold v1.2.9 for macOS

tensorfold-engine-1.2.9-darwin-arm64-metal.tar.gz | 7.02 MB

tensorfold-1.2.9-macos-arm64.tar.gz | 7.04 MB

TensorFold v1.2.9 for Linux

tensorfold-1.2.9-linux-x86_64.tar.gz | 48.68 MB

tensorfold-1.2.9-linux-aarch64.tar.gz | 48.22 MB

TensorFold v1.2.9 Source Code

TensorFold v1.2.9 Source code (zip)

TensorFold v1.2.9 Source code (tar.gz)

TensorFold v1.2.9 Release Notes:

TensorFold 1.2.9

1.2.9 brings faster decode and long prompts, an Ollama-compatible API, and fixes for a wrong reply and a hang. Every speedup below keeps replies unchanged.

Speed

  • Nemotron on Metal (without an MTP head): concurrent streams share one round. On an M5 Ultra, two streams decode

about 20% faster, four about 75%, eight 2.3 to 2.5 times and 24 streams 3.2 to 3.5 times (#3005).

  • GLM-5.3-Flash on CUDA:

  • Long prompts' first token comes 0.6% to 13.7% sooner at TP=3 from 131,072 to 2,000,000 tokens, and 6.7% sooner at

-- TP=2 at 1,000,000; shorter prompts at TP=2 stay within about 2% either way (#3159).

  • After a 1,040,384-token prompt, decode rounds are 5.05%, 9.36% and 11.36% shorter at 1, 4 and 8 streams (#2722).

  • Qwen3.8-Flash-Next on HIP (gfx1151): one stream decodes about 6% faster, four streams 2.8% to 4.6% (#2697).

  • Fewer CUDA launches for Flash Next draws (#2927), Nemotron 3.5 draws (15 a level instead of about 112, #3124) and

Qwen3.8-27B prompts (#2925).

Models and features

  • An Ollama-compatible API: /api/chat, /api/generate, /api/embed, /api/tags, /api/show, /api/ps and

/api/version on the same engine paths as the OpenAI routes (#3342).

  • tensorfold serve --config FILE.toml reads serve flags from a file, so a launch can be checked in (#2885).

  • Linux: an opt-in memory-pressure governor driven by PSI, TENSORFOLD_MEMORY_PRESSURE=1 (#2156).

  • Groundwork, not used by any served model yet: a CUDA image path for the dense engine (#2768), dots.mocr's vision

kernels (#2767), and HIP's TCP fabric for two hosts without RDMA (#2961).

  • An experimental Living Weights v2 controller in tools/living_weights_v2 (#3320).

Server and API

  • /v1/models lists each model's input_types. A video sent to a model without video is a 400, not a 500 (#3019).

  • Logprobs work with tools, stop strings and reasoning, and on the Responses API (#3206).

  • With thinking off, a request's reasoning effort reaches the template (#3017).

  • Replies say when they kept a tool call as text, in tensorfold.kept_tool_calls and two /metrics counters (#2814).

  • Streams can carry the committed token IDs, opt-in (#3285).

Fixes

  • Nemotron Omni on CUDA: a failed image request no longer leaks into the next reply (#2985).

  • GLM-5.3-Flash at TP=3: prompt_logprobs over about 100 tokens no longer hangs (#1571).

  • Living Weights: the drift gate no longer refuses a lesson over the writer's own wording (#2929).

  • CUDA: the release server refuses a GPU it has no kernels for, by name, at startup (#2914).

For developers

  • zig build test-host gathers the Linux host checks (#2095); flaky tests fixed (#2963, #3015, #3310, #3347, #3349,

#3355); docs for TF_GLM_PROF (#2990) and a Jammed XSFP4 NZ5 row (#2981).

What changes by default

  • GLM on CUDA: the TF_GLM_INDEX_CUDA kernels and TF_GLM_DSEL are on by default.

  • Flash Next on CUDA: sampled draws are batched by default; TF_FLASHNEXT_BATCH_DRAWS=0 restores per-stream draws.

  • Flash Next on HIP: on one RDNA 3.5 GPU (gfx1150 to gfx1153) serving alone, MTP drafts stop under a 0.8

confidence floor; other HIP GPUs and families keep 0.3, and --mtp-confidence still overrides it.

  • Server: --reasoning-effort no longer changes a thinking-off prompt.

  • Server: a video_url part sent to a model without video gets HTTP 400 (invalid_request_error), not a 500.

  • CUDA: the release server refuses, by name at startup, a GPU it has no kernels for.

The first three keep replies unchanged. The fourth changes the prompt of a thinking-off request when the server sets --reasoning-effort. The last two turn a failure into a named refusal.

Thanks

@Bizuayeu, @Defilan, @garvrao80, @gilby, @jimthedj65, @jishnuvenugopal, @laudney, Mia's AI Lab (@MiaAI-Lab), @Nipale-ai, @Shoestring-dev, @ss-cong, @tarsnake and @WebReflection.

Performance and Compatibility

TensorFold is built with Zig and uses native GPU execution rather than depending on a Python-based inference stack for its serving engine.

This architecture reduces the number of runtime dependencies and gives the project direct control over model execution, memory management, and GPU kernels.

Performance depends on the model architecture, quantization format, GPU memory, context length, and available hardware acceleration.

Apple Silicon: TensorFold uses Metal for GPU execution on supported Apple Silicon Macs. Unified memory can be useful when running larger models, although the available memory must accommodate model weights, context data, and concurrent requests.

NVIDIA GPUs: The Linux release supports CUDA-based inference. Its documented Linux release requirements include an NVIDIA driver version R580 or newer and CUDA 13.0 compatibility. Supported GPU architectures and model combinations vary.

AMD GPUs: Native HIP support is available for selected hardware and models. The project documents specific qualification results rather than guaranteeing compatibility with every AMD graphics card.

The project also advertises Vulkan support, but users should verify the actual backend and model compatibility for their target hardware rather than assuming every advertised backend supports every model.

TensorFold supports Linux and macOS for its documented native workflows, with additional Windows support through its native Windows build documentation.

System Requirements

macOS

Linux

Windows

There is no universal minimum RAM requirement because memory consumption depends heavily on the model, quantization, context size, and concurrency settings.

Pros and Cons

Pros

Cons

How to Install

macOS

The recommended installation method for Apple Silicon is Homebrew:

brew install ashhart/tensorfold/tensorfold

Download a model and start the server:

tensorfold pull mlx-community/Qwen3.5-2B-MLX-4bit

tensorfold serve mlx-community/Qwen3.5-2B-MLX-4bit \
  --name local-model \
  --context 8192 \
  --no-thinking

Linux with NVIDIA GPU

Download the appropriate release archive for your CPU architecture. The project provides separate archives for x86_64 and ARM64 systems.

For example:

V=1.2.8

curl -fLO "https://github.com/ashhart/TensorFold/releases/download/v$V/tensorfold-$V-linux-x86_64.tar.gz"

tar -xzf "tensorfold-$V-linux-x86_64.tar.gz"

export PATH="$PWD/tensorfold-$V-linux-x86_64/bin:$PATH"

Download a compatible model and start inference:

tensorfold pull mlx-community/Qwen3.5-2B-MLX-4bit

tensorfold serve mlx-community/Qwen3.5-2B-MLX-4bit \
  --name local-model \
  --context 8192 \
  --no-thinking

Check the latest release instructions before installation because package names, supported architectures, and hardware requirements can change.

Verify the Installation

After starting the server, open another terminal and test the API:

curl -fsS http://127.0.0.1:8080/v1/models

The command should return the models currently available through the running server.

For additional options, use:

tensorfold --help
tensorfold capabilities --json
tensorfold serve --help

Final Verdict

TensorFold is an ambitious local AI inference project that combines a native Zig engine, GPU acceleration, model management, and API compatibility in one ecosystem. Its ability to serve local language models without requiring Python or MLX is a major advantage for users who want a more self-contained inference environment.

The OpenAI and Anthropic-compatible APIs make it practical for integrating local models with existing applications, while its desktop and web interfaces provide alternatives to command-line operation. Advanced features such as prompt caching, concurrency controls, and memory diagnostics also make it interesting for more demanding inference workloads.

Its main limitation is hardware and model compatibility. Users must verify that their GPU, driver, and chosen checkpoint are supported before expecting good results. The desktop application and Living Weights feature also have different maturity levels from the core inference engine.

Overall, TensorFold is a promising choice for developers and enthusiasts who want to run local LLMs with native GPU acceleration and a flexible API server.

Sources


Comments on TensorFold v1.2.9