Get started

Install tokspur on your Mac, adopt the model files, start the local server and send a first request from a chat app or coding agent.

A square terminal contains exactly three code rows and the official t.

Get tokspur

Install tokspur

Run the signed release installer on an Apple M5 Max with a 40-core GPU, 128 GB of unified memory and macOS 27 or later. Check the requirements before adding a model.

curl -fsSL https://tokspur.com/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
tokspur verify-build

The installer places the command in ~/.local/bin. Add that directory to your shell's PATH for future sessions.

Automatic updates are on by default. When you run tokspur, it checks for updates in the background at most once a day. Run tokspur update to update now or tokspur update --off to turn off automatic updates.

Build from source

Install the full Xcode with its Metal toolchain, Python 3.12 or 3.13 and the pinned Rust toolchain with rustup.

git clone https://github.com/san-digital/tokspur.git
cd tokspur
python3.12 scripts/bootstrap.py --python python3.12
. .venv/bin/activate
tokspur doctor

Bootstrap builds the native worker and Rust host from the pinned sources. Keep the virtual environment active for the commands below.

Adopt the model files

Point tokspur at the model files described in the model guide. Adoption verifies every file in place by SHA-256 and never copies or downloads a model.

tokspur adopt --target /absolute/path/to/UD-Q4_K_XL --draft /absolute/path/to/snapshot
tokspur configure
tokspur pack plan --check
tokspur pack build

Configuration writes the private settings, a model link and the API key below .tokspur/state/ in your state directory. Pass --port to use a port other than 18081. The pack build writes a lossless repack of the GPU weights to .tokspur/derived/tokspur-pack-v2.asa.gguf, proves it byte for byte against the originals and keeps at least 54 GB of disk space free. The server needs the pack to start.

Start the server

Stop any other inference server first. tokspur refuses to start while another known inference worker is running, the port is occupied, the adopted files have changed or the pinned sources have drifted.

tokspur serve

The server runs in the foreground and stops with Ctrl-C, taking its model worker down with it. The first launch after a cold build can spend minutes compiling Metal pipelines, and later launches reuse that cache. Readiness confirms startup, while the first request can still pay for weight pages and GPU allocations.

First request

The endpoint is http://127.0.0.1:18081/v1, the model identifier is tokspur and the key comes from your local state directory. A packaged install uses the path below. A source build uses .tokspur/state/api-key from the checkout.

key_file="$HOME/Library/Application Support/tokspur/data/.tokspur/state/api-key"
printf 'Authorization: Bearer %s\n' "$(cat "$key_file")" |
  curl -fsS http://127.0.0.1:18081/v1/chat/completions \
  --header @- \
  -H "Content-Type: application/json" \
  -d '{"model": "tokspur", "messages": [{"role": "user", "content": "Write a Rust function that sums a slice of u32."}], "max_tokens": 200}'

A response confirms the connection. For a coding agent, also check that a tool call reaches the client, its result returns to the conversation and cancelling a request releases the generation before the next request starts. The connection checks cover these steps.

Go faster

Once the default server answers correctly, you can try speed mode. The configuration guide describes the settings and measured conditions.

Keep the record

Save the build version with the model and client configuration. They are needed when comparing results or investigating a failed request. If setup stops, use troubleshooting before changing model files or memory settings.