# Pulse: tabs, panes and space bar preview in a Windows file manager

> Pulse is a native Windows file manager written in C++20 on Direct2D, with multi-pane tabs, a PulseIndex service for full disk pinyin search, space bar quick preview and a staging area for cross folder work. It is Windows only, and its full disk indexing requires the installer rather than the portable build.

**jimmgreen/pulse** — 为 Windows 打造的现代文件管理器，让浏览、搜索和整理文件更顺手。  |   QQ Group  1043250162

- Repository: https://github.com/jimmgreen/pulse
- Stars: 1,030 · Forks: 74
- Language: C++
- License: Apache-2.0
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/jimmgreen-pulse

## A file manager organised around tabs and panes

Pulse is a file manager for Windows built to make browsing, searching and organising files less clumsy, and the layout model is the centre of it. There are tabs and multiple panes, with single column, left and right split, top and bottom split, three column and four grid arrangements reachable with Ctrl+1 through Ctrl+4, and each tab keeps its own layout and position.

Split browsing is not just two directories side by side. The panes show the parent, the current and the selected folder at the same time, so the tree of where you are stays visible while you work. Views switch between tiles, icons, list, details and a content view, and lists can be grouped by name, date, type or size. Each folder remembers its own view, sort order and grouping, which removes a class of annoyance that every file manager has.

Two comparison tools are worth calling out. A two pane folder comparison marks items that differ between the sides, items missing on one side, and items that are newer, which turns a manual reconciliation into a visual one. Folder sizes are computed in the background, so the size column does not freeze the interface while it walks a tree. The technical stack is C++20 on Win32 with Direct2D and DirectComposition, and the file system, indexing, preview and shell task work are split into separate modules specifically to keep the interface from blocking.

## PulseIndex and searching Chinese filenames by pinyin

The indexing service is called PulseIndex, and it is installed with the application. The installer offers to enable the PulseIndex service for full disk index search, and the documentation is explicit about the constraint: the portable build runs after you unzip it and keeps its configuration in the user application data directory, but the full disk index service has to be deployed through the installed version.

The service indexes file names across a whole drive and updates live, and searches can be scoped to the current folder or to folders you choose. The part that sets it apart is pinyin handling. File name search accepts full pinyin, initials and polyphonic characters, and the README gives the example that typing sh finds the three example names given in the documentation, with the matched characters highlighted in the result. For a user whose file names are largely Chinese, initials search is the difference between finding a file and not.

Content search is separate and broader: text and code, PDF, Word, Excel and PowerPoint files, with results loading as a stream. Opening the containing location keeps the previous results reachable, so a search session is not lost every time you check a file. There is also an advanced search under Ctrl+Shift+F filtering by type, date and size, a global quick search on Alt+Space, and an option to see all results in the main window. A small convenience that shows the audience: typing cmd, powershell, pwsh or wt in the address bar opens a terminal in the current folder.

## Space bar preview for the formats you actually open

Pulse's most-used feature is likely the quick preview. Select a file and press space, and it renders in place without opening the associated application. The format coverage is wide and specific: Markdown is laid out as rendered text, code gets syntax highlighting, PDFs are paged, folders show a listing of their contents, CSV, TSV and XLSX appear as tables, JSON and XML as collapsible trees, and Jupyter Notebooks are shown cell by cell. DOCX, EPUB and Office documents can be read without the relevant software installed, archives show their directory tree and can be searched inside, and video plays with scrubbing and frame by frame stepping, as do animated WebP and APNG. Thumbnails are available for SVG, PSD, AI, DWG and fonts.

A second layer sits on top of that. Hovering over a file for a moment, 0.5 seconds by default, pops a card with a thumbnail or text excerpt, the type and key details, and pressing space while the card is up expands it into the full preview. The card changes shape with the content, becoming wider for scope images and video and taller for document pages and portrait images, and files with no preview fall back to showing information only. Holding Ctrl enlarges it temporarily. The settings page lists every supported format and detects whether the HEIF, HEVC, AV1 and WebP system extensions are installed, and the preview mode can be changed to space only, with the hover delay and card size adjustable.

