Practical guide
From native build
to your application.
Choose the right package, verify its provenance, and connect your 4D project to a local model.
01 / Obtain the runtime
Downloads, without the guesswork.
Browse all repository releases and choose a native server release. Component and server versions are independent, so the repository's “latest” release is not a reliable native-server selector.
This guide describes the native packaging pipeline, not a promise that a release has already been published. If no suitable release exists, a maintainer must dispatch Update server on the default branch with publish_release enabled. Its default build does not publish a release.
| Asset | Purpose |
|---|---|
.tar.gz | Signed and notarized native distribution. The extracted uzu-server-macos-arm64 directory contains cli at its root. |
.dmg | Notarized disk image distribution; use the release's installation instructions. |
SHA256SUMS | Checksums for verifying downloaded assets. |
BUILD-INFO.json | Recorded source revision, version, and build/toolchain provenance. |
| Notices & licenses | Redistribution and dependency licensing information accompanying the native package. |
Verify before running
Download the archive and SHA256SUMS from the same release into one directory. Compare the archive's digest with its entry in that file:
shasum -a 256 YOUR_DOWNLOADED_ARCHIVE.tar.gz
cat SHA256SUMS
tar -xzf YOUR_DOWNLOADED_ARCHIVE.tar.gz
cd uzu-server-macos-arm64
./cli server --help
Keep macOS security checks enabled; do not strip quarantine or bypass Gatekeeper. A checksum detects a mismatched download but does not replace checking the release source and signing provenance.
Actions artifacts
For a specific successful run, open Actions → Update server and review its artifacts and logs. Normal manual runs and pull-request builds require no Apple credentials and produce the native-server-unsigned Actions artifact. This is an unsigned development build, not a signed/notarized release. Artifacts may expire, and downloading them may require a GitHub sign-in. Prefer published, signed/notarized release assets for regular installation; do not bypass macOS security checks to run an unsigned build.
Model weights are not included. Downloads, disk and memory requirements, and model licenses are separate from the server distribution.
02 / Application lifecycle
Use it from 4D.
- Add this project as a component to your 4D 20+ host application.
- A repository checkout does not bundle native executables. Download and verify a published native release, then copy its root
clitouzu/Resources/bin/macOS/cliin the component source. Alternatively, installclionPATH, which the component uses if the resource is absent. The component Publish workflow installs the checksummed native executable from an exact release tag automatically. - Create your event handler and start the server during application startup. Keep the model ID as a string to let Uzu resolve and download its model assets.
var $event : cs.event.event
$event:=cs.event.event.new()
$event.onError:=Formula(ALERT($2.message))
var $uzu : cs.uzu.uzu
$uzu:=cs.uzu.uzu.new(8080; Null; Folder(fk home folder).folder(".uzu"); {model: "alibaba:qwen3.5:0.8b:mirai:mirai-m:4"; host: "127.0.0.1"}; $event)
The constructor accepts the port, optional model-download configuration, working folder, server options, and event handler. It checks the port before launching a background process. Use the error callback to surface a port conflict or startup failure.
cs.uzu.uzu.new().terminate()
The component's onSuccess event currently signals worker launch, not that the model or HTTP server is ready. Poll GET /v1/models until it succeeds before sending chat requests. Allow time for model downloads and loading, and handle startup errors and timeouts in your application.
The component manages the process, not a different inference API. After confirming readiness, use the same HTTP chat requests as any other client.
03 / Keep configuration precise
The server's supported options.
These are the cli server options for the upstream revision documented here. In the 4D options object, underscore-separated names map to kebab-case command-line flags. Do not pass arbitrary generation settings as server options.
| CLI option | Meaning |
|---|---|
--model | A model ID, Hugging Face repository, or full path to a compatible local model directory (not a single GGUF file). |
--host | Bind address. Use 127.0.0.1 for local-only access. |
--port | Listening port, such as 8080. |
--prefix-cache / --no-prefix-cache | Enable or disable prefix caching. |
--verbose-file-log | Enable verbose file logging. |
--max-tokens is not a server option. Use max_tokens in the JSON body of a chat completion request.
04 / For maintainers
Build from a recorded source.
The Update server workflow resolves the selected upstream source to a full commit SHA. Its default source is main: “latest” means the current upstream main HEAD at resolution time, not the newest version tag or a prebuilt upstream download.
It builds only the Rust package cli from crates/legacy/cli, using locked Cargo dependencies. The executable is still called cli; cli-tools is not part of this native build. No stale native binaries are bundled in the source checkout, and this pipeline does not provide universal Intel/Apple Silicon executables.
publish_release defaults to false. Ordinary dispatches and pull-request builds produce the credential-free unsigned Actions artifact. Only an explicit default-branch dispatch with publish_release: true signs, notarizes, and publishes the arm64 .tar.gz and DMG distributions, with checksums, build provenance, and licensing notices. Native server tags are source-qualified and separate from component-version tags.
Optional publish_component runs only after a native release has been published. The component Publish workflow installs and verifies the native executable from the exact selected release tag rather than relying on a binary in git.
Building requires a macOS 26 runner and a Metal 4-capable Xcode toolchain. The pinned Rust toolchain is nightly-2026-08-10, verified as rustc 1.99.0-nightly and recorded with the build. Apple signing and notarization credentials are needed only for the explicit release path, not unsigned builds or end users.
Documentation baseline
Server facts are pinned to upstream workspace 0.6.15, commit 798803bba8fc. Check the selected release's BUILD-INFO.json before assuming the same behavior for a newer build.
Both this repository and upstream Uzu use the MIT license. Included dependency notices and individual model licenses also apply.