antirez/ds4Public

DeepSeek 4 Flash and PRO local inference engine for Metal, CUDA and ROCm

AI summary: A minimalist, experimental DeepSeek V4 inference engine written in C.

Stars
23.3K
+474 today
Forks
2.2K
Watchers
176
Open issues
272
Open PRs
447
Contributors
~63
Commits
797
Branches
6

CMITCreated May 6, 2026Last push 14d ago+611 stars this week+1.2K this month

Quick answers

What is ds4?
A minimalist, experimental DeepSeek V4 inference engine written in C.
What does ds4 do?
DS4 is an experimental inference engine specifically designed for running DeepSeek V4 language models. Written in raw C by the creator of Redis, it prioritizes extreme minimalism, raw performance, and zero dependencies. The project explores optimized memory management and low-level matrix multiplication techniques required to run large mixture-of-experts (MoE) models efficiently. By discarding complex frameworks in favor of foundational code, it achieves incredibly fast token generation times. It serves as both a functional inference tool and an educational codebase for understanding the low-level mechanics of modern LLMs.
Who is ds4 for?
DS4 is targeted at systems engineers, AI researchers, and developers requiring extreme performance or embedded inference. It requires deep knowledge of C and matrix mathematics to modify.
How do I get started with ds4?
make && ./ds4-server
How popular is ds4 on GitHub?
antirez/ds4 has 23,316 stars and 2,240 forks on GitHub, and gained 611 stars in the last 7 days.
What license does ds4 use?
antirez/ds4 is released under the MIT license.

Star history

since Jul 28, 2026
010K20KJul 2026Aug 2026Sep 2026Oct 2026
23.3K stars as of Oct 4, 2026. Measured daily since Jul 28, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 9 commits2026-05-08: 3 commits2026-05-09: 11 commits2026-05-10: 8 commits2026-05-11: 13 commits2026-05-12: 23 commits2026-05-13: 11 commits2026-05-14: 15 commits2026-05-15: 10 commits2026-05-16: 12 commits2026-05-17: 4 commits2026-05-18: 3 commits2026-05-19: 2 commits2026-05-20: 21 commits2026-05-21: 2 commits2026-05-22: 0 commits2026-05-23: 26 commits2026-05-24: 22 commits2026-05-25: 10 commits2026-05-26: 2 commits2026-05-27: 5 commits2026-05-28: 4 commits2026-05-29: 8 commits2026-05-30: 8 commits2026-05-31: 3 commits2026-06-01: 2 commits2026-06-02: 2 commits2026-06-03: 0 commits2026-06-04: 2 commits2026-06-05: 6 commits2026-06-06: 7 commits2026-06-07: 9 commits2026-06-08: 9 commits2026-06-09: 4 commits2026-06-10: 2 commits2026-06-11: 2 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 5 commits2026-06-15: 2 commits2026-06-16: 5 commits2026-06-17: 1 commit2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 5 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 10 commits2026-07-19: 0 commits2026-07-20: 5 commits2026-07-21: 0 commits2026-07-22: 9 commits2026-07-23: 1 commit2026-07-24: 0 commits2026-07-25: 9 commits2026-07-26: 23 commits2026-07-27: 4 commits2026-07-28: 6 commits2026-07-29: 1 commit2026-07-30: 0 commits2026-07-31: 6 commits2026-08-01: 4 commits2026-08-02: 19 commits2026-08-03: 10 commits2026-08-04: 17 commits2026-08-05: 5 commits2026-08-06: 0 commits2026-08-07: 10 commits2026-08-08: 6 commits2026-08-09: 19 commits2026-08-10: 2 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 1 commit2026-08-15: 1 commit2026-08-16: 6 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 1 commit2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 1 commit2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 37 commits2026-08-28: 14 commits2026-08-29: 18 commits2026-08-30: 8 commits2026-08-31: 11 commits2026-09-01: 13 commits2026-09-02: 17 commits2026-09-03: 1 commit2026-09-04: 5 commits2026-09-05: 18 commits2026-09-06: 44 commits2026-09-07: 3 commits2026-09-08: 4 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 2 commits2026-09-13: 2 commits2026-09-14: 17 commits2026-09-15: 22 commits2026-09-16: 16 commits2026-09-17: 1 commit2026-09-18: 9 commits2026-09-19: 2 commits2026-09-20: 2 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits
740 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    23,316 stars

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    6 trending appearances

What ds4 does