What it does not do is run the real application, so an interactive PDF form or a spreadsheet with macros is still a job for the real program.

## The staging area turns copy and cut into a workflow

Files you copy or cut with Ctrl+C or Ctrl+X do not disappear into an abstract clipboard. They collect in a staging area at the bottom left of the window, where you can gather items from different folders and different tabs and then drag them to a destination in one go. Dragging copies by default and moves when you hold Shift.

Staging two files also enables a comparison. Pulse shows their location, modification time, size and content side by side, and for text files a view differences command opens a diff window with side by side and unified layouts, inline highlighting of changed lines, a filter that shows only the differences, options to ignore whitespace and case, and F7 and Shift+F7 to jump between changes.

This is the kind of feature that sounds minor and turns out to be the reason people keep a tool. Most file managers treat the clipboard as a single slot; a staging area that holds a queue and can compare its contents behaves more like a small workflow tool, which is why Pulse also folds in a details panel with preview, basic information and tags, and a combined properties window for a multi-selection.

## Taking over the default file handler, and taking it back

Pulse can register itself as the default file manager, which makes it handle opening folders, the Win+E shortcut and the This PC entry on the desktop, and makes the open file location command select the file inside Pulse. The documentation is careful to say this can be switched off at any time and the original arrangement restored, and that specificity is the point: a file manager that silently takes over the shell shortcut is a support burden for the person who installed it.

The context menu integration is similar in spirit. Pulse merges the Explorer context menu with the Windows 11 style entries, including items such as VS Code, Windows Terminal and NanaZip, and its own items can be hidden. There is a start on boot option that launches into the tray, a setting for the default location, and a preference to restore the previous tabs at startup.

Two smaller integration details are useful in practice. When a file is locked, Pulse shows which process is holding it and lets you end that process and retry instead of failing with an opaque error. The This PC view also reports the disk type and a capacity bar, which is the sort of information you want when deciding where to put a large download.

## Automatic updates through mirrors, with verification each time

Pulse checks for a new version after it starts, shows a prompt in the window, and the installer downloads and, once verification passes, opens the install wizard. A manual check sits in the settings under About and Diagnostics, and the automatic check can be switched off on the same page. The download can be cancelled, and Windows will ask you to confirm administrator rights during installation. The regular build and the Windows 8.1 compatible build receive their own updates.

The part with real engineering content is the source list. The update manifest and the installers are fetched by trying ghproxy.net and then gh-proxy.com in turn, switching automatically when a connection fails and falling back to GitHub last, with no configuration required. Every source has to pass signature and installer verification before anything is installed, so the mirrors are a speed optimisation rather than a trust decision.

One upgrade note catches people out. Versions 1.0.2 and earlier have to install 1.0.3 or a later version manually once, and only then will they start receiving automatic update prompts. The project documents this as an explicit requirement rather than hiding it, and the details of the update and release process live in docs/automatic-updates.md alongside docs/windows-compatibility.md and docs/index-migration.md.

## Building from source with a pinned LumaText SDK

The source builds require Windows on x64, the Visual Studio C++ toolchain, CMake 3.25 or later and Ninja. Release builds additionally need PowerShell 7.2 or later and Python 3, which are used to package the installer. A development build is two commands:

```powershell
.\build_release.bat
.\build\pulse.exe
```

The CI path produces the same installer artefact as a published release and runs regression checks, once per target channel:

```powershell
pwsh ./scripts/build_release_ci.ps1 -Channel windows
pwsh ./scripts/build_release_ci.ps1 -Channel win81 -BuildDir build-ci-win81
```

The release script uses Visual Studio 2022 v143 and verifies a fixed version of the LumaText static runtime SDK taken from the repository. The manifest at cmake/lumatext-sdk.json pins the SHA-256 of the SDK manifest, and that manifest covers the DLL, the import libraries, the headers, the CMake export and the licences, so the runtime that ships is the one that was reviewed. A development build can point at a source tree with LUMATEXT_SOURCE_DIR, and when LumaText is not found the text rendering falls back to DirectWrite.

