Packages
Install and share extensions, skills, prompts, and themes in one directory.
On this page
What a package contains
A package is a Git repository or local directory with any of these folders. It needs no manifest.
extensions/ executable extensions
skills/ folders containing SKILL.md
prompts/ Markdown templates
themes/ JSON palettesRead a package before installing it. Extensions execute with your permissions, and its skills and prompts can direct the model. Pin a reviewed commit when you need the installed code to stay fixed.
Install, update, and remove
e install ./my-package
e packages
e install
e remove ./my-packageA local package is used in place. Removing it only forgets the entry. Git sources such as git:github.com/owner/repo@ref are cloned under ~/.e/packages/ and recorded in ~/.e/settings.json. Removing a managed Git package deletes its clone.
Run e install without a source to restore missing packages and update unpinned ones. Pinned Git refs are checked out again. Restart e or use /reload to load changes.
Compiled packages can use release:owner/repo/name@tag. e selects the platform archive from the GitHub release and checks it against the release checksums.
Try a package or share it with a team
e --package ./my-package--package, or -P, loads a package for the current run without recording it in settings. A trusted repository can also list Git or release sources in .e/packages, one per line. Run e install to install that list. Local directory entries are ignored there.
Startup reports listed packages missing from disk without fetching them. Extensions and themes do not load directly from a repository just because you trust it; install that repository as a package to load them.
For matching skill or prompt names, repository files take precedence over global files, then package files. Your global theme file also takes precedence over a package theme of the same name.
e docs packages