DS4 is an experimental inference engine specifically designed for running DeepSeek V4 language models. Written in raw C by the creator of Redis, it prioritizes extreme minimalism, raw performance, and zero dependencies. The project explores optimized memory management and low-level matrix multiplication techniques required to run large mixture-of-experts (MoE) models efficiently. By discarding complex frameworks in favor of foundational code, it achieves incredibly fast token generation times. It serves as both a functional inference tool and an educational codebase for understanding the low-level mechanics of modern LLMs.

DS4 is targeted at systems engineers, AI researchers, and developers requiring extreme performance or embedded inference. It requires deep knowledge of C and matrix mathematics to modify.

  • Zero Dependency Architecture: Written in pure C without relying on massive external machine learning frameworks.
  • Optimized MoE Routing: Implements highly efficient routing algorithms specifically tailored for DeepSeek's mixture-of-experts architecture.
  • Low-Level Memory Management: Utilizes custom memory allocation strategies to handle massive model weights efficiently.
  • Fast Token Generation: Focuses on raw mathematical performance to maximize token output speed on supported hardware.
  • Educational Codebase: Provides clear, minimalist C code that demystifies the inference process for advanced language models.

Where teams use it

Bare-Metal Inference

Researchers running DeepSeek models on constrained hardware where installing massive Python frameworks is impossible.

Performance Benchmarking

Engineers using the minimalist engine to establish baseline performance metrics for DeepSeek V4 models.

Educational Study

Systems developers studying the repository to understand how mixture-of-experts routing works at the C level.

Embedded Integrations

Developers compiling the lightweight C engine directly into native applications requiring local LLM inference.

Getting started: make && ./ds4-server

README

main branch

DwarfStar logo

DwarfStar aims to be the best way to run a few excellent large language models on consumer hardware (that is, hardware that people can actually own). To reach this goal, we are building a small native inference engine optimized first for DeepSeek V4 Flash (including the experimental vision model), DeepSeek V4.1 Flash (Metal, and text inference on CUDA), and additionally GLM 5.2 and 5.3, GLM 5.3 Flash and DeepSeek V4 PRO, and Qwen3.8 Flash Next (Metal and CUDA). The code is self-contained and deliberately narrow, not a general GGUF runner: you need to use the GGUF files the project produces, that are part of the project itself.

We test things in integration: model loading, prompt rendering, tool calls, KV state, the HTTP server, and the coding agent are built and tested together. The repository also includes tools and data for GGUF, imatrix, quality, and speed.

Supported hardware

  • Metal, the primary target, on Macs with 96 GB or more. Smaller machines can use SSD streaming. SSD streaming is also needed in order to run very large models such as full GLM 5.x (not Flash) on 128GB systems.
  • NVIDIA CUDA, the DGX Spark is our main gaol. DwarfStar also supports multi-GPU systems that are not supported by other backends, for instance it can run DeepSeek v4 Flash on Ada Lovelace cards.
  • ROCm on Strix Halo systems such as the Framework Desktop.

This project would not exist without llama.cpp and GGML, make sure to read the acknowledgements section, a big thank you to Georgi Gerganov and all the other contributors.

Model support is intentionally opportunistic. The project follows the best open weights for useful local machine sizes, especially 128 GB laptops and 256/512 GB workstations. A model may be removed when a better replacement arrives.

So, what can I do with this software?

  • You can run a very capable models in your consumer hardware, a MacBook, a DGX Spark, or a Strix Halo for example. Even if you have not enough RAM, with SSD streaming, you can run it at a decent speed.
  • You can use multiple CUDA cards as a multi-user LLM server. Ada Lovelace, including L40S, is supported: newer models can run here even when their other inference implementations require newer GPUs. Our eight-L40S Flash setup has reached about 126 t/s aggregate generation with 16 sessions.
  • Using two 128 GB Macs connected with RDMA, you can run 4-bit DeepSeek Flash or GLM 5.3 Flash with tensor parallelism. Larger GLM 5.2 quants need larger machines, such as Mac Studios.
  • You can also use pipeline paralellism to glue together multiple systems to sum their RAM and run larger models.

Motivations

  • Capable open-weight models now fit on high-end personal machines.
  • DeepSeek V4 Flash and PRO, GLM 5.2, tolerate aggressive routed-expert quantization.
  • Compressed KV caches and fast local SSDs make long contexts practical.
  • The idea of an inference system specialized for a few models.

