# PackageManager.available
URL: https://lsd.tools/docs/api-package-manager-available
Updated: 2026-07-17

## Example

```python
from lsdtools.advanced import PackageManager

pm = PackageManager()
for info in pm.available():
    print(info.name, "on" if info.enabled else "off")
```

## Notes

Merges three sources by `name` — pip `lsd.packages` entry points, the [`search_paths`](/docs/api-package-manager-search-paths)
folders, and the installed record — with the installed record winning (it carries the authoritative
`source` / `enabled`). This is exactly what the Packages panel lists; [`installed()`](/docs/api-package-manager-installed)
alone would miss entry-point packages, so a normal dev/pip setup would look empty. The result is
sorted by `display_name` (falling back to `name`), case-insensitively.

## See also

**API:** [installed](/docs/api-package-manager-installed) · [loaded_names](/docs/api-package-manager-loaded-names) · [search_paths](/docs/api-package-manager-search-paths)

**Guides:** [The Package Manager](/docs/pkg-manager) · [lsd_package.json](/docs/api-manifest)
