github skim-rs/skim v3.7.0
3.7.0 - 2026-03-08

one day ago

Release Notes

This adds a new library API: Skim::run_items. Using this, you don't need to send the items, the library handles it for you.

Instead of writing this:

use skim::prelude::*;
let (rx, tx) = unbounded();

// We need MySkimItem to override the set_index/get_index methods
struct MySkimItem {
    value: String,
    index: usize
}

impl SkimItem for MySkimItem {
    // Implement the default members
}

tx.send(vec![Arc::new(MySkimItem { value: String::from("foo"), index: 0 }) as Arc<dyn SkimItem>, Arc::new(MySkimItem { value: String::from("bar"), index: 1 }) as Arc<dyn SkimItem>]);

let res = Skim::run_with(options, Some(rx));

You can simply write this:

use skim::prelude::*;

let res = Skim::run_with(options, ["foo", "bar"]);

It will automatically convert any iterator of by adding an index field and then send it, before running skim.

🚀 Features

  • Add scheme for better filepath matching in Arinae
  • Add Skim::run_items API

🐛 Bug Fixes

  • Use sum of scores in And engine
  • Correctly init rank for and engine

⚙️ Miscellaneous Tasks

  • Add gungraun benchmark
  • Review snapshots

Install skim 3.7.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/skim-rs/skim/releases/download/v3.7.0/skim-installer.sh | sh

Download skim 3.7.0

File Platform Checksum
skim-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
skim-x86_64-apple-darwin.tar.xz Intel macOS checksum
skim-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
skim-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
skim-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

Don't miss a new skim release

NewReleases is sending notifications on new releases.