Skip to content

Extensions

craftware edited this page Oct 23, 2026 · 3 revisions

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 check lists every Preview part a package uses. Each package's manifest states the XeFM version it needs (min_xefm).

Official extensions

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

Community extensions

None are listed yet. If you have written one, see Adding yours to this page below.

Extension Author What it does Source

Installing

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 loads

Then 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.

Writing your own

Adding yours to this page

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.

Clone this wiki locally