AI full disclosure

  • This software is developed with strong assistance from AI coding agents and with humans leading the ideas, testing, and debugging. We say this openly because it shaped how the project was built. If you are not happy with AI-developed code, this software is not for you. The acknowledgement below is equally important: this would not exist without llama.cpp and GGML, largely written by hand.

Acknowledgements to llama.cpp and GGML

ds4.c does not link against GGML, but it exists thanks to the path opened by the llama.cpp project and the kernels, quantization formats, GGUF ecosystem, and hard-won engineering knowledge developed there. We are thankful and indebted to llama.cpp and its contributors. Their implementation, kernels, tests, and design choices were an essential reference while building this DeepSeek V4 specific inference path. Some source-level pieces are retained or adapted here under the MIT license: GGUF quant layouts and tables, CPU quant/dot logic, and certain kernels. For this reason, and because we are genuinely grateful, we keep the GGML authors copyright notice in our LICENSE file.

Status

The software is currently very fast changing. Consider it beta quality. Before each release, a big QA run is executed, however instabilities and regressions are definitely possible.

How to use this project?

I (Salvatore) believe that the way projects should be shipped and used changed because of AI. The main differences today are:

  1. With AI, users can modify the software in significant ways with low efforts, costs, and even lacking deep domain knowledge about the task they want to accomplish. For instance, a DwarfStar user with a specific hardware setup can ask a coding agent to improve the inference speed of this software for the specific hardware setup, asking the model to reach the maximum prefill and generation speed without impacting correctness, and also asking to do a deep QA pass.
  2. Similiarly, because of "1", software may be shipped in a different way than before. It must be more a working template for the biggest use cases, without trying to cover every possible setup. If DwarfStar showcases a few good implementations of tensor parallel execution, the code will work as a rail for implementing the same feature in specific conditions, for a new model, and so forth.

So, while this project attempts to be usable for the featured models and the most common hardware setups, I ask you, if you have access to coding agents, to consider using coding agents as an interface to discover the project, make modifications, create personalized setups. This way you can likely do more than what we ship, and certain things that are not documented or implemented, and that you require, are potentially very easy to achieve.

Start Here

git clone https://github.com/antirez/ds4.git
cd ds4

Choose your build. The platform guides cover prerequisites, memory sizing, and hardware-specific setups:

Platform guide Build
Metal on Apple Silicon make
DGX Spark make cuda-spark
Strix Halo / Framework Desktop make strix-halo
One or more CUDA cards, including Ada/L40S make cuda-generic

For a first run on a 96 or 128 GB machine, download DeepSeek V4 Flash Q2:

./download_model.sh ds4f-q2

Downloads go in gguf/. Repeat the command to resume an interrupted download. Leave memory for the context and runtime buffers as well as the model. See other models or use SSD streaming on a smaller Mac.

Everyday Use

Once built and with a model downloaded:

./ds4
./ds4 -p "Explain Redis streams in one paragraph."
./ds4-agent
./ds4-server --ctx 32768

The default model is ds4flash.gguf, a link updated by main-model downloads. Pass -m FILE to choose explicitly. Commands normally run from the repository root; use --chdir /path/to/ds4 when launching elsewhere.

The server listens at http://127.0.0.1:8000 by default; see serving for API access and multiple sessions.

The interactive CLI keeps a multi-turn conversation. Use /help, /read FILE, /ctx N, and /quit. Ctrl+C interrupts generation and returns to the prompt. Run each binary with --help for its full options.

Native coding agent

ds4-agent runs inference directly, without a separate HTTP server. It keeps the token history and live model state together, shows prefill progress, and uses the model's native tool format. DeepSeek and GLM have their own templates.

Use /hints on for occasional, brief explanations of the programming choices behind the work, and /hints off to stop them. Changes take effect at the next conversation boundary without rebuilding the cached context. New and resumed sessions start with hints off.

Sessions are stored in ~/.ds4/kvcache:

Command Action
/save Save the current session
/list List saved sessions
/switch <sha> Resume a session
/del <sha> Delete a saved session
/strip <sha> Keep text and title, removing the large KV payload

Compatible local KV snapshots avoid rebuilding the prompt. Stripped sessions and network TP restores require prefill. Sessions containing images cannot yet be saved. Saved conversations and traces may contain private information.

For Pi, OpenCode, Codex CLI, or Claude Code, use ds4-server instead and follow the client setup guide.

Models, images, and speculation

Models and vision lists the supported downloads and memory requirements. DeepSeek Vision Experimental uses a different checkpoint from Flash 0731; GLM 5.3 Flash and Qwen3.8 Flash Next add vision to the same text model through a separate encoder.

