bricks-buttress, for macOS, Linux, and Windows. No Node.js runtime is required. If you prefer, you can also install it from npm or Bun. For GPU acceleration on Linux, install CUDA or Vulkan drivers before running the installer — it picks the matching build based on what it finds.
Hardware
The server runs without a GPU but the throughput drops sharply, and capability scoring will mark the host as a less-preferred backend.
Install
- macOS
- Linux
- Windows
- npm / Bun
bricks-buttress to ~/.bricks-cli/bin. Metal acceleration is part of the default build, so there is nothing extra to select.If ~/.bricks-cli/bin is not on your PATH, the script appends it to your shell profile (~/.zshrc, ~/.bash_profile, or ~/.config/fish/config.fish) and tells you to restart your shell.PATH entry covers both tools.
Confirm the install:
Native modules
The standalone binary cannot embed the GGML, ONNX Runtime,sharp, and oxc-transform native addons. The installer downloads them from the npm registry into a node_modules directory next to the executable, pinned to the versions the binary was built against. It also places the status dashboard (public/status.html) there, plus the MLX bridge script on macOS.
Each install rebuilds that directory from scratch, so upgrading never leaves a stale native module behind. Set BUTTRESS_NPM_REGISTRY to download the native packages from a mirror instead of https://registry.npmjs.org.
GPU acceleration variants
The GGML backends ship one build per accelerator. The installer probes the host, picks the best supported one, and downloads only that variant alongside the default CPU build.
Override the choice when detection guesses wrong — for example on a machine whose drivers are installed after the fact:
auto (the default), default, cuda, vulkan, snapdragon (Linux only), and all. Use all to download every variant — larger, but portable across hosts if you image the install directory.
Running
install.sh from an MSYS or Git Bash shell on Windows skips GPU probing, because the results are unreliable there. Pass --ggml-variant explicitly, or use the PowerShell installer.Installer options
Run the server
Without a config, the server starts on port2080 with sensible defaults:
CLI flags
The port resolves in this order:
--port flag → [server] port in TOML → default 2080.
bricks-buttress also takes one subcommand, update — see Update below.
Environment variables
System environment variables override values set under
[env] in your TOML config.
macOS GPU memory
On Apple Silicon Macs, the GPU is allowed about 70% of system memory by default. To raise the cap before loading large models:Verify
When the server starts, it prints a LAN-reachable URL likeVisit http://<ip>:2080/status to see status via LAN. Open that URL — or http://localhost:2080/status from the same machine — to load the status dashboard.
The dashboard shows, per backend (GGML-LLM, GGML-STT, MLX-LLM):
- The list of loaded generators and which ones currently hold an active model context
- Parallel slot usage and queued requests for STT
- Recent model-load history and completion / transcription history (collapsible)
/status — host the server on a trusted LAN.
For machine-readable output, query the JSON endpoints directly:
/buttress/info is what Foundation devices read during HTTP fallback discovery — see LAN auto-discovery.
Beta channel
Update
Runbricks-buttress update to update an existing install in place. It detects how the server was installed — standalone binary, npm global, or Bun global — and runs the matching update:
- Standalone binary — re-runs the CDN installer, which replaces the executable and rebuilds the native modules directory, picking up any native package version changes in the new release. The existing install directory is reused, so an override passed to
--diris preserved. - npm / Bun — reinstalls the global
@fugood/buttress-serverpackage.
If the detected method fails, the command offers the binary installer as a fallback. That path also works when the native modules are missing or broken —
update runs before the server’s backends are loaded, so a damaged install can repair itself. On Windows the installer moves a locked native modules directory aside instead of failing, so the server can update itself while running.
Uninstall
- macOS / Linux
- Windows
- npm / Bun
--dir / -InstallDir if you installed somewhere else.
Next steps
Configuration
Configure generators, caching, and compatibility endpoints.
Workspace binding
Pair the server with a workspace and enable JWT auth.