mrkeyoor.com_
Tue 01 Sept 17:42 UTC
LLM Toolsevaluationupdated 26 Aug 2026

d-inference review

Darkbloom is a public-alpha network that routes OpenAI- and Anthropic-compatible inference requests to Apple Silicon Macs owned by independent providers. It encrypts traffic between a coordinator and attested provider processes, while the coordinator still handles plaintext transiently inside confidential-VM memory for routing and billing.

+69stars / 7d
Verdict

Our Darkbloom build passed in 78 seconds, but 3 of 37 Go package results failed in 128 seconds, all in end-to-end coverage, which matches the project's public-alpha warning. Test it if you want to study attested inference on idle Macs or self-route to your own Apple Silicon machine. Do not send production or highly sensitive prompts until the unaudited design, coordinator plaintext boundary, provider admission, and failing integration paths meet your own review.

We ran it

Lab card: what happened when we ran d-inferenceScreenshot of d-inference (darkbloom.dev)
Install✓ · 69s463 packages
Build✓ · 78s
Tests✗ · 128s34 passed · 3 failed of 37 (go test)
Repo5386 files~1,304,982 lines of source · 84.5 MB · 8 CI workflows

Answers from our run

Does d-inference build from source?

Dependencies installed in 69 seconds (463 packages), and the build succeeded in 78 seconds. We cloned commit b66ee30 into a clean Debian container with 3 CPUs and no project-specific setup.

Do d-inference's tests pass?

Not all of them: 34 of 37 passed and 3 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use d-inference?

Production workloads: the README says Darkbloom is unaudited, has breaking changes and downtime, and should be used only for testing.

What are the alternatives to d-inference?

Ollama, MLX LM, exo. Our Darkbloom build passed in 78 seconds, but 3 of 37 Go package results failed in 128 seconds, all in end-to-end coverage, which matches the project's public-alpha warning.

Setup2/5Build passed; 3 end-to-end package results failed
Docs5/5Threat boundary, APIs, hardware, routing, and alpha limits are explicit
Community3/5414 stars with same-day releases and a large active issue queue
Maturity1/5Unaudited public alpha explicitly limited to testing

Who it’s for

Developers testing private model inference behind familiar OpenAI or Anthropic client interfaces.
Apple Silicon owners willing to run an alpha provider for self-routing or revenue.
Security teams prepared to examine encryption, attestation, coordinator trust, and endpoint headers themselves.
Experimenters who can tolerate breaking interfaces, downtime, and failed integration tests.

Who it’s NOT for

Production workloads: the README says Darkbloom is unaudited, has breaking changes and downtime, and should be used only for testing.
Users requiring a coordinator that never sees plaintext: the documented design decrypts it transiently inside confidential-VM memory.
Anyone requiring open-source licensing: the public repository is proprietary and all rights are reserved.
Provider operators without Apple Silicon, macOS 14, at least 8 GB memory, and 50 GB free disk; startup rejects machines below the memory floor.

Setup reality

Our sandbox installed 463 Go packages in 69 seconds and built successfully in 78 seconds. Tests failed with exit code 1 after 128 seconds: 34 package results passed and 3 failed out of 37. All 3 named failures were in the e2e package and covered Swift routing gates, referral rewards, and a single-provider profile.

Consumers need a Darkbloom API key or Privy session token, plus funded usage for paid routes. Providers need an Apple Silicon Mac, account login, outbound HTTPS, model storage, and optional MDM enrollment for hardware trust. Payments use Stripe, and provider payouts use Stripe Connect.

The repository combines a Go coordinator, Swift provider, Next.js console, and end-to-end harness. Direct mode can skip the coordinator on a reachable Mac. Public network use still depends on the hosted coordinator, attestation services, model distribution, billing, and provider availability.

Darkbloom sells inference from idle Apple Silicon Macs

Darkbloom connects API consumers to independent providers running models on Apple Silicon. Consumers use OpenAI-compatible chat, Responses, and completion endpoints or the Anthropic Messages shape. A Go coordinator authenticates, routes, bills, and relays requests. Providers maintain an outbound WebSocket connection, so they do not open an inbound port, then run MLX inference inside a hardened Swift process.

The proposition is unusual: spare Macs become paid inference nodes, while their owners should not be able to read prompts or responses. During public alpha the platform fee is 0 percent, and self-routing to a machine owned by the caller is free. Those commercial terms can change. More importantly, the README calls the project unaudited, warns of downtime and breaking changes, and says it is for testing rather than production.

The coordinator sees plaintext inside protected memory

A consumer reaches the coordinator over TLS and can optionally seal the request to its X25519 key. The coordinator decrypts inside a confidential VM for routing and billing, then re-encrypts the payload to an attested provider key with NaCl Box. Encrypted response chunks travel back through the coordinator. The documentation correctly avoids claiming that the coordinator never sees plaintext: it says exposure is transient inside hardware-encrypted VM memory and content is neither logged nor retained.

