Pretty fancy and modern terminal file manager
| Files | Last commit | Last update |
|---|---|---|
ci: update golangci-lint (#1484) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated CI/CD build tooling to the latest version * Refined code quality checks and linter configuration * Cleaned up redundant linting annotations in code <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 2 months ago | |
docs: remove Warp sponsorship (#1542) Remove Warp sponsorship since Warp no longer sponsor superfile. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Simplified the README’s community support call-to-action for a cleaner, more focused layout. * Updated sponsor acknowledgments in the special-thanks documentation (English): removed the Warp entry and added a Ko-fi supporter thanks while keeping JetBrains recognition. * Updated sponsor acknowledgments in the special-thanks documentation (Traditional Chinese) to match the same removal/addition. <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 1 month ago | |
add cd_on_quit for fish shell | 1 year ago | |
feat(trash): add native cross-platform trash support (#1495) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Improved delete behavior to recycle items into the system Trash/Recycle Bin on macOS, Linux, and Windows. * When Trash isn’t available for the current platform/location, the app falls back to permanent deletion. * **Tests** * Expanded delete/trash coverage with UUID-based test paths and cross-platform detection/cleanup of trashed items. * **Chores** * Updated build/release scripts to enable CGO only where required, and tightened macOS-only release handling. * Refreshed third-party notices and adjusted module entries accordingly. <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 2 months ago | |
ci: update golangci-lint (#1484) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated CI/CD build tooling to the latest version * Refined code quality checks and linter configuration * Cleaned up redundant linting annotations in code <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 2 months ago | |
fix(preview): decode UTF-8 runes in IsBufferPrintable text detection (#1507) Had some issues with some text files with special characters not being able to preview. This fixes it. Hope it can be useful :) 🤖 Written with Cursor. # Description Fix text preview failing on UTF-8 text files without a recognized extension. `IsTextFile()` reads the first 1024 bytes and calls `IsBufferPrintable()`. The previous implementation checked each byte with `unicode.IsPrint(rune(b))`, which misclassifies UTF-8 continuation bytes (`0x80`–`0xBF`) as C1 control characters. Files containing multi-byte Unicode early in the buffer (e.g. `✓`, box-drawing characters) were incorrectly rejected as non-text and showed "unsupported format" in the preview panel. `IsBufferPrintable()` now decodes UTF-8 runes with `utf8.DecodeRune` and checks printability per rune. Incomplete UTF-8 at the end of the buffer is allowed via `utf8.FullRune` (relevant for the fixed 1024-byte read in `IsTextFile()`). Binary content with NUL bytes is still rejected. # Related Issues --- # ✅ Pre-Submission Checklist - [x] I have run `go fmt ./...` to format the code - [x] I have run `golangci-lint run` and fixed any reported issues - [x] I have tested my changes and verified they work as expected - [x] I have reviewed the diff to make sure I’m not committing any debug logs or TODOs - [x] I have checked that the PR title follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved text detection by validating UTF-8 content rune-by-rune and treating incomplete trailing UTF-8 sequences more accurately in fixed-size reads. * Better handling of malformed/invalid bytes, while still rejecting clear binary indicators like NUL bytes. * Improved support for UTF-8 BOM-prefixed text and more consistent results at file end versus mid-file truncation. * **Tests** * Expanded coverage for UTF-8/whitespace/control characters and added a dedicated test suite for overall text-file detection behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Kristian Holme <KristianHolme@users.noreply.github.com> | 1 month ago | |
feat(trash): add native cross-platform trash support (#1495) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Improved delete behavior to recycle items into the system Trash/Recycle Bin on macOS, Linux, and Windows. * When Trash isn’t available for the current platform/location, the app falls back to permanent deletion. * **Tests** * Expanded delete/trash coverage with UUID-based test paths and cross-platform detection/cleanup of trashed items. * **Chores** * Updated build/release scripts to enable CGO only where required, and tightened macOS-only release handling. * Refreshed third-party notices and adjusted module entries accordingly. <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 2 months ago | |
update markdown and update vhs tape | 2 years ago | |
chore(deps): update pnpm to v10.34.5 (#1526) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm11/pnpm)) | [`10.34.4` → `10.34.5`](https://renovatebot.com/diffs/npm/pnpm/10.34.4/10.34.5) |  |  | --- ### Release Notes <details> <summary>pnpm/pnpm (pnpm)</summary> ### [`v10.34.5`](https://redirect.github.com/pnpm/pnpm/releases/tag/v10.34.5): pnpm 10.34.5 [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v10.34.4...v10.34.5) #### Patch Changes - [`78e29fe`](https://redirect.github.com/pnpm/pnpm/commit/78e29fe): Prevent a crafted `pnpm-lock.yaml` from writing package content outside the virtual store. A dependency path key whose name reconstructs to a path-traversal sequence (e.g. `../../../tmp/x@1.0.0`) is now rejected by the isolated (virtual-store) linker and the Plug'n'Play resolver map, matching the containment already applied to the hoisted linker. Under the global virtual store, a traversal in the version-derived path segment (e.g. a snapshot `version: "../../x"`) is now rejected at `iterateHashedGraphNodes`, the single point every global-virtual-store slot path funnels through. - [`78e29fe`](https://redirect.github.com/pnpm/pnpm/commit/78e29fe): Fixed a path traversal vulnerability where a dependency whose manifest `name` was a scoped path traversal (e.g. `@x/../../../<path>`) could be written outside `node_modules` to an attacker-controlled location during `pnpm install`, even with `--ignore-scripts`. The isolated linker now validates the package name before using it as a directory name, matching the existing protection in the hoisted linker. - [`47ef6f0`](https://redirect.github.com/pnpm/pnpm/commit/47ef6f0): Fixed switching to and self-updating to pnpm v12. pnpm v12 (the Rust port) ships as the `pnpm` and `@pnpm/exe` npm packages whose bins are placeholders replaced at install time by the host's native binary from a `@pnpm/exe.<platform>-<arch>[-musl]` optional dependency. Because pnpm installs its own engine with `--ignore-scripts`, that relinking never ran, leaving a non-executable placeholder. pnpm now relinks the native binary itself for v12 (recognizing the new platform-package naming scheme and the native `pnpm` package), and verifies the native binary's npm registry signature before running it. - [`36928be`](https://redirect.github.com/pnpm/pnpm/commit/36928be): `${...}` environment-variable placeholders in the `httpProxy`, `httpsProxy`, `noProxy`, `proxy`, and `noproxy` settings are no longer expanded when these settings come from a project's `pnpm-workspace.yaml`. They now receive the same protection already applied to `registry`. <!-- sponsors --> #### Platinum Sponsors <table> <tbody> <tr> <td align="center" valign="middle"> <a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a> </td> </tr> </tbody> </table> #### Gold Sponsors <table> <tbody> <tr> <td align="center" valign="middle"> <a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/sanity.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/sanity_light.svg" /> <img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" /> <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/serpapi_dark.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/serpapi_light.svg" /> <img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160" alt="SerpApi" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" /> <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" alt="CodeRabbit" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" /> <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" /> </picture> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/workleap.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" /> <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" /> <img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" /> </picture> </a> </td> </tr> </tbody> </table> <!-- sponsors end --> </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/yorukot/superfile). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI4MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> | 1 month ago | |
Added direnv support for nix flake dev shell Auto enable flake dev shell when entering the directory. | 1 year ago | |
feat: Preview panel seperation (#1021) | 1 year ago | |
ci: update golangci-lint (#1484) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated CI/CD build tooling to the latest version * Refined code quality checks and linter configuration * Cleaned up redundant linting annotations in code <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 2 months ago | |
docs: Fix cursor/course typos and other documentation errors (#1505) Correct 'course' to 'cursor' in help menu descriptions and align wording with the hotkey list docs. Also fix assorted typos in docs, README, and user-facing UI strings (grammar, broken links, missing punctuation). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated README Windows section anchors/headings and corrected wording across installation, tutorial, troubleshooting, hotkey lists, and custom theme guides (including TOML guidance and corrected link paths), plus language/formatting fixes. * **Bug Fixes** * Refined user-facing text for the terminal-size warning, preview-related ANSI conversion error messaging, config-repair success output, and several help/prompt hotkey and command descriptions. * **Tests** * Updated a render-output expectation to match the latest displayed suggestion text. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Kristian Holme <KristianHolme@users.noreply.github.com> | 1 month ago | |
chore(license): update copyright year (#895) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Updated the copyright statement in the license to use an open-ended year format. <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 1 year ago | |
docs: add notice page and fix tutorial page discuss issue (#1433) 1. Add notice workflow 2. Add notices fiel to docs page 3. FIx toturial page discuss not load <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added/updated a NOTICE page referencing the consolidated dependency license notice. * Renamed tutorial page title to "Tutorial" for clarity. * **Website** * Added NOTICE to site navigation. * Page titles now derive from first-level headings when no explicit title is provided. * **Chores** * Added automated generation and verification to keep the NOTICE file synchronized with dependencies. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/yorukot/superfile/pull/1433) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 4 months ago | |
fix(deps): update go modules (#1514) | 2 months ago | |
fix(docs): update star history embed (#1571) | 1 month ago | |
feat(trash): add native cross-platform trash support (#1495) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Improved delete behavior to recycle items into the system Trash/Recycle Bin on macOS, Linux, and Windows. * When Trash isn’t available for the current platform/location, the app falls back to permanent deletion. * **Tests** * Expanded delete/trash coverage with UUID-based test paths and cross-platform detection/cleanup of trashed items. * **Chores** * Updated build/release scripts to enable CGO only where required, and tightened macOS-only release handling. * Refreshed third-party notices and adjusted module entries accordingly. <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 2 months ago | |
feat(trash): add native cross-platform trash support (#1495) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Improved delete behavior to recycle items into the system Trash/Recycle Bin on macOS, Linux, and Windows. * When Trash isn’t available for the current platform/location, the app falls back to permanent deletion. * **Tests** * Expanded delete/trash coverage with UUID-based test paths and cross-platform detection/cleanup of trashed items. * **Chores** * Updated build/release scripts to enable CGO only where required, and tightened macOS-only release handling. * Refreshed third-party notices and adjusted module entries accordingly. <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 2 months ago | |
fix(nix): resolve build failure (#1373) fix #1369 Updated the `gomod2nix.toml` and `flake.lock` files to resolve a build failure with nix. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Style** * Standardized quoting and key formatting in module configuration entries for consistent TOML styling. * Formatting-only changes; versions, hashes and module data are unchanged (no behavioral or semantic changes). <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 6 months ago | |
chore: release v1.6.0 (#1468) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Fixed broken demo GIF path in documentation. * **Chores** * Released version 1.6.0 as final stable release. <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 3 months ago | |
fix(deps): update go modules (#1514) | 2 months ago | |
fix(deps): update go modules (#1514) | 2 months ago | |
fix(deps): update go modules (#1514) | 2 months ago | |
feat: add goimports linter, and format files with goimport -w | 1 year ago | |
docs: add notice page and fix tutorial page discuss issue (#1433) 1. Add notice workflow 2. Add notices fiel to docs page 3. FIx toturial page discuss not load <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added/updated a NOTICE page referencing the consolidated dependency license notice. * Renamed tutorial page title to "Tutorial" for clarity. * **Website** * Added NOTICE to site navigation. * Page titles now derive from first-level headings when no explicit title is provided. * **Chores** * Added automated generation and verification to keep the NOTICE file synchronized with dependencies. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/yorukot/superfile/pull/1433) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> | 4 months ago |
Translated by AI, submit an issue feedback
演示
| 执行常见操作 |
|---|
![]() |
目录
安装
macOS 和 Linux
bash -c "$(curl -sLo- https://superfile.dev/install.sh)"
如果您想查看脚本,请参见:install.sh
Windows
Powershell
powershell -ExecutionPolicy Bypass -Command "Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://superfile.dev/install.ps1'))"
如果您想查看脚本,请参见:install.ps1
Winget
winget install --id yorukot.superfile
Scoop
scoop install superfile
更多安装方式
构建
您可以按照以下步骤自行构建源代码:
要求
构建步骤
使用以下命令克隆此仓库:
git clone https://github.com/yorukot/superfile.git --depth=1
进入下载目录:
cd superfile
适用于 macOS/Linux
运行 build.sh 文件:
./build.sh
将二进制文件添加到您的 $PATH 中,例如,放在 /usr/local/bin 目录下:
sudo mv ./bin/spf /usr/local/bin
适用于 Windows
go build -o bin/spf.exe
编辑系统环境变量,并将 superfile 仓库的 bin 目录添加到你的 PATH 中
启动 superfile
spf
支持的系统
- [x] Linux
- [x] macOS
- [x] Windows(目前尚未完全支持)
教程
安装 superfile 后,您可以前往此处简要了解如何使用 superfile!
插件
主题
热键
如果您是 vim/nvim 用户,请将默认热键配置更改为 vim 版本!
注意事项
我们提供自动更新功能,该功能会从 github 获取 superfile 的最新发布版本(如果上次版本检查的时间戳距今不到 24 小时),如果有更新版本可用,会向用户显示提示。
您可以通过在 superfile 配置中将 auto_check_update 设置为 false 来关闭此功能。点击查看配置维基
故障排除
卸载
macOS 和 Linux
bash -c "$(curl -sLo- https://superfile.dev/uninstall.sh)"
如果您想查看脚本,请参见:uninstall.sh
Windows
要在 Windows 上卸载 superfile,请使用此 powershell 脚本。
powershell -ExecutionPolicy Bypass -Command "Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://superfile.dev/uninstall.ps1'))"
贡献指南
如果您想参与贡献,请遵循贡献指南
鸣谢
支持方式
- 给我的 GitHub 仓库点个 Star 🌟 就再好不过了
- 您也可以请我喝杯咖啡 💖
核心维护者
我们欢迎任何有志成为核心维护者的人加入。随时联系我们!
- @yorukot - 项目原作者兼维护者
- @lazysegtree - 核心维护者
贡献者
感谢所有贡献者,是你们让这个项目变得更出色!
技术支持
感谢 JetBrains 团队提供开源许可证,支持 superfile 的维护工作。
星标历史
感谢所有的星标支持! 你们的星标是我持续更新的动力!
Introduction
相当精致且现代化的终端文件管理器【此简介由AI生成】
MIT Go2.27 KCommitsbubbleteaclifile-managerfilemanagerfilesystemgolanghacktoberfestlinux-appterminal-appterminal-basedtui应用
Customize your domain