DeepSeek V4.1 Flash text and vision run on Metal; text also runs on a DGX Spark. Q2 runs with SSD streaming on one 128 GB Mac or Spark, or resident across two Macs or two Sparks using RDMA. Q4 needs SSD streaming or a 512 GB Mac. Engram tables remain on disk in every mode, so use a fast local SSD. See the model guide for downloads and setup.

With the matching encoder passed as --vision FILE, use /read image.png in the CLI or view_image in the native agent.

Qwen3.8's smaller Q2 release has 41.73 GiB of main/MTP weights, with imatrix IQ2_XXS gate/up experts and padded Q2_K down projections. It is the starting option for 64 GB Macs. The GGUF also contains 95.37 GiB of original BF16 n-grams, read directly from disk rather than loaded into RAM. Keep it on a fast SSD. Start with 8K context:

./download_model.sh qwen38-q2
./ds4 --ctx 8192 --prefill-chunk 1024

The download fetches one 137.10 GiB file and updates ds4flash.gguf. Add --mtp for speculative decoding. The larger qwen38-q4k target is also available. Download the optional vision encoder with ./download_model.sh qwen38-vision and pass it with --vision. See Qwen setup for details.

Speculative decoding is opt-in. GLM and Qwen use --mtp; V4 Flash DSpark needs a matching support GGUF. It can improve generation, but not every workload benefits. Read speculative decoding for setup and the difference between default opportunistic sampling and --mtp-exact-sampling.

Output and power

Thinking is enabled by default. Use --nothink or /nothink for direct answers, and --think or /think to enable it again. For V4.1, ds4 and ds4-agent also accept --think-level 25 or /think 25: 1 to 100 sets the reasoning effort, and 0 disables thinking. --think selects 75, --think-max selects 100. Changing the level in a conversation rebuilds its cached prefix. The normal sampling defaults are temperature 1, top-p 1, and min-p 0.05; --temp 0 selects greedy output.

For DeepSeek V4, --power N trades throughput for lower sustained GPU load. The default is 100. V4.1 and GLM currently require --power 100.

DeepSeek V4 Flash and GLM 5.3 Flash also support directional steering. Load a vector with --dir-steering-file FILE; /steer F adjusts its scale for subsequent tokens in a local CLI or agent session, without rebuilding the existing KV cache. See steering documentation.

--prefix-file FILE preloads complete USER: / ASSISTANT: pairs before the live conversation. A turn marker must start a line, roles must alternate, and the last turn must be ASSISTANT:.

Capability Evaluation

ds4-eval runs embedded capability regression tests against a real GGUF. These are DwarfStar integration checks, not official leaderboard scores.

./ds4-eval -m ds4flash.gguf --trace /tmp/ds4-eval.txt
./ds4-eval -m ds4flash.gguf --suite hard-smoke
./ds4-eval -m ds4flash.gguf --suite hard --retry-incomplete

The default suite is core; --suite all runs core and hard cases. --list-cases lists tests without loading a model. --plain selects non-interactive output, and --regrade-trace FILE scores an existing trace without generating again. Sources and licenses are in EVAL_DATA.md. For inference correctness and release checks, read testing.

Speed

This recorded DeepSeek V4 Flash Q2 sweep uses an M5 Max with 128 GB RAM, 2048-token continued-prefill intervals, and 128 greedy generation tokens per frontier. It is a baseline, not a fresh benchmark of every commit.

M5 Max Flash Q2 throughput

See performance and benchmarking for the full numbers, DGX Spark results, comparison conditions, and benchmark commands.

Detailed Guides

Read CONTRIBUTING.md before sending a pull request.

Logo

The DwarfStar logo was designed by hand by Salvatore Sanfilippo, made more graphical with AI, and manually reworked by Ben Gnomino, whose human touch made it rock.

View on GitHub

Code frequency