Provider protection combines in-process MLX inference, Hardened Runtime, SIP, debugger denial, Secure Enclave keys, MDM checks, Apple Managed Device Attestation, and APNs code-identity verification. Consumers receive headers describing trust, attestation, encryption, chip, and Secure Enclave status. These are architectural claims from the project, not an independent audit. Physical custody, coordinator software, Apple services, admission logic, and signed releases all remain in the trust chain.

What happened when we ran it

Our sandbox installed 463 Go packages in 69 seconds and built commit b66ee30 successfully in 78 seconds. The repository had 5,386 files, about 1,304,982 source lines, and occupied 84.5 MB. Eight CI workflow files were present; our scan found no Dockerfile and no top-level tests directory. The tree combines Go, Swift, TypeScript, shell scripts, documentation, and system-level test code.

The Go test command failed with exit code 1 after 128 seconds. It reported 34 passing package results and 3 failures out of 37. The failed names were TestIntegration_SwiftProviderRealRoutingGates, TestIntegration_ReferralRewardDistribution, and TestProfile_SingleProviderNonStreaming, all under the e2e package. Supporting testbed, assertion, and profile packages shown in the tail passed.

The excerpt does not include assertion messages, so it cannot establish whether the cause was environment, configuration, or code. A missing Dockerfile or tests directory also explains nothing about those failures. The fair conclusion is narrower: the Go build worked in a fresh 3-CPU, 8 GB Debian container without secrets, but this commit did not pass its complete detected test command.

Running a provider requires Apple hardware and external trust services

The minimum provider is an M1-or-newer Mac on macOS 14 with 8 GB of memory and 50 GB free disk. Startup rejects less than 8 GB, and the README recommends 32 GB or more for larger or multiple models. Models load only when weights plus roughly 2 GB of headroom fit after the operating-system reserve. Provider traffic needs outbound HTTPS on port 443.

The installer claims no prerequisites or sudo, then verifies release hashes and the Apple Developer ID signature, provisions a Secure Enclave helper, and offers MDM enrollment for hardware trust. Providers log in through a device-code flow. Stripe handles consumer deposits and Stripe Connect handles payouts. That is far more infrastructure than running MLX locally, and each external service can affect whether a healthy Mac is admitted or paid.

Current reports show that boundary is still moving. Issue 692 describes a Secure Enclave challenge sweep leaving a responsive provider unroutable for about 40 minutes until manual reconnection. Issue 744 reports a fully secured M5 Max remaining at self_signed after restart despite MDM responses. Issue 725 reports packaged safe-R1 kernels unavailable during installation. These reports fit the alpha label and deserve reproduction on candidate hardware.

Direct mode removes the marketplace from a local request

A provider can set a self-route header so the coordinator chooses only a machine owned by the same account. The request stays free, retains the encrypted relay, and fails explicitly if that Mac cannot serve it. A preference mode tries the owned machine first and falls back to the paid fleet. This is useful when one client should keep a familiar hosted endpoint but favor its own hardware.

Direct mode goes further. darkbloom start --local exposes an OpenAI-compatible endpoint on the reachable Mac and skips the coordinator, so it can work offline and keep bytes on the local network. For a single owner, that path removes billing and the coordinator plaintext boundary. Ollama or MLX LM remains simpler if attestation, marketplace compatibility, and the Darkbloom console are unnecessary.

Version 0.8.13 is moving too quickly for production trust

GitHub recorded 414 stars, 269 combined open issues and pull requests, and a last push on August 26, 2026. Provider v0.8.13 shipped the same day with signed and notarized macOS 14 artifacts. Its changes adjusted an earnings calculation, hid hardware serial numbers from public views, and fixed media handling for Qwen. The large combined queue is not a bug count, but active attestation and routing reports are directly relevant.

The repository is public, yet its README says the software is proprietary with all rights reserved. That alone rules it out for buyers who require open-source rights. Darkbloom documents its privacy boundary more carefully than many inference services, which makes it interesting to study. A clean security audit, stable provider admission, passing end-to-end tests, and production support would all be needed before that interesting design becomes a sensible home for sensitive workloads.

Alternatives

ProjectWhat it isPick it when
Ollama gh↗A local model runner with a simple API and downloadable model catalog.pick this instead when inference should stay on hardware you control and marketplace routing or provider payments add no value.
MLX LMApple's utilities for running and fine-tuning language models directly on Apple Silicon with MLX.pick this instead when one Mac should run models locally without a coordinator, attestation chain, or network marketplace.
exo gh↗A distributed inference project that combines local devices into a model compute cluster.pick this instead when you own several devices and want to pool them rather than buy inference from unrelated providers.
vLLM gh↗A high-throughput server for operating language models on your own accelerator infrastructure.pick this instead when predictable server ownership and throughput matter more than Apple-provider decentralization.

What people are saying

  1. [github-trending] Layr-Labs/d-inference

Sources

  1. Darkbloom README
  2. Darkbloom provider v0.8.13 release
  3. Darkbloom issue 692
  4. Darkbloom issue 744

More llm tools reviews

rig · open-knowledge · graphiti · cve-mcp-server · minimind · SillyTavern · the whole board →