# alineo list
URL: /docs/cli/commands/list

List the agent specs saved in the current project's agents directory.



```bash
bunx alineo-cli list
```

Reads `alineo.config.json` for `agentsDir` (defaults to `./agents`), lists every `.json` file there, and prints a table. It does not query the OpenSandbox server or check whether any sandbox exists for a spec — it only reads local files.

## Example output [#example-output]

```
NAME                  CLI       DESCRIPTION
node-toolchain        pi        A Node.js sandbox with TypeScript tooling.
python-data-sci        pi        A Python sandbox for data science work.
```

| Column        | Description                                                                                           |
| ------------- | ----------------------------------------------------------------------------------------------------- |
| `NAME`        | The spec's `name` field, or the filename (without `.json`) as a fallback. Truncated to 19 characters. |
| `HARNESS`     | The spec's `harness` field (currently always `"pi"`). Truncated to 7 characters.                      |
| `DESCRIPTION` | The spec's `description` field, falling back to `title`, or blank if neither is set.                  |

A spec file that fails to parse as JSON is still listed, with `(unreadable)` in place of its columns, instead of being silently skipped.

## Notes [#notes]

* `list` only reflects what's in `agentsDir` on disk — a spec appearing here does not mean it has ever been `Alineo.start()`ed or has a sandbox snapshot yet.
* If `agentsDir` doesn't exist, `list` prints `No agents dir found at '<dir>'. Run 'alineo add <url>' to add an agent spec.` and exits cleanly.
* If `agentsDir` exists but is empty, `list` prints `No agent specs found. Run 'alineo add <url>' to add one.` and exits cleanly.