additions and deletions
+1.6M-1.6MWeek of 2026-05-03: +65,870 linesWeek of 2026-05-03: -485 linesWeek of 2026-05-10: +798,981 linesWeek of 2026-05-10: -284,717 linesWeek of 2026-05-17: +31,164 linesWeek of 2026-05-17: -16,688 linesWeek of 2026-05-24: +18,909 linesWeek of 2026-05-24: -2,192 linesWeek of 2026-05-31: +36,983 linesWeek of 2026-05-31: -4,076 linesWeek of 2026-06-07: +20,420 linesWeek of 2026-06-07: -538 linesWeek of 2026-06-14: +8,380 linesWeek of 2026-06-14: -1,200 linesWeek of 2026-06-21: +0 linesWeek of 2026-06-21: -0 linesWeek of 2026-06-28: +0 linesWeek of 2026-06-28: -0 linesWeek of 2026-07-05: +98 linesWeek of 2026-07-05: -30 linesWeek of 2026-07-12: +1,366,507 linesWeek of 2026-07-12: -39,004 linesWeek of 2026-07-19: +2,930 linesWeek of 2026-07-19: -698 linesWeek of 2026-07-26: +458,834 linesWeek of 2026-07-26: -118,704 linesWeek of 2026-08-02: +56,870 linesWeek of 2026-08-02: -6,143 linesWeek of 2026-08-09: +12,374 linesWeek of 2026-08-09: -5,753 linesWeek of 2026-08-16: +529,086 linesWeek of 2026-08-16: -66 linesWeek of 2026-08-23: +33,799 linesWeek of 2026-08-23: -3,651 linesWeek of 2026-08-30: +31,431 linesWeek of 2026-08-30: -5,544 linesWeek of 2026-09-06: +1,192,196 linesWeek of 2026-09-06: -2,233 linesWeek of 2026-09-13: +1,611,368 linesWeek of 2026-09-13: -3,723 linesWeek of 2026-09-20: +17 linesWeek of 2026-09-20: -3 linesMay 3, 2026Sep 20, 2026
+6.3M lines added, -495.4K removed over the last year.

Commits per week

