---
title: "alis packages"
url: "https://docs.alisx.com/reference/cli/packages/"
---
# alis packages

Install, upgrade and add a service's language packages (Go, Node, Python, Dart, .NET, Swift, Rust), share a defined package with other products, and run Swift tooling with refreshed registry credentials.

## Synopsis

```bash
alis packages add [<package-id>] [flags]
alis packages install [<package-id>] [flags]
alis packages share [<package-id>] --with <org.product> [flags]
alis packages sharing [<package-id>] [flags]
alis packages swift [<package-id>] -- <tool arguments> [flags]
alis packages unshare [<package-id>] --with <org.product> [flags]
alis packages upgrade [<package-id>] [flags]
alis packages xcode-check [<package-id>] [flags]
alis packages xcodebuild [<package-id>] -- <tool arguments> [flags]
```

Aliases: `packages`, `package`, `pkg`.

## Description

The package ID selects the service whose manifests are changed; it is never a dependency to add. It may be omitted inside the service's directory. Registry credentials are refreshed automatically before package managers run (written to `~/.npmrc`, `~/.netrc` and the dart pub tokens). A project-level `.npmrc` that carries its own `_authToken` for an Alis registry host overrides `~/.npmrc`; it is refreshed for the run and put back afterwards. Remove such lines from project `.npmrc` files and keep them out of git.

Use these commands for private Alis packages instead of running `go get`, `go mod tidy`, `pnpm`, `pip`, `uv` or `dart` directly. Python installs use `uv` when it is on the PATH.

A service's defined package reaches another product's registries only once it is shared.

## Subcommands

### alis packages add

Add the selected service's own generated definition package to its manifests.

```bash
alis packages add [<package-id>] [flags]
```

| Flag | Type | Default | Meaning |
|---|---|---|---|
| `--language <lang>` | string | | Only run for one language: `go`, `node`, `python`, `dart`, `dotnet`, `swift` or `rust`. |
| `--python-tool <tool>` | string | `uv` when installed, else `pip` | Installer for Python manifests: `pip` or `uv`. |

### alis packages install

Refresh private registry credentials and run the package managers with the service's registry configuration: `go mod tidy`, `pnpm install`, `pip`/`uv` install, `dart pub get`. Then pull the latest version of the service's own generated definition package (a targeted fetch, not a full dependency upgrade). Use this first when local builds cannot download private Alis packages; a fresh clone always needs it once. Installation can update manifests and lockfiles.

```bash
alis packages install [<package-id>] [flags]
```

| Flag | Type | Default | Meaning |
|---|---|---|---|
| `--language <lang>` | string | | Only run for one language: `go`, `node`, `python`, `dart`, `dotnet`, `swift` or `rust`. |
| `--python-tool <tool>` | string | `uv` when installed, else `pip` | Installer for Python manifests. |
| `--version <version>` | string | latest | Install this exact definition version (Go, Node, Python, .NET, Swift and Rust). |

### alis packages share

Share the selected service's defined package with one or more destination products. Each destination receives the current latest version straight away and every version defined after that. Only admins of the source product can share. Sharing is per service.

```bash
alis packages share [<package-id>] --with <org.product> [flags]
```

| Flag | Type | Default | Meaning |
|---|---|---|---|
| `--with <org.product>` | strings | | Destination product (repeatable). |

### alis packages sharing

List the products that receive the selected service's defined package.

```bash
alis packages sharing [<package-id>] [flags]
```

Aliases: `sharing`, `shares`. No flags beyond the global flags.

### alis packages swift

Refresh the service's Swift registry credentials and run `swift` in the current directory. Pass tool arguments after `--`. SwiftPM commands use temporary configuration and credential stores; temporary token files are removed on completion. With `--json`, tool output goes to stderr and stdout contains only the final result.

```bash
alis packages swift [<package-id>] -- <tool arguments> [flags]
```

No flags beyond the global flags.

### alis packages unshare

Stop sharing the selected service's defined package with the given destination products. Versions already copied stay there; no further versions are delivered.

```bash
alis packages unshare [<package-id>] --with <org.product> [flags]
```

| Flag | Type | Default | Meaning |
|---|---|---|---|
| `--with <org.product>` | strings | | Destination product (repeatable). |

### alis packages upgrade

Upgrade the existing alis.build dependencies in the selected service's manifests. `--only` limits the upgrade to specific dependencies and `--to` pins one at an exact version; `--path` limits the update to a nested module or manifest. Failed locations are rolled back to their pre-run manifests.

```bash
alis packages upgrade [<package-id>] [flags]
```

| Flag | Type | Default | Meaning |
|---|---|---|---|
| `--all` | bool | false | Upgrade all packages, not just the alis.build ones. |
| `--language <lang>` | string | | Only run for one language. |
| `--only <dep>` | strings | | Only upgrade these dependencies: dotted package IDs or exact module/package names (repeatable). |
| `--path <folder-or-manifest>` | strings | | Only run for this package folder or manifest, relative to the service (repeatable). |
| `--python-tool <tool>` | string | `uv` when installed, else `pip` | Installer for Python manifests. |
| `--to <version>` | string | | Pin this exact version: of the service's own defined package, or of the one `--only` dependency. |

### alis packages xcode-check

Check saved Xcode package state without changing it. `--resolve` runs native Xcode package resolution through Alis authentication, then checks again; it requires an explicit project or workspace and scheme and never overwrites lockfiles or closes Xcode. A non-zero exit means refresh is required or readiness could not be verified.

```bash
alis packages xcode-check [<package-id>] [flags]
```

| Flag | Type | Default | Meaning |
|---|---|---|---|
| `--cloned-source-packages-path <path>` | string | | Custom SourcePackages directory used by Xcode. |
| `--derived-data-path <path>` | string | | DerivedData used by the failing build or open Xcode workspace. |
| `--project <path>` | string | | Xcode project path. |
| `--resolve` | bool | false | Resolve the selected workspace with native Xcode, then verify. |
| `--scheme <name>` | string | | Scheme to resolve. |
| `--workspace <path>` | string | | Xcode workspace path. |

### alis packages xcodebuild

Refresh the service's Swift registry credentials and run `xcodebuild` in the current directory. Pass tool arguments after `--`. Requires macOS: registry mappings are merged into the user's SwiftPM configuration and credentials are refreshed in the macOS Keychain.

```bash
alis packages xcodebuild [<package-id>] -- <tool arguments> [flags]
```

No flags beyond the global flags.

## Examples

```bash title="Terminal"
alis packages install acme.shop.orders.v1 --json
alis packages install --language go --json
alis packages upgrade acme.shop.orders.v1 --json
alis packages upgrade --only acme.shop.users.v1 --to 1.8.0 --language go --json
alis packages upgrade acme.shop.orders.v1 --path web --language node --json
alis packages share acme.shop.users.v1 --with acme.billing --json
alis packages sharing acme.shop.users.v1 --json
alis packages swift acme.shop.app.v1 -- build --package-path app
alis packages xcode-check acme.shop.app.v1 --project app/App.xcodeproj --scheme App --json
```

## JSON output

`upgrade --json` lists `upgraded`, `unchanged` and `skipped` per dependency. `xcode-check --json` includes per-package expected and actual versions, paths and recovery argv.

## Notes

- "no published definition yet" on install means the service has never been defined: run `alis define <pkg>` first.
- `install` and `upgrade` are mutating-class commands under the automation tiers.
