# CLI

> Every command of the sluice binary, with its flags.

<!-- Generated by `just gen` from internal/app/cli.go. Do not edit this file. -->

This page lists every command of the `sluice` binary. `sluice help` prints the same list.

Install the binary on Linux or macOS. The installer checks the download against the published checksum. `SLUICE_VERSION` picks a release and `SLUICE_BIN_DIR` the directory:

```sh
curl -fsSL https://raw.githubusercontent.com/alternayte/sluice/main/install.sh | sh
```

The client commands talk to a Sluice server. They read `SLUICE_URL` and `SLUICE_TOKEN`, take `--output json` (or `-o json`) to print the API JSON, and exit with a code from [Exit codes](/reference/exit-codes/).

| Command | Description |
|---|---|
| `sluice run` | Start a flow as &lt;namespace&gt;/&lt;flow&gt;. --wait streams the logs and exits with the end state. |
| `sluice executions list` | List executions. |
| `sluice executions get` | Show one execution with its task runs. |
| `sluice executions logs` | Print the logs of an execution. |
| `sluice executions cancel` | Cancel an execution. |
| `sluice executions rerun` | Run an execution again with the same snapshot and inputs. |
| `sluice executions restart` | Run the failed tasks of an execution again. |
| `sluice flows list` | List flows. |
| `sluice flows get` | Show a flow as &lt;namespace&gt;/&lt;flow&gt; with its source. |
| `sluice namespaces push` | Upload a namespace directory as one new version. |
| `sluice validate` | Validate a namespace directory offline. |
| `sluice init` | Write the Sluice agent skill and an AGENTS.md section into a repository. |
| `sluice openapi` | Print the OpenAPI document of the API. |
| `sluice version` | Print version, commit and build date. |
| `sluice server` | Run the HTTP server, scheduler and executors. |
| `sluice exec` | Run one task run (the runner). Reads SLUICE_API_URL, SLUICE_RUN_TOKEN, SLUICE_TASK_RUN_ID. |
| `sluice runner-install` | Copy this binary into a directory (runner injection). |
| `sluice migrate` | Apply database migrations and exit. |
| `sluice user create` | Create a user in the database. |
| `sluice user reset-password` | Set a new password for a user. |
| `sluice secrets rekey` | Re-encrypt all builtin secrets with the active master key. |

## sluice run

Start a flow as &lt;namespace&gt;/&lt;flow&gt;. --wait streams the logs and exits with the end state.

```text
usage: sluice run <namespace>/<flow> [--input k=v]... [--label k=v]... [--wait] [--timeout 10m] [--output json]

Flags:
  -input value
    	an input as key=value; repeat for more. A JSON value keeps its type.
  -label value
    	a label as key=value; repeat for more
  -o string
    	short for --output (default "text")
  -output string
    	output format: text or json (default "text")
  -timeout duration
    	with --wait: stop waiting after this time and exit 14 (the execution continues)
  -wait
    	wait for the end, stream the logs to stderr, and exit with the code of the end state

The command reads SLUICE_URL and SLUICE_TOKEN.
```

## sluice executions list

List executions.

```text
usage: sluice executions list [--namespace ns] [--flow ns/flow] [--state FAILED,...] [--limit 20]

Flags:
  -flow string
    	flow as <namespace>/<flow>
  -limit int
    	number of executions, 1 to 200 (default 20)
  -namespace string
    	namespace and its children
  -o string
    	short for --output (default "text")
  -output string
    	output format: text or json (default "text")
  -state string
    	comma-separated states, for example FAILED,TIMED_OUT

The command reads SLUICE_URL and SLUICE_TOKEN.
```

## sluice executions get

Show one execution with its task runs.

```text
usage: sluice executions get <execution-id>

Flags:
  -o string
    	short for --output (default "text")
  -output string
    	output format: text or json (default "text")

The command reads SLUICE_URL and SLUICE_TOKEN.
```

## sluice executions logs

Print the logs of an execution.

```text
usage: sluice executions logs <execution-id> [--task name] [--follow]

Flags:
  -follow
    	keep printing new lines until the execution ends (text output only)
  -o string
    	short for --output (default "text")
  -output string
    	output format: text or json (default "text")
  -task string
    	only the lines of this task

The command reads SLUICE_URL and SLUICE_TOKEN.
```

## sluice executions cancel

Cancel an execution.

```text
usage: sluice executions cancel <execution-id> [--wait] [--timeout 10m]

Flags:
  -o string
    	short for --output (default "text")
  -output string
    	output format: text or json (default "text")

The command reads SLUICE_URL and SLUICE_TOKEN.
```

## sluice executions rerun

Run an execution again with the same snapshot and inputs.

```text
usage: sluice executions rerun <execution-id> [--wait] [--timeout 10m]

Flags:
  -o string
    	short for --output (default "text")
  -output string
    	output format: text or json (default "text")
  -timeout duration
    	with --wait: stop waiting after this time and exit 14
  -wait
    	wait for the new execution to end, and exit with the code of its end state

The command reads SLUICE_URL and SLUICE_TOKEN.
```

## sluice executions restart

Run the failed tasks of an execution again.

```text
usage: sluice executions restart <execution-id> [--wait] [--timeout 10m]

Flags:
  -o string
    	short for --output (default "text")
  -output string
    	output format: text or json (default "text")
  -timeout duration
    	with --wait: stop waiting after this time and exit 14
  -wait
    	wait for the new execution to end, and exit with the code of its end state

The command reads SLUICE_URL and SLUICE_TOKEN.
```

## sluice flows list

List flows.

```text
usage: sluice flows list [--namespace ns]

Flags:
  -namespace string
    	namespace and its children
  -o string
    	short for --output (default "text")
  -output string
    	output format: text or json (default "text")

The command reads SLUICE_URL and SLUICE_TOKEN.
```

## sluice flows get

Show a flow as &lt;namespace&gt;/&lt;flow&gt; with its source.

```text
usage: sluice flows get <namespace>/<flow>

Flags:
  -o string
    	short for --output (default "text")
  -output string
    	output format: text or json (default "text")

The command reads SLUICE_URL and SLUICE_TOKEN.
```

## sluice namespaces push

Upload a namespace directory as one new version.

```text
usage: sluice namespaces push <dir> [--namespace name] [--message text] [--create]

Flags:
  -create
    	create the namespace when it does not exist
  -message string
    	version message (default: "Push from the sluice CLI")
  -namespace string
    	target namespace (default: the name of the directory)
  -o string
    	short for --output (default "text")
  -output string
    	output format: text or json (default "text")

The command reads SLUICE_URL and SLUICE_TOKEN.
```

## sluice validate

Validate a namespace directory offline.

```text
Usage of validate:
  -json
    	print the result as JSON (schemas/validate-result.schema.json)
```

## sluice init

Write the Sluice agent skill and an AGENTS.md section into a repository.

```text
usage: sluice init [dir] [--force]

Writes .claude/skills/sluice/SKILL.md and a Sluice section in AGENTS.md.

Flags:
  -force
    	replace the skill and the AGENTS.md section also when they were changed
```
