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

## Parameters

| name | type | default | description |
|---|---|---|---|
| `source` | `str` | — | path to a package folder containing an `lsd_package.json` |

## Example

```python
from lsdtools.advanced import PackageManager

pm = PackageManager()
pm.add_local("~/dev/my-pkg")   # stays in place; edits are live
```

## Notes

Unlike [`install`](/docs/api-package-manager-install) (which copies into `~/.lsd/packages/`), the
folder stays where it is and its edits are picked up on the next
[`reload`](/docs/api-package-manager-reload). It is recorded with `source="local"` so it persists and
loads again on the next launch. Returns `None` when the folder has no `lsd_package.json`. This is the
desktop's "Add local package…" path — the authoring loop.

## See also

**API:** [install](/docs/api-package-manager-install) · [reload](/docs/api-package-manager-reload) · [remove](/docs/api-package-manager-remove)

**Guides:** [Develop a package](/docs/pkg-develop) · [A complete package](/docs/ex-full-package)
