Metadata-Version: 2.4
Name: layer
Version: 1.0.6
Summary: Command-line interface for Layer — AI asset generation for game studios.
Keywords: layer,ai,generative,game-development,cli
Author: Layer
Author-email: Layer <info@layer.ai>
License-Expression: Apache-2.0
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Software Development :: Build Tools
Requires-Dist: httpx>=0.28.1,<0.29.0
Requires-Dist: keyring>=25.7.0,<26.0.0
Requires-Dist: pydantic>=2.5.2,<3.0.0
Requires-Dist: rich>=13.9.4,<16.0.0
Requires-Dist: tomli>=2.0.1,<3.0.0 ; python_full_version < '3.11'
Requires-Dist: tomli-w>=1.0.0,<2.0.0
Requires-Dist: typer>=0.15.0,<1.0.0
Requires-Python: >=3.10
Project-URL: Homepage, https://layer.ai
Project-URL: Documentation, https://www.layer.ai/docs/cli
Project-URL: Changelog, https://github.com/layerai/app/releases
Description-Content-Type: text/markdown

# layer

Command-line interface for [Layer](https://layer.ai) — AI asset generation for game studios.

Reaches the same models, workspaces, and Creative Unit balance as the app, from a
terminal, a Makefile, or a CI job.

## Install

```sh
uv tool install layer        # or: pipx install layer
```

Python 3.10 and up — deliberately older than the services that build it, so the same
package imports inside Blender, Maya, and Houdini.

Working on the CLI itself? Install it from your checkout instead, so the `layer`
command follows the branch you have out:

```sh
task -d apps/cli-py install-cli
```

## Sign in

```sh
layer login                 # opens a browser
layer login --device        # for SSH sessions and containers
layer whoami
layer use my-studio
```

For CI and other unattended runs, set `LAYER_API_KEY` to a personal access token instead
of signing in.

## Generate

```sh
layer generate image -p "a crystal sword icon, transparent background"
layer generate video -d 5 --aspect-ratio 16:9 -p "camera pushes through the gate"
layer generate mesh  -p "weathered treasure chest, game-ready"
layer generate audio -p "arcade coin pickup"
```

Each waits for the run, prints what it cost, and writes the result into the working
directory under a name derived from the prompt — never overwriting a file already there.
`-o` takes a directory, or the exact filename when there is a single output;
`--no-download` prints URLs instead.

Leave `--base-model` off and the recommended model for that modality is chosen and
named. The catalogue is read from your workspace, not shipped with the package:

```sh
layer base-models list --modality video
layer base-models show bfl-flux-2-pro      # the keys --param accepts
```

Every run is priced before it executes. `--confirm` asks first; `--max-cost 8` refuses
anything more expensive. For a long render, submit and collect later:

```sh
id=$(layer --json generate video --no-wait -p "..." | jq -r .inference_id)
layer generate status "$id" --wait
```

## Where settings come from

Highest wins:

1. a command-line flag
2. an environment variable — `LAYER_PROFILE`, `LAYER_WORKSPACE`, `LAYER_PROJECT`,
   `LAYER_API_URL`, `LAYER_API_KEY`
3. `layer.toml`, found by walking up from the working directory
4. the active profile in `~/.layer/config.toml`

Committing a `layer.toml` pins a checkout to its workspace, so two repos open in two
terminals cannot generate into each other's:

```toml
workspace = "my-studio"
project   = "season-12-art"
```

## Scripting

`--json` puts the result on stdout and nothing else — progress, warnings, and errors all
go to stderr, so a pipeline never has to filter them out.

```sh
layer --json whoami | jq -r .workspace
layer --json generate image -p "..." | jq -r '.files[].path'
```

Exit codes: `0` ok, `1` error, `2` usage, `3` auth, `4` insufficient balance,
`5` invalid input, `6` content policy, `7` timeout. They may gain members, never change
meaning, so a caller can branch on them without parsing prose.

## Documentation

<https://www.layer.ai/docs/cli>

Driving Layer from an agent rather than a shell? There is an
[MCP server](https://www.layer.ai/mcp) and an
[Agent Skills pack](https://www.layer.ai/skills).

## Licence

Apache-2.0
