# list, search, show, validate
Inspection built-ins over the preferred tree. They do not run `exec` leaves.
## `jan list`
List script leaves (nodes that look like script entries: typically a `run` child).
```bash
jan list
jan list --category files
jan list --format names
```
| `--category NAME` | Only scripts under this category segment (case-insensitive) |
| `--format FMT` | `table` (default) or `names` |
## `jan search`
Find script leaves by name, about text, or category. At least one filter is required. Patterns are case-insensitive substrings.
```bash
jan search --keyword git
jan search --name sum --category misc
```
| `--name PAT` | Match script name |
| `--about PAT` | Match about / description |
| `--category NAME` | Exact category segment |
| `--keyword PAT` | Match name or about |
## `jan show`
Print details for a script leaf (name, chain, run line, category, about, deps, requires, env, inputs, cron, source include, exec form, packages).
```bash
jan show sum
jan show csv-summary
```
Ambiguous names list matching chains. Unknown names suggest similar leaves.
## `jan validate`
Load-time checks for the preferred tree: node constraints, declared include hashes, package path existence, missing `about` on script leaves.
```bash
jan validate
jan validate --requires
```
`--requires` also reports missing host binaries in `requires` and unset `env.private` variables.