A C++ powered local benchmarking tool for Apple Silicon Macs. Integrates llama.cpp with a zero-bloat vanilla JS dashboard to test LLM inference speeds. Benchmark Large Language Models locally on your Apple Silicon Mac with maximum Metal GPU acceleration.
See the codeMacBenchForge is a lightning-fast, C++ powered local benchmarking suite designed exclusively for Apple Silicon (M-Series) Macs. It provides a stunning, glassmorphism-styled web interface to download, run, and analyze the performance of Large Language Models (LLMs) locally using maximum Metal GPU acceleration.
llama.cpp, pushing your Unified Memory and GPU cores to their absolute limit..gguf models straight from the HuggingFace Hub inside the app.~/Downloads, ~/.lmstudio, etc.) for instant discovery.mmproj-) and sub-100MB vocabulary files to ensure benchmark stability.UPSERT logic to seamlessly track, clean up, and reactivate dormant local models.npm install. Just blazing fast execution.iogpu.wired_limit_mb) in real-time.Chart.js graphs with inline tokens-per-second data labels.MacBenchForge bridges the gap between low-level hardware performance and modern web design:
cpp-httplib for an ultra-lightweight REST API, SQLiteCpp for persistent history tracking, and native osascript bindings for macOS integration.llama-bench tool to isolate LLM throughput away from interface overhead.Before you begin, ensure your Mac meets the following requirements:
/opt/homebrew).Clone the Repository
git clone --recursive https://github.com/AdityaGuhaa/MacBenchForge.git
cd MacBenchForge
Install Dependencies
MacBenchForge relies on standard C++ build tools and llama.cpp for its underlying engine.
brew install curl openssl cmake llama.cpp
Build the Application
mkdir build && cd build
cmake ..
cmake --build . -j
Launch
./bin/MacBenchForge
The backend will start and your default web browser will automatically open to http://localhost:7860.
When you launch MacBenchForge, the First-Run Wizard will analyze your hardware and tailor the environment to your system.
.gguf files from anywhere on your Mac.All core behavior is driven by config.toml, generated next to your executable.
Key tunable parameters include:
benchmark.threads: The number of CPU threads used during processing (Default: 8).benchmark.gpu_layers: Layers offloaded to the GPU (Default: 99 for full Metal acceleration).general.port: Change the UI port if 7860 is in use.huggingface.api_token: Add your HF token to access gated/private models.Want to share your compiled build with others? MacBenchForge includes a packaging script to generate a beautiful, self-contained macOS Disk Image (.dmg).
Note: You must build the project first (see above).
./packaging/create_dmg.sh
This drops a deployable .dmg in your root folder. (Keep in mind: end-users will still need to run brew install llama.cpp to execute the benchmarks).
Because macOS applies a quarantine flag to downloaded .dmg files from unidentified developers, you may encounter an error stating the app is "damaged and can't be opened" when first trying to run it.
To bypass this error, simply Right-Click (or Control-Click) the MacBenchForge.app inside your Applications folder and select Open.
Check out this quick video tutorial on how to resolve the issue:
If you discover a security vulnerability in MacBenchForge, please see our Security Policy for instructions on how to securely report it. We take security seriously and appreciate your help in keeping the app safe.
We welcome pull requests! Whether it's adding new prompt types, expanding the hardware telemetry, or optimizing the C++ routes.
git checkout -b feature/AmazingFeature).git commit -m 'Add some AmazingFeature').git push origin feature/AmazingFeature).Please ensure your code follows the existing style guidelines (C++17 standards, #pragma once headers, and encapsulated namespaces).
This project is licensed under the Apache License 2.0. See the LICENSE file for the full legal text.
Attribution Request
MacBenchForge is a labor of love. If you use this tool, modify it for your own purposes, or build a commercial/open-source product on top of it, please provide credit to Aditya Guha.
A simple inclusion of "Powered by MacBenchForge by Aditya Guha" or a link back to this GitHub repository in your project's README.md or application "About" page is highly appreciated!
C++
48.3%
JavaScript
17.8%
HTML
14.1%
CSS
12.2%
Objective-C++
3.4%
CMake
3.3%
A C++ powered local benchmarking tool for Apple Silicon Macs. Integrates llama.cpp with a zero-bloat vanilla JS dashboard to test LLM inference speeds. Benchmark Large Language Models locally on your Apple Silicon Mac with maximum Metal GPU acceleration.
See the codeMacBenchForge is a lightning-fast, C++ powered local benchmarking suite designed exclusively for Apple Silicon (M-Series) Macs. It provides a stunning, glassmorphism-styled web interface to download, run, and analyze the performance of Large Language Models (LLMs) locally using maximum Metal GPU acceleration.
llama.cpp, pushing your Unified Memory and GPU cores to their absolute limit..gguf models straight from the HuggingFace Hub inside the app.~/Downloads, ~/.lmstudio, etc.) for instant discovery.mmproj-) and sub-100MB vocabulary files to ensure benchmark stability.UPSERT logic to seamlessly track, clean up, and reactivate dormant local models.npm install. Just blazing fast execution.iogpu.wired_limit_mb) in real-time.Chart.js graphs with inline tokens-per-second data labels.MacBenchForge bridges the gap between low-level hardware performance and modern web design:
cpp-httplib for an ultra-lightweight REST API, SQLiteCpp for persistent history tracking, and native osascript bindings for macOS integration.llama-bench tool to isolate LLM throughput away from interface overhead.Before you begin, ensure your Mac meets the following requirements:
/opt/homebrew).Clone the Repository
git clone --recursive https://github.com/AdityaGuhaa/MacBenchForge.git
cd MacBenchForge
Install Dependencies
MacBenchForge relies on standard C++ build tools and llama.cpp for its underlying engine.
brew install curl openssl cmake llama.cpp
Build the Application
mkdir build && cd build
cmake ..
cmake --build . -j
Launch
./bin/MacBenchForge
The backend will start and your default web browser will automatically open to http://localhost:7860.
When you launch MacBenchForge, the First-Run Wizard will analyze your hardware and tailor the environment to your system.
.gguf files from anywhere on your Mac.All core behavior is driven by config.toml, generated next to your executable.
Key tunable parameters include:
benchmark.threads: The number of CPU threads used during processing (Default: 8).benchmark.gpu_layers: Layers offloaded to the GPU (Default: 99 for full Metal acceleration).general.port: Change the UI port if 7860 is in use.huggingface.api_token: Add your HF token to access gated/private models.Want to share your compiled build with others? MacBenchForge includes a packaging script to generate a beautiful, self-contained macOS Disk Image (.dmg).
Note: You must build the project first (see above).
./packaging/create_dmg.sh
This drops a deployable .dmg in your root folder. (Keep in mind: end-users will still need to run brew install llama.cpp to execute the benchmarks).
Because macOS applies a quarantine flag to downloaded .dmg files from unidentified developers, you may encounter an error stating the app is "damaged and can't be opened" when first trying to run it.
To bypass this error, simply Right-Click (or Control-Click) the MacBenchForge.app inside your Applications folder and select Open.
Check out this quick video tutorial on how to resolve the issue:
If you discover a security vulnerability in MacBenchForge, please see our Security Policy for instructions on how to securely report it. We take security seriously and appreciate your help in keeping the app safe.
We welcome pull requests! Whether it's adding new prompt types, expanding the hardware telemetry, or optimizing the C++ routes.
git checkout -b feature/AmazingFeature).git commit -m 'Add some AmazingFeature').git push origin feature/AmazingFeature).Please ensure your code follows the existing style guidelines (C++17 standards, #pragma once headers, and encapsulated namespaces).
This project is licensed under the Apache License 2.0. See the LICENSE file for the full legal text.
Attribution Request
MacBenchForge is a labor of love. If you use this tool, modify it for your own purposes, or build a commercial/open-source product on top of it, please provide credit to Aditya Guha.
A simple inclusion of "Powered by MacBenchForge by Aditya Guha" or a link back to this GitHub repository in your project's README.md or application "About" page is highly appreciated!
C++
48.3%
JavaScript
17.8%
HTML
14.1%
CSS
12.2%
Objective-C++
3.4%
CMake
3.3%