lawn catalog
| Command | Description |
|---|---|
lawn catalog search [query] | List or search available app templates |
lawn catalog info <id> | Show details for a template |
lawn catalog refresh | Pull the latest catalog updates |
lawn catalog list | List configured catalog sources |
lawn catalog add <location> | Register a Git or local catalog |
lawn catalog remove <identifier> | Deregister a custom catalog |
Installing an app lives under lawn app install.
Template IDs and catalog slugs
Every template has an id. With the built-in catalog that's usually the short form (whoami, jellyfin). Once you add custom catalogs, two catalogs can ship a template with the same short name — so templates also have a canonical id that includes the catalog they came from.
- Canonical id —
<owner>/<repo>/<app>(e.g.getlawn/templates/whoami,alice/my-apps/photoprism). Always unambiguous. - Short id —
<app>(e.g.whoami). Works whenever only one catalog ships that app. Otherwise commands error and list the canonical forms to pick from.
Every command that takes a template id (app install, catalog info, …) accepts either form.
lawn catalog search
List or search available app templates. With no query, all templates are listed; with a query, results are filtered by name, description, or tags.
lawn catalog search [query]
| Option | Description |
|---|---|
--category <name> | Filter by category |
-q, --quiet | Only display template IDs |
# List every template
lawn catalog search
# Search by keyword
lawn catalog search photos
lawn catalog search "password manager"
# Filter by category
lawn catalog search --category Media
# Get just the IDs (useful for scripting)
lawn catalog search --quiet
lawn catalog info
Show full details for an app template, including its description, features, and links.
lawn catalog info <template-id>
# Short form (when unambiguous across your catalogs)
lawn catalog info jellyfin
# Canonical form (always works)
lawn catalog info getlawn/templates/paperless-ngx
lawn catalog info alice/my-apps/photoprism
# List available versions
lawn catalog info paperless-ngx --versions
lawn catalog refresh
Pull the latest catalog updates from all configured repositories.
lawn catalog refresh
Lawn automatically updates catalogs in the background, but this forces an immediate update across every configured source.
lawn catalog list
List every configured catalog repository source — built-in plus any you've added.
lawn catalog list
Shows each source's slug, URL, git ref, subdirectory path, and whether it's a built-in or custom catalog. Pass --output json for a machine-readable form that also includes the catalog's stable UUID.
lawn catalog add
Register a catalog by Git URL, GitHub owner/repository, or local directory path. Lawn clones remote repositories; local directories are used in place and are never updated by Lawn. Its templates are immediately available to lawn catalog search and lawn app install.
lawn catalog add <location>
Press Ctrl+C to cancel an add. If the connection closes or Lawn reports missing progress updates, the add may still finish. Check lawn catalog list before trying again.
| Option | Description |
|---|---|
--ref <ref> | Pin to a specific git tag or branch. Defaults to the repository's default branch. |
--path <dir> | Subdirectory within the repo containing catalog apps. Defaults to the repo root. |
# Add a public GitHub catalog
lawn catalog add https://github.com/alice/my-apps.git
# Add a local catalog
lawn catalog add ~/Projects/my-lawn-catalog
# Pin to a specific branch
lawn catalog add https://github.com/alice/my-apps.git --ref stable
# Apps live in a subdirectory of the repo
lawn catalog add https://github.com/alice/monorepo.git --path lawn-apps
Remote catalogs must be public Git repositories.
lawn catalog remove
Deregister a custom catalog. Lawn removes the registry entry and deletes the local clone to free disk space.
lawn catalog remove <identifier>
The identifier can be the catalog's slug, its URL (case-insensitive, .git suffix optional), or its UUID from lawn catalog list --output json.
# By slug
lawn catalog remove alice/my-apps
# By URL
lawn catalog remove https://github.com/alice/my-apps.git
# By UUID
lawn catalog remove 8C2A3B42-F077-4D89-B216-E5DEB0E7A6F1
Two safety rules apply:
- Built-in catalogs cannot be removed. Attempting to remove
getlawn/templatesreturns an error. - Catalogs with installed apps cannot be removed. If any app is still installed from that catalog, the command refuses and lists the blocking instances by name. Uninstall them first (
lawn app remove <id>) and re-run.