# axx pack

> Manage the packs this project uses (axx-packs.yaml)

Source: https://axx.nimbusxr.us/references/cli/axx-pack/

Packs are sets of steps. A project lists the packs it uses in axx-packs.yaml:
Axx's packs by name (rest, sql, kafka, logs, aws-s3, gcp-pubsub, ...; see
`axx pack list`), and packs of its own, Go packages that build on the public
core and the packs' contexts, by path (./steps) or Go module path
(github.com/team/axx-grpc@v1.2.0). Axx prepares itself with the listed packs
on first use and caches the result.

```text
Usage:
  axx pack [command]

Available Commands:
  add         Add packs: axx's by name, others by path or Go module
  list        List the project's packs and axx's packs it does not use
  new         Create a pack in <dir> and add it to the project
  remove      Remove packs from this project
  update      Move module packs to their newest (or requested) versions and rebuild

Flags:
  -h, --help   help for pack

Global Flags:
      --compact         print only what matters (auto-enabled for coding agents)
  -c, --config string   path to axx.yaml (default: search upward from the working directory)
      --json            emit machine-readable JSON (stable envelope)
      --no-color        disable colored output
  -v, --verbose count   increase log verbosity (-v, -vv)

Use "axx pack [command] --help" for more information about a command.
```

## axx pack add

Add packs: Axx's by name, others by path or Go module

```text
Usage:
  axx pack add <pack>... [flags]

Examples:
  axx pack add rest sql
  axx pack add ./steps
  axx pack add github.com/team/axx-grpc@v1.2.0

Flags:
  -h, --help   help for add

Global Flags:
      --compact         print only what matters (auto-enabled for coding agents)
  -c, --config string   path to axx.yaml (default: search upward from the working directory)
      --json            emit machine-readable JSON (stable envelope)
      --no-color        disable colored output
  -v, --verbose count   increase log verbosity (-v, -vv)
```

## axx pack list

List the project's packs and Axx's packs it does not use

```text
Usage:
  axx pack list [flags]

Aliases:
  list, ls

Flags:
  -D, --define stringArray   set a property for ${sys:name}, e.g. -D local.host=docker
  -h, --help                 help for list
      --profile string       apply profiles.<name> / axx.<name>.yaml (env: AXX_PROFILE)

Global Flags:
      --compact         print only what matters (auto-enabled for coding agents)
  -c, --config string   path to axx.yaml (default: search upward from the working directory)
      --json            emit machine-readable JSON (stable envelope)
      --no-color        disable colored output
  -v, --verbose count   increase log verbosity (-v, -vv)
```

## axx pack new

Create a pack of your own: a Go package that builds on the public core
(github.com/nimbusxr/axx/core) and can use the contexts of Axx's packs
(github.com/nimbusxr/axx/packs/rest, .../sql, ...). It is added to
axx-packs.yaml; the next command that needs the project's steps prepares Axx
with it.

```text
Usage:
  axx pack new <dir> [flags]

Flags:
  -h, --help   help for new

Global Flags:
      --compact         print only what matters (auto-enabled for coding agents)
  -c, --config string   path to axx.yaml (default: search upward from the working directory)
      --json            emit machine-readable JSON (stable envelope)
      --no-color        disable colored output
  -v, --verbose count   increase log verbosity (-v, -vv)
```

## axx pack remove

Remove packs from this project

```text
Usage:
  axx pack remove <pack>... [flags]

Aliases:
  remove, rm

Flags:
  -h, --help   help for remove

Global Flags:
      --compact         print only what matters (auto-enabled for coding agents)
  -c, --config string   path to axx.yaml (default: search upward from the working directory)
      --json            emit machine-readable JSON (stable envelope)
      --no-color        disable colored output
  -v, --verbose count   increase log verbosity (-v, -vv)
```

## axx pack update

Clear the pinned versions of module packs (all of them, or the ones named) in
axx-packs.lock and rebuild, so each resolves to the version in axx-packs.yaml
or, without one, the latest.

```text
Usage:
  axx pack update [module]... [flags]

Flags:
  -h, --help   help for update

Global Flags:
      --compact         print only what matters (auto-enabled for coding agents)
  -c, --config string   path to axx.yaml (default: search upward from the working directory)
      --json            emit machine-readable JSON (stable envelope)
      --no-color        disable colored output
  -v, --verbose count   increase log verbosity (-v, -vv)
```