The repository also carries the smaller build scripts used for the other variants, build_d2d.bat, build_installer.bat, build_win81.bat and build_win81_installer.bat, plus packs/, tools/, third_party/ and a version.txt.

## Where Pulse is the wrong tool

The boundaries are clear enough to state before anyone installs it.

It is a Windows application and nothing else. The implementation is Win32 with Direct2D and DirectComposition, the downloadable artefacts are .exe installers and a Windows x64 zip, and the compatibility story includes a separate Windows 8.1 build. There is no macOS or Linux version, and the source does not build for those platforms.

Second, the portable archive is not equivalent to the installer. It runs from a folder and keeps its configuration in the user application data directory, but the full disk index service must be deployed by the installed version. If full disk pinyin search is the reason you want Pulse, the portable build is the wrong download.

Third, the default file manager role is a decision with consequences for everyone else on the machine, and the update path deliberately relies on third party mirrors. Both are reversible, and both are reasons to read the settings before you commit.

Finally, the preview is a renderer, not an editor. Office documents can be read without the Office software installed, but they are not edited in place, and a format that needs its application, such as a spreadsheet with macros or an interactive PDF form, still requires launching that application. Pulse shortens the decision to open a file; it does not replace the application behind it.

## Conclusion

Adopt Pulse if you spend your day moving files on Windows, especially if you search by pinyin initials, preview before opening, or work across several directories at once, and you are willing to install the packaged build rather than the portable archive. Do not adopt it on macOS or Linux, since the whole implementation is Win32 specific, and think twice before letting it become your default file handler. Verify three things first: that the PulseIndex service is installed, since the portable zip cannot deploy it and full disk search depends on it; that your default file manager association can be reverted, because Pulse takes over Win+E and the This PC entry; and that the update mirrors are acceptable in your environment, since the update path tries ghproxy.net and gh-proxy.com before falling back to GitHub and every source must pass signature and installer verification. The licence is Apache-2.0, the newest release is v1.0.56 dated 2026-10-16, and the last push was on 2026-10-16.

## FAQ

### What is Pulse and which platforms does it support?

Pulse is a file manager for Windows with multi-pane tabs, full disk indexed search, space bar quick preview and a staging area. It is built on C++20, Win32, Direct2D and DirectComposition, with installers for Windows 10 and 11 plus a separate Windows 8.1 compatible build.

### How does Pulse search file names by pinyin?

File name search supports full pinyin, initials and polyphonic characters. The README gives an example where typing sh matches three different names in the documentation, with the matched characters highlighted in the results.

### Do I need the installer for Pulse full disk search?

Yes for the index service. The installer can enable the PulseIndex service used for full disk indexed search, and the documentation states that the portable version runs from the unzipped folder but the full disk index service has to be deployed through the installed version.

### How does Pulse update itself?

It checks after startup and shows a prompt, and you can also check manually in the settings. The update manifest and installers are fetched by trying ghproxy.net and gh-proxy.com first and falling back to GitHub, and every source must pass signature and installer verification. Versions 1.0.2 and earlier need one manual install of 1.0.3 or later before update prompts arrive.

### What do I need to build Pulse from source?

Windows on x64, the Visual Studio C++ toolchain, CMake 3.25 or later and Ninja, with PowerShell 7.2 or later and Python 3 additionally required for release packaging. The release script uses Visual Studio 2022 v143 and verifies the pinned LumaText SDK listed in cmake/lumatext-sdk.json.

## Sources

- [Issues](https://github.com/jimmgreen/pulse/issues)
- [jimmgreen/pulse on GitHub](https://github.com/jimmgreen/pulse)
- [License: Apache-2.0](https://github.com/jimmgreen/pulse/blob/main/LICENSE)
- [README](https://github.com/jimmgreen/pulse/blob/main/README.md)
- [Releases](https://github.com/jimmgreen/pulse/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/jimmgreen-pulse
