Skip to content

Releases: skim-rs/skim

4.5.1 - 2026-04-07

07 Apr 18:50

Choose a tag to compare

Release Notes

🐛 Bug Fixes

  • Show popup border unless --no-border (closes #1032)

📚 Documentation

  • Add bench graphs [skip ci]

⚙️ Miscellaneous Tasks

  • (ci/deps) Bump codecov/codecov-action from 5 to 6 (#1035)
  • (ci/deps) Bump actions/create-github-app-token from 1 to 3 (#1034)
  • (ci/deps) Bump actions/checkout from 4 to 6 (#1033)

Install skim 4.5.1

Install prebuilt binaries via shell script

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

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/skim-rs/skim/releases/download/v4.5.1/skim-installer.ps1 | iex"

Download skim 4.5.1

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

4.5.0 - 2026-04-07

07 Apr 09:32

Choose a tag to compare

Release Notes

Benchmark on 100K items

FZF still uses less memory than skim on 100K items, but sk is now faster at ingesting and matching 100K items, which makes it faster across all current benchmarks.

Binary Runs Matched Avg time Δ time Avg rate Δ rate Avg mem (MB) Δ mem Avg CPU (%) Δ CPU Startup (s) Δ startup
sk v4.5.0 (baseline) 10/10 29657 0.040s 2575001 92.7 720.5% 0.020s
sk v4.4.0 10/10 38590 0.097s +144.8% 1033707 -59.9% 93.8 +1.1% 629.8% -12.6% 0.020s -0.5%
fzf 0.70.0 10/10 29023 0.056s +40.6% 2002235 -22.2% 36.7 -60.4% 123.2% -82.9% 0.027s +33.2%

🚀 Features

  • Rename tmux -> popup and add zellij (#1027)
  • Better performance on small datasets

⚙️ Miscellaneous Tasks

  • Deps: Only use frizbee on x86_64 and aarch64 (#1028)

New Contributors

Install skim 4.5.0

Install prebuilt binaries via shell script

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

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/skim-rs/skim/releases/download/v4.5.0/skim-installer.ps1 | iex"

Download skim 4.5.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-x86_64-pc-windows-msvc.zip x64 Windows checksum
skim-x86_64-pc-windows-msvc.msi x64 Windows checksum
skim-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
skim-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
skim-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
skim-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

4.4.0 - 2026-04-02

02 Apr 18:13

Choose a tag to compare

Release Notes

🚀 Features

  • Add scrollbar

⚙️ Miscellaneous Tasks

  • Better CI caching (#1026)

Install skim 4.4.0

Install prebuilt binaries via shell script

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

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/skim-rs/skim/releases/download/v4.4.0/skim-installer.ps1 | iex"

Download skim 4.4.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-x86_64-pc-windows-msvc.zip x64 Windows checksum
skim-x86_64-pc-windows-msvc.msi x64 Windows checksum
skim-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
skim-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
skim-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
skim-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

v4.3.0

31 Mar 19:04

Choose a tag to compare

Performance improvements

This release brings a custom thread pool & coordinator shared between the reader & matcher (instead of a single-threaded reader and rayon for the matcher).

In practice, this makes skim up to 4x as fast as fzf with 100M items in our benchmarks, see below for details (note the logarithmic scales).

image

100K items

Binary Avg Time (s) Avg CPU (%) Avg RAM (MB)
fzf 0.70.0 0.1756 50.7 36.7
sk v4.2.0 0.1755 173.0 104.9
sk v4.3.0 0.1753 185.2 92.5

1M items

Binary Avg Time (s) Avg CPU (%) Avg RAM (MB)
fzf 0.70.0 0.1773 655.1 156.9
sk v4.2.0 0.2266 779.7 275.2
sk v4.3.0 0.1969 893.7 286.5

10M items

Binary Avg Time (s) Avg CPU (%) Avg RAM (MB)
fzf 0.70.0 1.868 1548.8 1860.4
sk v4.2.0 1.338 894.9 1694.4
sk v4.3.0 0.984 1500.1 1798.2

100M items

Binary Avg Time (s) Avg CPU (%) Avg RAM (GB)
fzf 0.70.0 40.840 1964.5 19.03
sk v4.2.0 16.602 917.2 13.35
sk v4.3.0 10.113 1569.4 15.27

Install skim 4.3.0

Install prebuilt binaries via shell script

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

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/skim-rs/skim/releases/download/v4.3.0/skim-installer.ps1 | iex"

Download skim 4.3.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-x86_64-pc-windows-msvc.zip x64 Windows checksum
skim-x86_64-pc-windows-msvc.msi x64 Windows checksum
skim-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
skim-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
skim-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
skim-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

4.2.0 - 2026-03-30

30 Mar 12:14

Choose a tag to compare

Release Notes

🚀 Features

  • Add multiline item rendering (#999)

Install skim 4.2.0

Install prebuilt binaries via shell script

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

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/skim-rs/skim/releases/download/v4.2.0/skim-installer.ps1 | iex"

Download skim 4.2.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-x86_64-pc-windows-msvc.zip x64 Windows checksum
skim-x86_64-pc-windows-msvc.msi x64 Windows checksum
skim-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
skim-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
skim-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
skim-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

4.1.0 - 2026-03-29

30 Mar 08:28

Choose a tag to compare

Release Notes

This release brings initial windows support !

Please open an issue or even a PR with any bug or potential improvements you may spot.

🚀 Features

  • Windows support (#1010)

🐛 Bug Fixes

  • Broken pipe in bash alt-c (closes #1018)
  • Trim whitespace in zsh hist widget (closes #1019)

⚙️ Miscellaneous Tasks

  • Refactor engine building
  • Minor perf

Install skim 4.1.0

Install prebuilt binaries via shell script

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

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/skim-rs/skim/releases/download/v4.1.0/skim-installer.ps1 | iex"

Download skim 4.1.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-x86_64-pc-windows-msvc.zip x64 Windows checksum
skim-x86_64-pc-windows-msvc.msi x64 Windows checksum
skim-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
skim-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
skim-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
skim-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

4.0.1 - 2026-03-28

28 Mar 09:22

Choose a tag to compare

Release Notes

🐛 Bug Fixes

  • (keybindings) Make sure we use the correct filtering fields

📚 Documentation

  • Add benchmarks to README.md [skip ci]

⚙️ Miscellaneous Tasks

  • Clippy pedantic
  • Correct typos in code, comments and documentation (#1002)
  • Add sonar analysis (#1009)
  • (ci) Add sonar directly to test workflow
  • Set rust msrv (closes #1017)
  • Remove sonar

New Contributors

Install skim 4.0.1

Install prebuilt binaries via shell script

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

Download skim 4.0.1

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

4.0.0 - 2026-03-10

10 Mar 15:40

Choose a tag to compare

Release Notes

Changes

sk is now beating fzf in interactive matching for time, peak memory usage and CPU usage ! See the benchmarks below for details, including a brief explanation of the benchmark itself.

This release brings multiple breaking changes, please read the following if you have doubts about the update.

Default to the Arinae matcher

The biggest change of them all is that the default algorithm is now Arinae, skim's latest and most performant algorithm, featuring typo-resistance. If you want to keep using SkimV2, pass --algo skim_v2 and please take the time to open an issue explaining why if possible.
This also makes the --scheme option available to the default matcher, allowing for more refined matching scenarii.

Default to non-typo resistant

Typo-resistant behavior is now disable by default, add --typos to your skim invocation or SKIM_DEFAULT_OPTIONS to get it back. Unless you were using the frizbee, fzy or arinae matcher, this should not impact you.

Removal of the skim_v1 algorithm

The SkimV1 algorithm, skim's initial algorithm, has been deprecated for years now, and it has now been removed.

SkimItem index (library only)

SkimItem::get_index and SkimItem::set_index are gone, and all index handling is now done internally.

Benchmarks

This benchmarks runs the interactive interface in a tmux session, and waits for the UI to stabilize.
It uses a 10 million path-like ASCII items input file, and the query test.

=== Results: sk v4.0.0 [baseline] ===
Completed runs: 50 / 50
Average items matched: 2895782 / 10000000  (min: 2895782, max: 2895782)
Average time: 3.827s  (min: 3.576s, max: 4.090s)
Average items/second: 2615767  (min: 2445033, max: 2796365)
Average peak memory usage: 1589.2 MB  (min: 1518.6 MB, max: 1661.2 MB)
Average peak CPU usage: 528.9%  (min: 457.0%, max: 740.0%)

=== Results: sk v3.7.0 ===
Completed runs: 50 / 50
Average items matched: 2895782 / 10000000  (min: 2895782, max: 2895782) +0.0%
Average time: 3.930s  (min: 3.565s, max: 4.226s)  +2.7%
Average items/second: 2548674  (min: 2366263, max: 2804816)  -2.6%
Average peak memory usage: 1618.8 MB  (min: 1539.1 MB, max: 1680.6 MB) +1.9%
Average peak CPU usage: 696.8%  (min: 608.0%, max: 875.0%)  +31.7%

=== Results: fzf 0.70.0 ===
Completed runs: 50 / 50
Average items matched: 2895782 / 10000000  (min: 2895782, max: 2895782) +0.0%
Average time: 5.421s  (min: 4.814s, max: 6.111s)  +41.7%
Average items/second: 1848269  (min: 1636444, max: 2077385)  -29.3%
Average peak memory usage: 2015.3 MB  (min: 1860.7 MB, max: 2173.9 MB) +26.8%
Average peak CPU usage: 1301.1%  (min: 1229.0%, max: 1431.0%)  +146.0%

=== Comparison Summary (vs baseline: sk v4.0.0) ===
Binary      Avg time     Δ time  Avg rate     Δ rate
------------------------------------------------------------------------------
sk v4.0.0   3.827s    baseline   2615767     baseline
sk v3.7.0   3.930s      +2.7%    2548674      -2.6%
fzf 0.70.0  5.421s     +41.7%    1848269     -29.3%

🚀 Features

  • [breaking] Internally compute indexes at match time (removes get/set_index) (#1001)
  • [breaking] Use Arinae as default algorithm

⚙️ Miscellaneous Tasks

  • [breaking] Default to disabled typos
  • Use python for bench script for comparison

Install skim 4.0.0

Install prebuilt binaries via shell script

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

Download skim 4.0.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

3.7.0 - 2026-03-08

08 Mar 18:35

Choose a tag to compare

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

3.6.2 - 2026-03-04

04 Mar 20:24

Choose a tag to compare

Release Notes

⚙️ Miscellaneous Tasks

  • Refactor app layout computations to take them out of the hot loop (#996)
  • Allow using flag or env vars for both log level and file

Install skim 3.6.2

Install prebuilt binaries via shell script

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

Download skim 3.6.2

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