Every operation goes through one program, gizlang. Run giz help COMMAND for one command, or giz doc --json for this reference as JSON (gizlang.reference.v1).
Command
Usage
init
giz init [DIR]
run
giz run [--fast] [--release] [--record LOG] [--replay LOG] FILE [ARGUMENT...]
Create a Hello project with a test and pinned package.json. With DIR, create DIR (it must not exist; its parent must). Without DIR, use the current folder, which must not already hold main.giz, main.test.giz or package.json. Print the project folder.
sh
giz init [DIR]
sh
# Create a project in `hello-project`.
giz init hello-project
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang run
Build FILE (cached) and run it with the arguments. giz FILE.giz ARGUMENT... and a script that starts with #!/usr/bin/env giz do the same. The exit status is the status of the program.
sh
giz run [--fast] [--release] [--record LOG] [--replay LOG] FILE [ARGUMENT...]
Option
Meaning
--fast
Build fast (-O0) against the prebuilt SDK, as test runners do; the runtime is loaded from this build folder.
--release
Wait for the optimized build. By default a run takes the optimized program once it is stored, and until then runs -O0 while it builds.
--record LOG
Write the inputs of the program to LOG, for --replay.
--replay LOG
Give the program the inputs from LOG again.
sh
# Print "Hello, world".
giz run main.giz
# The same, without `run`.
giz main.giz
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang check
Check FILE (.giz, .gizgraph or package.json). Then run the tests of FILE and of each X.test.giz next to its sources whose meaning changed since they passed.
sh
giz check [--json] FILE
Option
Meaning
--json
Write the diagnostics as JSON and run no tests.
sh
# Check the program and run `main.test.giz`.
giz check main.giz
# The diagnostics as JSON.
giz check --json main.giz
Prints JSON with schema gizlang.diagnostics.
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang build
Compile FILE to a program for this CPU, and print its path.
Build a static native executable for TRIPLE: x86_64-pc-windows-gnu (llvm-mingw).
--debug
Build unoptimized with DWARF for the Gizlang sources, for gdb or lldb.
--release
Link optimized (-O2, ThinLTO) even inside a test run, for a suite that measures speed.
--store
Build into the machine store only, with no output file (what a run starts in the background).
--fast
Link fast (-O0) against the prebuilt SDK, as test runners do; the program loads the runtime from this build folder, so it runs only here.
--warmup COMMAND
Run the program (with the arguments after --) while the shell COMMAND runs ("" waits for its exit), and compile in each database kernel it meets.
-o OUTPUT
Write the program to OUTPUT.
sh
# Write the program `hello`.
giz build main.giz -o hello
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang wasm
Build FILE as a wasm64 module and run it in runtime/wasm.mjs, which gives it only the console. Only a source checkout has the host.
sh
giz wasm FILE [ARGUMENT...]
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang test
Run the tests of FILE. With no operand, run every *.test.giz file under the current folder (your project); at the top of a Gizlang checkout, every case and suite of the toolchain. There, FOLDER runs the cases and suites under tests/FOLDER and FILTER the cases whose path contains it. Only functions that are proved pure are cached by meaning.
sh
giz test [--shard I/N] [FILE | FOLDER | FILTER]
Option
Meaning
--shard I/N
Run every Nth case and suite from the Ith, for N parallel machines.
sh
# Run the tests of one file.
giz test main.test.giz
# Run every test file of the project here.
giz test
Exit status
Meaning
0
Success.
1
A test failed.
2
The command line is wrong. The usage is on stderr.
gizlang live
Run FILE. When a source in its folder changes, the next generation of its code replaces the code that runs. With --accept, deploy --live sends the changes, and a change of named state that loses a field is refused. With --generation, a production host runs a generation built and optimized on another machine, and deploy --live URL --generation replaces it.
sh
giz live [--tests] [--accept ADDRESS] [--trusted KEYS] [--generation GEN] [--tls-chain FILE] [--tls-key FILE] FILE | --generation GEN --trusted KEYS
Option
Meaning
--tests
Run the tests of each edit before it replaces the code that runs (off by default: an edit is served at once).
--accept ADDRESS
Also take signed units for FILE at ADDRESS (PORT or HOST:PORT), as a deployed host.
--trusted KEYS
The file of the hex Ed25519 public keys whose units it takes, one on each line.
--generation GEN
Run the prebuilt generation GEN (signed in GEN.sig by deploy --sign) instead of FILE, and compile nothing here.
--tls-chain FILE
With --accept: take units over TLS with this PEM certificate chain (and --tls-key).
--tls-key FILE
The PEM private key of --tls-chain.
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang deploy
Without --live, send FILE, else the folder's app.giz (and app.test.giz), to GizStack with your terminal token (GIZ_TOKEN): it checks and tests the change and publishes it into the running app at NAME.giz.sh, or refuses it and the old version keeps serving. In an empty folder it starts a guestbook app and writes its source to app.giz; the folder remembers its app in .gizstack/app, so the next giz deploy changes the same address. With --live, sign the sources FILE (paths in the program's folder) with the key in GIZLANG_SIGNING_KEY and send them to the live host at URL. The host checks, tests and compiles them, and publishes them into the running program, or refuses them and keeps the old code. With --generation, the host loads a generation that giz live-generation FILE GEN built and optimized, once its SHA-256 matches the signed one.
The app at https://NAME.giz.sh; a free name makes a new project, none picks one.
--summary TEXT
What changed, shown in the Deployments area.
--preview
Publish to NAME--preview.giz.sh, on a copy of the live data, and leave the live app as it is.
--live URL
The address of a host that live --accept runs.
--generation GEN
Send the prebuilt generation GEN instead of sources.
--at PATH
Where the host finds GEN's bytes on its machine (default: GEN's absolute path).
--sign GEN
Write GEN.sig, the signature live --generation GEN verifies, and send nothing.
--json
Write the result as JSON.
Prints JSON with schema gizlang.deploy.
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang ai
Run AI models on this computer by name: models lists the catalog (Qwen 3.5 chat models, FLUX.3 klein images); any Hugging Face repository (owner/name) of a family gizml:llm reads is a chat model too. The first use of a model downloads it into the models folder and converts it once; pull does that ahead. chat streams the answer to PROMPT, or without PROMPT chats line by line. image writes a PNG. serve serves the OpenAI API (/v1/chat/completions, /v1/images/generations, /v1/models) of the models named; the first chat model is the default. A gated repository needs its license accepted on Hugging Face and HF_TOKEN; HF_ENDPOINT names a mirror.
image: the size in pixels, multiples of 16 (1024x1024 by default).
--steps N
image: the denoising steps (the model's by default: 16 for flux3-klein, 8 for z-image-turbo).
--seed N
image: the seed of the noise; the same seed gives ComfyUI's image.
--out FILE
image: the PNG file to write (image.png by default).
--think
chat: a thinking model thinks first; the thinking goes to standard error.
--max N
chat: the most tokens of an answer.
--context N
chat, serve: the positions of a chat (32768 by default).
--slots N
serve: the chats that run together (4 by default).
--host HOST
serve: the address to listen on (127.0.0.1 by default).
--port PORT
serve: the port (8000 by default).
--cpu
chat, serve: run the chat models on the CPU.
sh
# Download Qwen 3.5 4B once and stream its answer.
giz ai chat qwen3.5-4b Why is the sky blue?
# Make a 1024 x 1024 image with FLUX.3 klein.
giz ai image a red fox in fresh snow --out fox.png
# Serve the OpenAI API for coding agents at http://127.0.0.1:8000/v1.
giz ai serve qwen3.5-27b --port 8000
Exit status
Meaning
0
Success.
1
The model could not be found, downloaded or loaded, or the request failed. The reason is on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang api
Run the GizStack operation NAME with your terminal token (GIZ_TOKEN), as the console, MCP and agents do, and print its result as JSON; a refusal prints why and exits 1. Without NAME, list every operation and its fields. giz api listProjects gives the ids the others take: giz api rollback deployment=ID publishes an earlier version again.
sh
giz api [--json] [NAME [FIELD=VALUE...]]
Option
Meaning
--json
Without NAME, write the operations as JSON: each one's name, description and input schema.
Exit status
Meaning
0
Success.
1
The operation was refused, or GizStack could not be reached.
2
The command line is wrong. The usage is on stderr.
gizlang ssh-proxy
Reach a running Giz Computer of your team through GizStack with your terminal token (GIZ_TOKEN): standard input and output are copied through a one-use tunnel to PORT (22 by default) of the Computer, with no public address. Use it as an ssh ProxyCommand: ssh -o ProxyCommand='giz ssh-proxy %h %p' user@COMPUTER. The team is GIZ_ORG (an id or slug), else your personal team.
sh
giz ssh-proxy COMPUTER [PORT]
Exit status
Meaning
0
Success.
1
The Computer is stopped or not yours, or GizStack could not be reached.
2
The command line is wrong. The usage is on stderr.
gizlang doc
Show the documentation of NAME: a module (gizlang:json), a declaration (Json.get) or a command (check). With --json, write the whole reference that the site, LSP hover, llms.txt and MCP read.
Write the reference of the SDK and the command line (gizlang.reference.v1).
--check
Report undocumented exports, unresolved [Name] references and failed examples.
--package FILE
Document the package of FILE (a package.json or .giz file), not the SDK.
--previous FILE
The reference of the previous release; since comes from the difference.
--release VERSION
The version that new declarations get as since.
sh
# The declarations of `gizlang:json`.
giz doc gizlang:json
# The help of `giz check`.
giz doc check
Prints JSON with schema gizlang.reference.v1.
Exit status
Meaning
0
Success.
1
A name is unknown, or --check found a problem.
2
The command line is wrong. The usage is on stderr.
gizlang outline
Print the declarations of FILE, one a line: where it is, its signature and effects, and its doc summary under it.
sh
giz outline [--json] FILE
Option
Meaning
--json
Write the outline as JSON for scripts: also each location, digest and the hash of the source.
sh
# The outline of the program.
giz outline main.giz
# The same as JSON, for a script.
giz outline --json main.giz
Prints JSON with schema gizlang.outline.
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang context
Print the declarations that mention a WORD in full, and the first lines of their neighbours.
sh
giz context FILE WORD...
sh
# The declaration `main` and its neighbours.
giz context main.giz main
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang project
Print the canonical source of FILE, with the sugar spelled out.
sh
giz project FILE
sh
# The canonical source.
giz project main.giz
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang edit
Apply the JSON edit request on stdin to FILE, if the result checks. A conflicting source change rejects the edit before it is written.
sh
giz edit FILE
Prints JSON with schema gizlang.edit.
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang repl
Start the read-eval-print loop.
sh
giz repl
Exit status
Meaning
0
Success.
2
The command line is wrong. The usage is on stderr.
gizlang lsp
Start the language server on stdin and stdout.
sh
giz lsp
Exit status
Meaning
0
Success.
2
The command line is wrong. The usage is on stderr.
gizlang bind
Print declare lines for the C functions NAME of HEADER in LIBRARY.
sh
giz bind HEADER LIBRARY NAME...
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang codec
Print JSON functions for the record types TYPE of FILE.
sh
giz codec FILE TYPE...
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang fmt
Lay out each FILE by its brackets and spacing rules; a line over 120 characters is cut at its statements, blocks, items and lists. A layout is kept only when the tokens of the file do not change.
sh
giz fmt [--check] [--bytes] FILE...
Option
Meaning
--check
Change no file. List the files that are not formatted.
--bytes
Rewrite only a string's length, indexes, slice and indexOf to their byte names, and lay out nothing.
sh
# Check the layout.
giz fmt --check main.giz
Exit status
Meaning
0
Success.
1
--check found a file that is not formatted.
2
The command line is wrong. The usage is on stderr.
gizlang i18n
Bring the catalogs locales/TAG.json of the .ghtml files under DIR up to date: add each message a catalog lacks with an empty translation (shown in English until translated), remove the keys no file shows, and print how much of each catalog is translated.
sh
giz i18n [--add TAG] [--check] DIR
Option
Meaning
--add TAG
Create the catalog locales/TAG.json (a BCP 47 tag: ko, ja, pt-BR).
--check
Change no file. Fail when a catalog lacks a message, holds a key no file shows, or has a translation that does not fit its message.
sh
# Start a Korean catalog for the pages under this folder.
giz i18n . --add ko
# Check the catalogs in CI.
giz i18n . --check
Exit status
Meaning
0
Success.
1
--check found a catalog that is not complete, or a translation does not fit its message.
2
The command line is wrong. The usage is on stderr.
gizlang pin
Write the sha256 pins in DIR/package.json again, dependencies first.
sh
giz pin DIR
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang get
Raise the requirements of the package in DIR, vendor the minimal version selection, run npm install (without its scripts) and pin the result.
sh
giz get [--frozen] DIR [NAME@VERSION... npm:NAME@SPEC...]
Option
Meaning
--frozen
Validate the exact local pinned closure, with no version selection, writes or network.
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang publish
Publish the package in DIR under the name and version of its manifest. NAME@VERSION asserts that they are equal.
sh
giz publish DIR [NAME@VERSION]
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang public-key
Print the hexadecimal Ed25519 public key of the 32-byte SEED file (GIZLANG_SIGNING_KEY), for GIZLANG_TRUSTED_KEYS.
sh
giz public-key SEED
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang storage
Manage a storage range: buckets, objects (ls, cp, rm, stat, presign), keys, usage, a FUSE mount and block volumes. GIZ_STORAGE_NODES names the nodes and GIZ_STORAGE_CREDENTIAL holds the issued credential, for a local range and for gizstack.com alike. giz storage help lists the operations (https://gizstack.com/docs/guide/storage).
sh
giz storage [--json] OPERATION [OPERAND...]
Option
Meaning
--json
Write the result as a JSON array of records.
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang bench
Run the benchmark suites of this toolchain, all or in part. An ID is a suite (web/app) or one item of it (web/app/startup); list shows them. run measures here, show prints the published results, compare puts a run beside them (ratios, because machines differ). record writes the published file and exists in a source checkout only. A suite that compares with another tool skips that column and says how to get the tool.
quick (seconds), std (the default) or full (the size that was published).
--out FILE
Write the run as a published-format file, to read or compare later.
sh
# The benchmark suites and what is published for each.
giz bench list
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang work
Manage the work items of the git repository here: list, show, open, drop, claim, release, claims, age, burndown, check. An item is a Markdown file named by its ID in the work folder; the first commit whose subject ends with (ID) fixes it.
sh
giz work [--json] OPERATION [OPERAND...]
Option
Meaning
--json
Write list as a JSON array of items.
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang capabilities
Write the operations of this command line and the exact identity of the running toolchain.
sh
giz capabilities
sh
# The capabilities as JSON.
giz capabilities
Prints JSON with schema gizlang.capabilities.v1.
Exit status
Meaning
0
Success.
2
The command line is wrong. The usage is on stderr.
gizlang completion
Print a bash completion script. Load it with source <(giz completion bash).
sh
giz completion bash
sh
# The bash script.
giz completion bash
Exit status
Meaning
0
Success.
2
The command line is wrong. The usage is on stderr.
gizlang help
Print the commands by group, or the help of COMMAND. giz COMMAND --help does the same. With --all, also the commands that work on the Gizlang repository itself.
sh
giz help [--all | COMMAND]
Also: --help.
sh
# The help of `giz check`.
giz help check
# Every command, the repository's own too.
giz help --all
Exit status
Meaning
0
Success.
2
The command line is wrong. The usage is on stderr.
gizlang vscode
Install the VS Code extension that this toolchain carries (share/gizlang/vscode/gizlang.vsix) with code --install-extension.
sh
giz vscode
sh
# Install or update the extension.
giz vscode
Exit status
Meaning
0
Success.
1
code is not on PATH, or this toolchain has no extension.
2
The command line is wrong. The usage is on stderr.
gizlang licenses
Print the third-party notices for the native link inputs of FILE. Do not build an executable.
sh
giz licenses FILE
sh
# Print component versions, SPDX identifiers and full license texts.
giz licenses main.giz
Exit status
Meaning
0
Success.
1
The check, test or operation failed. Diagnostics are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang version
Print the identity of the toolchain. --version prints the version of the giz.ai CLI that this command line serves (2.x), which the giz.ai CLI's scripts read.
sh
giz version
sh
# The toolchain identity.
giz version
Exit status
Meaning
0
Success.
2
The command line is wrong. The usage is on stderr.
gizlang auth
Sign in to your Giz account, show who is signed in, or sign out. login gives a code to confirm in the browser, which it opens on a desktop; --device only prints the address. The sign-in is the one of giz.ai's CLI 2.0 (GIZ_TOKEN serves CI), and it also signs deploy, api and publish in to GizStack.
The organization to work in (or GIZ_ORGANIZATION).
Exit status
Meaning
0
Success.
1
The request failed or was refused. The error and a hint are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang credits
Print your remaining credit (purchased and plan), when plan credit resets, and this month's spend; in a workspace, its monthly budget. Read it before paid batch work.
The organization to work in (or GIZ_ORGANIZATION).
Exit status
Meaning
0
Success.
1
The request failed or was refused. The error and a hint are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang model
List models (--type TYPE, --search TEXT), show one with its live input schema, or run one with --input JSON and --upload FIELD=LOCAL_PATH; run returns a job.
sh
giz model [--json] [--base-url URL] [--org ORGANIZATION] [list|get|run]
The organization to work in (or GIZ_ORGANIZATION).
Exit status
Meaning
0
Success.
1
The request failed or was refused. The error and a hint are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang computer
Your Giz Computers: list them, get, start or stop one, run a command (--computer, --cwd, --deadline-ms, --stdin, --stdin-file), or ssh: the ssh ProxyCommand (ssh -o ProxyCommand='giz computer ssh %h %p' user@NAME).
The organization to work in (or GIZ_ORGANIZATION).
Exit status
Meaning
0
Success.
1
The request failed or was refused. The error and a hint are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang app
Giz Apps: list, create or save one (--input JSON), run, publish (private|workspace|public), open or delete one; a change names --expected-revision REVISION.
The organization to work in (or GIZ_ORGANIZATION).
Exit status
Meaning
0
Success.
1
The request failed or was refused. The error and a hint are on stderr.
2
The command line is wrong. The usage is on stderr.
gizlang mcp
Giz's MCP server: print its address, serve it on standard input and output with this sign-in, check it, or register it with Codex or Claude Code (--transport stdio|http).