Repository navigation
Extensions
An extension package adds actions, event hooks, themes, sort orders, filters,
picture formats, locations or syntax highlighting to XeFM without touching
your config.py. It installs, disables and uninstalls as one unit.
Extensions run inside XeFM with your permissions, and there is no sandbox. Install only packages you trust.
Extensions use XeFM's API version 1 (XeFM 1.10.0 and later). Most of it is stable; the parts marked Preview may still change, and
xefm ext checklists every Preview part a package uses. Each package's manifest states the XeFM version it needs (min_xefm).
Kept by the XeFM project in crftwr/xefm-extensions. They use the same public API as anyone else's, so they are also examples to copy.
| Extension | What it does | Needs | Source |
|---|---|---|---|
| Classic Blue | A theme in the classic dual-pane look: blue background, cyan files, white folders, a yellow cursor cue. Colors only, so the terminal and the desktop app look the same. | XeFM 1.10.0 | github:crftwr/xefm-extensions/classic-blue |
| Compute Hash | MD5, SHA-1, SHA-256, SHA-512 or BLAKE2b digests of the selected files, computed in the background and shown in sha256sum form, ready to copy. Works on SSH, S3 and inside archives. |
XeFM 1.10.0 | github:crftwr/xefm-extensions/compute-hash |
| Images to PDF | Combines the selected images into one PDF in the other pane's folder, one page per image, turned upright by their EXIF orientation. Pictures can come from SSH, S3 or an archive. | XeFM 1.10.0 | github:crftwr/xefm-extensions/images-to-pdf |
| Line Count | Lines, words and characters of the selected files — or of everything in a selected folder, skipping hidden ones — as a table, longest file first, with copyable totals. Works on SSH, S3 and inside archives. | XeFM 1.10.0 | github:crftwr/xefm-extensions/line-count |
| S3 Share | Copies a time-limited HTTPS link (presigned URL) to an S3 object: 1 hour, 1 day or 7 days, signed with the AWS credentials XeFM uses. | XeFM 1.10.0 | github:crftwr/xefm-extensions/s3-share |
| Size & Date Filters | Filter-dialog rows for files over 100 MB or 1 GB, modified today, or modified in the last 7 days. | XeFM 1.10.0 | github:crftwr/xefm-extensions/size-date-filters |
| Unblock Files | Removes the downloaded-from-the-internet mark (Mark of the Web) from the selected files, like Explorer's Unblock, after showing where they came from. | XeFM 1.10.0, Windows | github:crftwr/xefm-extensions/unblock-files |
None are listed yet. If you have written one, see Adding yours to this page below.
| Extension | Author | What it does | Source |
|---|---|---|---|
Every extension has a source, such as github:crftwr/xefm-extensions/compute-hash
(the tables above list them).
Inside XeFM (the desktop app or the terminal app, XeFM 1.10.0 or later):
choose Tools ▸ Advanced ▸ Install Extension… and paste the source. XeFM
downloads and checks the package and lists everything it adds. Choose
Install (the dialog starts on Cancel), and XeFM reloads its configuration.
The field also takes an https:// zip URL or a local path, and with the
cursor on a package folder or .zip it is already filled in.
With the xefm command (pip, pipx, uv or Homebrew formula installs):
xefm ext install github:<owner>/<repo> # a repository that is one package
xefm ext install github:<owner>/<repo>/<folder> # one package of several in a repository
xefm ext install github:<owner>/<repo>/<folder>@<tag> # pin a release
xefm ext list # what is installed, and whether it loadsThen run Tools ▸ Reload Configuration or restart XeFM.
The same sources, @<tag> included, work in both. The desktop app and the
terminal app share ~/.xefm, so a package installed either way is available
in both. Tools ▸ Advanced ▸ Extensions… shows which packages loaded, and
why any did not.
Full reference: Extension Packages.
-
Extension Packages:
the manifest, what a package can contribute, settings,
xefm ext check. -
Customization:
the Preview API that extensions and
config.pyshare. - The XeFM Skill for AI Agents: lets an AI coding agent write and check a package for you.
- crftwr/xefm-extensions: working packages, with tests, to start from.
Post your extension in the Show and tell discussion category with:
- a link to the repository (it must contain an
xefm-extension.toml), - a one-line description of what it does,
- the install source, such as
github:you/your-extension.
It will be added to the community table. Listing a package here is not a review of its code.