Releases: skim-rs/skim
4.5.1 - 2026-04-07
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 | shInstall 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
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 | shInstall 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
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 | shInstall 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
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).
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 | shInstall 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
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 | shInstall 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
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
⚙️ 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 | shInstall 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
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 | shDownload 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
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 | shDownload 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
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
schemefor 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 | shDownload 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
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 | shDownload 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 |