last 52 weeks
920Week of 2025-09-28: 0 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 23 commitsWeek of 2026-05-10: 92 commitsWeek of 2026-05-17: 58 commitsWeek of 2026-05-24: 59 commitsWeek of 2026-05-31: 22 commitsWeek of 2026-06-07: 26 commitsWeek of 2026-06-14: 13 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 5 commitsWeek of 2026-07-12: 10 commitsWeek of 2026-07-19: 24 commitsWeek of 2026-07-26: 44 commitsWeek of 2026-08-02: 67 commitsWeek of 2026-08-09: 23 commitsWeek of 2026-08-16: 7 commitsWeek of 2026-08-23: 70 commitsWeek of 2026-08-30: 73 commitsWeek of 2026-09-06: 53 commitsWeek of 2026-09-13: 69 commitsWeek of 2026-09-20: 2 commitsSep 28, 2025Sep 20, 2026
740 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 14 commitsSun 1:00 — 9 commitsSun 2:00 — 1 commitsSun 3:00 — 5 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 2 commitsSun 9:00 — 5 commitsSun 10:00 — 10 commitsSun 11:00 — 19 commitsSun 12:00 — 14 commitsSun 13:00 — 16 commitsSun 14:00 — 6 commitsSun 15:00 — 8 commitsSun 16:00 — 5 commitsSun 17:00 — 7 commitsSun 18:00 — 10 commitsSun 19:00 — 10 commitsSun 20:00 — 2 commitsSun 21:00 — 9 commitsSun 22:00 — 10 commitsSun 23:00 — 13 commitsMon 0:00 — 8 commitsMon 1:00 — 3 commitsMon 2:00 — 2 commitsMon 3:00 — 4 commitsMon 4:00 — 1 commitsMon 5:00 — 0 commitsMon 6:00 — 2 commitsMon 7:00 — 6 commitsMon 8:00 — 5 commitsMon 9:00 — 6 commitsMon 10:00 — 7 commitsMon 11:00 — 9 commitsMon 12:00 — 0 commitsMon 13:00 — 9 commitsMon 14:00 — 2 commitsMon 15:00 — 8 commitsMon 16:00 — 5 commitsMon 17:00 — 2 commitsMon 18:00 — 4 commitsMon 19:00 — 4 commitsMon 20:00 — 1 commitsMon 21:00 — 0 commitsMon 22:00 — 0 commitsMon 23:00 — 3 commitsTue 0:00 — 4 commitsTue 1:00 — 1 commitsTue 2:00 — 0 commitsTue 3:00 — 2 commitsTue 4:00 — 0 commitsTue 5:00 — 1 commitsTue 6:00 — 1 commitsTue 7:00 — 1 commitsTue 8:00 — 3 commitsTue 9:00 — 2 commitsTue 10:00 — 4 commitsTue 11:00 — 9 commitsTue 12:00 — 3 commitsTue 13:00 — 19 commitsTue 14:00 — 4 commitsTue 15:00 — 3 commitsTue 16:00 — 7 commitsTue 17:00 — 9 commitsTue 18:00 — 3 commitsTue 19:00 — 4 commitsTue 20:00 — 8 commitsTue 21:00 — 3 commitsTue 22:00 — 7 commitsTue 23:00 — 2 commitsWed 0:00 — 5 commitsWed 1:00 — 1 commitsWed 2:00 — 3 commitsWed 3:00 — 2 commitsWed 4:00 — 6 commitsWed 5:00 — 4 commitsWed 6:00 — 3 commitsWed 7:00 — 1 commitsWed 8:00 — 7 commitsWed 9:00 — 4 commitsWed 10:00 — 1 commitsWed 11:00 — 3 commitsWed 12:00 — 7 commitsWed 13:00 — 5 commitsWed 14:00 — 5 commitsWed 15:00 — 6 commitsWed 16:00 — 5 commitsWed 17:00 — 2 commitsWed 18:00 — 0 commitsWed 19:00 — 6 commitsWed 20:00 — 6 commitsWed 21:00 — 2 commitsWed 22:00 — 0 commitsWed 23:00 — 4 commitsThu 0:00 — 2 commitsThu 1:00 — 1 commitsThu 2:00 — 0 commitsThu 3:00 — 2 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 1 commitsThu 8:00 — 2 commitsThu 9:00 — 2 commitsThu 10:00 — 3 commitsThu 11:00 — 2 commitsThu 12:00 — 6 commitsThu 13:00 — 1 commitsThu 14:00 — 7 commitsThu 15:00 — 7 commitsThu 16:00 — 6 commitsThu 17:00 — 6 commitsThu 18:00 — 9 commitsThu 19:00 — 4 commitsThu 20:00 — 0 commitsThu 21:00 — 6 commitsThu 22:00 — 2 commitsThu 23:00 — 6 commitsFri 0:00 — 2 commitsFri 1:00 — 1 commitsFri 2:00 — 1 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 1 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 4 commitsFri 9:00 — 5 commitsFri 10:00 — 8 commitsFri 11:00 — 5 commitsFri 12:00 — 3 commitsFri 13:00 — 6 commitsFri 14:00 — 2 commitsFri 15:00 — 2 commitsFri 16:00 — 3 commitsFri 17:00 — 3 commitsFri 18:00 — 5 commitsFri 19:00 — 7 commitsFri 20:00 — 3 commitsFri 21:00 — 1 commitsFri 22:00 — 3 commitsFri 23:00 — 7 commitsSat 0:00 — 1 commitsSat 1:00 — 0 commitsSat 2:00 — 3 commitsSat 3:00 — 3 commitsSat 4:00 — 0 commitsSat 5:00 — 1 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 7 commitsSat 9:00 — 6 commitsSat 10:00 — 11 commitsSat 11:00 — 14 commitsSat 12:00 — 7 commitsSat 13:00 — 8 commitsSat 14:00 — 6 commitsSat 15:00 — 8 commitsSat 16:00 — 2 commitsSat 17:00 — 8 commitsSat 18:00 — 15 commitsSat 19:00 — 12 commitsSat 20:00 — 9 commitsSat 21:00 — 5 commitsSat 22:00 — 6 commitsSat 23:00 — 7 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits492 (62%)
Community commits305 (38%)

797 commits in total over the last year.

DateListRankStars gained
May 15, 2026daily#20+64
May 12, 2026daily#24+44
May 11, 2026daily#11+145
May 10, 2026daily#1+415
May 9, 2026daily#3+268
May 8, 2026daily#8+112
  • Genymobile/scrcpy

    Display and control your Android device

    151K stars · C

  • microsoft/PowerToys

    Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows

    139.2K stars · C

  • colbymchenry/codegraph

    Pre-indexed code knowledge graph, auto syncs on code changes, for Claude Code, Codex, Gemini, Cursor, OpenCode, AntiGravity, Kiro, CoPilot, and Hermes Agent — fewer tokens, fewer tool calls, 100% local

    73.2K stars · C

  • DeusData/codebase-memory-mcp

    High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

    45.7K stars · C

  • JustVugg/colibri

    Run frontier MoE models on hardware you already own — pure C, zero deps, experts streamed from disk. Tiny engine, immense model. 🐦

    39.3K stars · C

  • facebook/zstd

    Zstandard - Fast real-time compression algorithm

    28K stars · C