gezel Gezel Handboek

The gezel command line

The gezel command drives the same service the desktop app uses — handy on servers, in scripts, or when you just live in a terminal.

Install the command-line package with Node.js 24 or newer:

npm install @bendyline/gezel-cli
npx gezel

The CLI is one of Gezel's public JavaScript packages. See Gezel on npm for the complete package map and the SDKs to use when a shell command is not the right integration boundary.

Everyday commands

gezel                       open the interactive terminal app for this folder's project
gezel start                 ensure the service is running
gezel start --port 8080 --foreground
                            run it attached, on a fixed port
gezel start --web --open    serve the web interface on this computer and open
                            it in your browser
gezel status                is it up, and where (exits 1 if not running or unhealthy)
gezel stop                  emergency stop: cancel AI work, unload engines,
                            switch to Reactive — the service keeps running
gezel stop --daemon         shut the service down
gezel mode [mode]           show or set how active the AI may be
                            (read-only, reactive, reactive+tasks, full-play)
gezel run "..."             one-shot: send a prompt, print the reply
gezel doctor                check the installation

Working with the crew

gezel agent list            your gezellen
gezel project list          your projects (gezel env is the same command)
gezel task list             tasks across every project (--status to filter)
gezel task show <ref>       one task, such as default/12
gezel task pause <ref>      pause one task without stopping the others
gezel task resume <ref>     retry a paused task and wait for its result
gezel do <craftbook>        start a craftbook as a task in this folder's project
                            (--wait to stay until it finishes)
gezel skills list           SKILL.md skills found in this project's workspace
gezel skills import <path>  turn one of those skills into a craftbook

AI Apps

gezel app new my-app        scaffold an app source folder
gezel app validate my-app   check a source folder or .gezapp (--json for tooling)
gezel app pack my-app       produce my-app-1.0.0.gezapp
gezel app add <file> --yes  review and install a package
gezel app apply my-app      outfit the current folder as a project
gezel app serve my-app      share its page as a mini-site

The full story — the source-folder format, both script forms, and the loop an AI agent can drive — is Building AI Apps inside Gezel.

Models and engines

gezel model list            local chat models for this computer's engine
gezel model pull <id>       download a chat model from the catalog
gezel model context <id> [tokens]
                            show or set a model's context window (auto clears it)
gezel model concurrency [slots]
                            show or set how many requests a local engine serves at once
gezel model export <id> [file]
                            save a model as a portable .gezmodel file
gezel native install        download and verify the on-device engines
gezel native status         engine release, platform, and backend
gezel image models          local image-generation models (image pull / image rm)

Making media

gezel create-image "..."    generate an image with the configured image engine
gezel create-video "..."    generate a video
gezel create-audio "..."    read text aloud into an audio file

Knowledge catalogs

gezel knowledge init <dir>  scaffold a catalog folder
gezel knowledge build <dir> compile it into a .gezk file
gezel knowledge search <file> "..."
                            search a catalog file offline
gezel knowledge available   catalogs offered for download
gezel knowledge install <source>
                            install one by catalog id, file, or URL
gezel knowledge list        what is installed

Building, checking, and searching a catalog file work without the service; installing and listing use the running gezel. Building a catalog and search --semantic also need the embedding runtime, which the desktop app includes. After an npm install, add it with npm install -g @huggingface/transformers@^3.8.1 (without -g if gezel is installed in a project).

Keys and security settings

gezel secret list           which provider keys are set (never their values)
gezel secret set <name> --env VARIABLE
                            store a key, read from an environment variable
                            (or --stdin to pipe it in)
gezel secret remove <name>  forget a key
gezel security external-services [on|off]
                            let gezels use web search and other outside services
gezel env indexing [on|off] pause or resume background indexing for this project

Space, backups, and restoring

gezel cleanup               see how much space gezel is using
gezel cleanup --redownloadable
                            reclaim everything gezel can download again
gezel backup <file>         write your gezels, projects, and documents to a file
gezel restore <file>        bring them back (--list to look first)

This documentation

gezel handboek export --out ./site

renders the Handboek — the same articles you're reading now — as a static website, for publishing or offline reading.

Run gezel --help (or --help on any subcommand) for the full surface.

To automate work inside a project, continue with Writing scripts with gezel-sdk. To let another application use Gezel, see Building connected apps with gezel-app-sdk.

Watching tasks

A task watch is an observer. Its timeout ends the command without canceling or pausing native work; watching the same task again follows that work. A task's current paused status or an unanswered question blocks the watch. Historical service pause cards do not block an already resumed task and are not answered by the observer.

Watch this article as a slideshow