Skip to main content
All GeoEngine commands follow the form geoengine <command> [options]. Run any command with --help to see its usage inline.

Authentication

geoengine login

Sign in to GeoEngine with your Nika account. Credentials are stored securely on your machine and persist across sessions. Required before using any other command.
geoengine login

geoengine logout

Sign out and remove stored credentials.
geoengine logout

Worker Setup

geoengine init

Create a new geoengine.yaml and pixi.toml template in the current directory.
geoengine init [--name <worker>] [--env py|r]
FlagDescription
--name <worker>Worker name. Defaults to the current directory name if omitted.
--env pyGenerate a Python environment template (default).
--env rGenerate an R environment template.

geoengine apply

Register the worker, save config, generate a Dockerfile, build the Docker image, and manage GIS plugins — all in one step.
geoengine apply [<worker>] [--dev] [--no-cache] [--build-arg KEY=VALUE]
FlagDescription
<worker>Worker name or path. Defaults to the worker in the current directory.
--devSkip semantic version validation; tag the image as latest only; do not save a config snapshot.
--no-cacheForce a full Docker rebuild, bypassing the layer cache.
--build-arg KEY=VALUEPass a custom Docker build argument into the image build.
What apply does:
  1. Validates geoengine.yaml
  2. Generates a Dockerfile from pixi.toml (if one doesn’t already exist)
  3. Builds the Docker image (skipped automatically if config and image are unchanged)
  4. Registers the worker if new
  5. Saves a config snapshot (production mode only)
  6. Installs or updates GIS plugins based on the plugins section
See Creating a Worker and Versioning Workers for full details.

Running Workers

geoengine run

Execute a worker in a Docker container. File and folder inputs are auto-mounted.
geoengine run [<worker>] --input KEY=VALUE [--input KEY=VALUE ...] [--json] [--ver <version>] [-- <extra args>]
FlagDescription
<worker>Worker name. Defaults to the worker in the current directory.
--input KEY=VALUEPass an input to the worker. Repeat for multiple inputs. File/folder paths are auto-mounted into the container.
--jsonStructured output mode: container logs go to stderr, a JSON result is printed to stdout on completion.
--ver <version>Run a specific previously-built version using its snapshotted config. Defaults to latest.
-- <extra args>Pass additional arguments directly to the container command (after the trailing --).
Input mounting:
  • file inputs are mounted at /inputs/<key>/<filename>
  • folder inputs are mounted at /mnt/input_<key>/
  • Non-path values are passed through as plain string arguments
JSON result format (with --json):
{
  "status": "completed",
  "exit_code": 0,
  "files": [
    { "name": "output.geojson", "path": "/path/on/host", "size": 1024, "kind": "output" }
  ]
}

Inspecting Workers

geoengine workers

List all registered workers.
geoengine workers [--all] [--json] [--gis arcgis|qgis]
FlagDescription
--allExpand all version sub-rows inline below each worker.
--jsonOutput as JSON (includes name, has_tool, description).
--gis arcgis|qgisList only workers registered in the specified GIS plugin.
Output columns: WORKER, LATEST VER, VERSIONS, LAST APPLIED, QGIS, ARCGIS

geoengine describe

Show detailed information about a specific worker.
geoengine describe [<worker>] [--ver <version>] [--json]
FlagDescription
<worker>Worker name. Defaults to the worker in the current directory.
--ver <version>Show info for a specific version snapshot instead of the latest.
--jsonOutput as JSON (includes name, description, version, inputs, applied_at, available_versions, config_hash, plugins_qgis, plugins_arcgis).

geoengine diff

Check which tracked files have changed since the last apply.
geoengine diff [--file all|config|dockerfile|worker]
FlagDescription
--file allCheck all tracked files (default).
--file configCheck only geoengine.yaml.
--file dockerfileCheck only the Dockerfile.
--file workerCheck only the worker script directory.

Managing Workers

geoengine delete

Delete a worker or a specific version.
geoengine delete [--name <worker>] [--ver <version>]
FlagDescription
--name <worker>Worker to delete. Defaults to the worker in the current directory.
--ver <version>Delete only this version (removes its Docker image, map entry, and config snapshot). Omit to delete the entire worker.
Running without --ver shows a confirmation prompt before deleting the worker’s registration, all saved configs, and all state.

Image Management

geoengine image list

List all GeoEngine-managed Docker images.
geoengine image list

geoengine image import

Import a Docker image from a tarball (useful for air-gapped environments).
geoengine image import <file.tar> --tag <name:tag>

geoengine image remove

Remove a Docker image and its associated version entry and config snapshot.
geoengine image remove <image:tag>

Environment Variables

Global environment variables are injected into every worker container at runtime.

geoengine env set

Set one or more global environment variables.
geoengine env set KEY=value
geoengine env set KEY="value with spaces"
geoengine env set KEY1=val1 KEY2=val2
geoengine env set -f path/to/.env   # Load from a .env file
Inline variables override file variables if both are provided in the same command.

geoengine env unset

Remove one or more global environment variables.
geoengine env unset KEY
geoengine env unset KEY1 KEY2

geoengine env list

List all currently set global environment variables.
geoengine env list

geoengine env show

Show the value of a single global environment variable.
geoengine env show KEY

Maintenance & Updates

geoengine patch

Validate all GeoEngine artifacts and repair anything that is broken or out of date. Safe to run at any time; exits with a non-zero status if issues are found.
geoengine patch
Run this after upgrading GeoEngine to sync workers, GIS plugins, and agent skills with the new binary.
geoengine patch --init   # Interactive — select which AI agents to install skills for

geoengine update

Update GeoEngine to the latest version using the original install method (Homebrew, curl, or PowerShell), then automatically run geoengine patch.
geoengine update

geoengine uninstall

Remove the GeoEngine binary and ~/.geoengine.
geoengine uninstall

Quick Reference

CommandDescription
geoengine loginSign in (required before any other command)
geoengine logoutSign out
geoengine init [--name] [--env py|r]Create geoengine.yaml and pixi.toml templates
geoengine apply [--dev] [--no-cache] [--build-arg K=V]Register, build image, and install GIS plugins
geoengine run [<worker>] --input K=V [--json] [--ver V]Run a worker in a container
geoengine diff [--file all|config|dockerfile|worker]Check tracked file changes since last apply
geoengine workers [--all] [--json] [--gis arcgis|qgis]List registered workers
geoengine describe [<worker>] [--ver V] [--json]Show worker details and config hash
geoengine delete [--name <worker>] [--ver V]Delete a worker or a single version
geoengine image list|import|removeManage Docker images
geoengine env set|unset|list|showManage global environment variables
geoengine patch [--init]Repair artifacts and sync plugins/agent skills
geoengine updateUpdate to latest version, then run patch
geoengine uninstallRemove GeoEngine binary and data