Bundle the local files dew tracks for this repo — the context Git ignores (.env.local, dev certs, docker-compose.override.yml, local config) — into one encrypted image at ~/.dew/images/<project>.dew.age.
Run it after you add or change a tracked file: pack always uses the current contents of the allow-list, so you declare files once with 'dew add' and never re-add. The image is what 'dew sync' ships and 'dew restore' restores — packing is how your local state becomes portable. Next: 'dew sync' to push it.
The deny-list keeps noise out even from allow-listed directories — though a file you added by name is always packed; explicit intent wins. pack won't overwrite an image created by a different repo unless you pass --force.
--all is the one-shot exception: instead of the allow-list, it packs every LOCAL file — everything Git doesn't carry, ignored and not-yet-committed alike (it asks 'git ls-files', so it needs Git and a git repo). The manifest is untouched, the deny-list still filters generated noise, and .git/ and .dew/ are never included. Use it to carry a repo's complete local half; preview with --dry-run. If --dry-run shows project-specific generated files (e.g. an Expo app's ios/ and android/), exclude them with a deny: entry in .dew/manifest.yaml — see 'dew rules'.