---
sidebar_position: 12.5
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# `lium describe`

One pod in full — ports, GPU, template, access, billing — as a single manifest.

```bash
lium describe POD_ID [OPTIONS]
```

## Arguments

- `POD_ID` — Pod name, huid, or id. Unlike the pod-targeting commands, this one
  does not take the numeric index from [`lium ps`](./ps.md).

## Options

| Flag | Effect |
|------|--------|
| `--json` | Print the manifest as machine-readable JSON |

## Examples

```bash
lium describe my-pod
lium describe my-pod --json | jq '.ports.ssh_external'
```

`--json` carries the whole manifest, grouped into `pod`, `gpu`, `machine`,
`ports`, `access`, `template`, `storage`, and `billing`. The default table is the
readable subset of it — pod, GPU, machine, template, ports, SSH and cost — so
fields like pod id, creation time, location, Jupyter URL and volume encryption
are only in the JSON.

Both outputs spell out the port direction, the detail that costs the most time to
get wrong: the JSON mapping reads `internal -> external` and carries that
direction as a field, while the table column is labelled `ext→int`. The SSH port
is broken out from the ports left for your own services either way.

A `POD_ID` that matches nothing exits `5`, so a typo cannot read as an empty pod.
With `--json` the command never blocks on the interactive setup prompt: a missing
API key surfaces as the JSON error envelope instead.

## See also

- [`lium ps`](./ps.md) — list pods and read off a name, huid or id
- [`lium ssh`](./ssh.md) — open a session on the pod you just described
