npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

tabby-sftp-plus

v2.3.1

Published

SFTP+ 美观易用的文件管理插件,支持内置查看/编辑、拖拽操作、书签、路径记忆、传输记录、多语言等。 Beautiful SFTP file manager for Tabby with built-in view/edit, drag-and-drop, bookmarks, transfer logs, and i18n.

Downloads

2,909

Readme

SFTP+ — Tabby 双栏 SFTP 文件管理器

| 中文 | English |

Version Stars License

SFTP+ 是 Tabby Terminal 的插件,为 SSH 终端标签页提供双栏 SFTP 文件管理功能,支持书签系统、路径记忆、拖拽上传下载、传输日志、文件冲突处理、权限编辑等,无需离开终端即可完成文件操作。


📋 功能一览

| 类别 | 功能 | |------|------| | 📂 双栏管理 | 左本地 + 右远程,可切换 水平/垂直/自适应/单栏 四种布局;分割线可拖拽调整,双击恢复默认 | | 👁️ 查看 / 编辑 | 内置文本/图片查看器与文本编辑器(本地+远程);可额外指定可编辑扩展名,或允许编辑所有类型(二进制仍保护);图片支持同目录上一张/下一张导航;支持「复制」「复制选中」;文本查看器/编辑器支持右键复制、剪切、粘贴、全选;支持「以文本方式查看」和「在系统中打开/编辑」 | | 🎨 文件图标 | 内置彩色 SVG 文件/文件夹图标;符号链接 / 快捷方式叠加角标;支持按扩展名自定义映射、自定义图标目录、禁用内置图标和替换文件夹图标 | | 🔄 拖拽传输 | 跨栏拖拽即上传/下载,支持文件夹递归传输;支持从系统资源管理器/桌面拖入到本地或远程面板 | | ⬆️ 右键传输 | 本地面板右键上传、远程面板右键下载(多选批量) | | ⚡ 高速传输 | 目录内多文件并行传输(并发数 1-10 可调);海量小文件走 tar 打包通道(本地打包→单文件传输→对端解包),大幅减少网络往返,可在设置页关闭;批量删除优先 SSH rm -rf / fs.rm(recursive) | | 🔖 书签系统 | 全局书签(所有连接可见)+ 连接书签(仅当前 SSH 可见);可按范围分组或扁平混排,分组顺序可拖拽 | | 📋 传输日志 | 记录所有操作历史,含「编辑加载/编辑保存」分类,支持筛选、统计、JSON 导出 | | ⚡ 传输控制 | 进度条显示(含百分比)、暂停/继续/取消、断点续传、实时速度;tar 打包通道失败自动回退常规逐文件传输;传输记录标注目录传输方式(⚡ 快速模式 / 📦 tar 打包 / 文件数) | | ⚠️ 冲突处理 | 文件冲突时弹出对比界面(显示上传⬆/下载⬇方向),支持覆盖/跳过/重命名,可批量操作;覆盖合并有独立进度面板;可计算两端内容摘要并在对话框展示,内容未变可自动跳过,内容不同时标 ≠ | | 🔐 权限编辑 | 远程文件 chmod — 3×3 勾选框 + 八进制预览 | | 📌 右键菜单 | 上传/下载、查看/编辑、新建/重命名/删除、复制/剪切/粘贴、刷新、全选/反选;文本查看器/编辑器提供文本专用右键菜单;表头右键:列显隐/列宽调整/面板边框与斑马纹切换 | | 🔍 过滤排序 | 关键词过滤、多列排序(点击列头)、可配置显示列;焦点在文件列表时键入文件名前缀即可跳转选中(资源管理器式,支持中文输入法) | | 🧭 路径模式 | 三选一:off / remember(路径记忆)/ sync(与终端同步);可设默认值 | | 🎨 主题系统 | 7 种预设 + 自定义配色,支持跟随 Tabby 系统主题 | | ⌨️ 面板快捷键 | 可自定义面板开关快捷键,支持录制/清除/冲突提示;面板操作(删除/重命名/刷新/返回上级/后退/前进)与右键菜单常用动作均支持多键绑定与鼠标侧键,并提供已占用快捷键清单 | | 🌐 国际化 | 24 种语言(简中 / 英完整,其余缺失键回退英文),自动检测 Tabby/浏览器语言 | | 📦 数据备份 | 一键导出/导入全部数据(书签+日志+设置+路径记忆) |


🖥️ 界面导览

| SFTP+ 操作面板 | SFTP+ 设置界面 | | :---------------------------------------------: | :---------------------------------------------: |

界面分区

| 区域 | 说明 | |------|------| | 标题栏 | 插件名称、当前 SSH 连接信息、布局切换、传输日志入口、最小化/关闭 | | 左/右面板 | 各自独立浏览,支持路径输入、导航按钮、书签、过滤 | | 文件列表 | 显示文件和目录,支持多列排序、列宽拖拽、列顺序调整 | | 底部操作栏 | 显示选中项数量和总大小 | | 传输队列 | 实时展示上传/下载进度、速度、剩余时间,支持暂停/继续/取消 | | 书签弹窗 | 可按「连接书签」和「全局书签」分组,或扁平混排;支持拖拽排序和快速跳转 | | 右键菜单 | 文件/表头右键弹出,提供完整文件操作和列配置入口 | | 传输日志 | 历史记录弹窗,支持类型筛选、成功/失败过滤、JSON 导出 |


📥 安装

  1. 确保已安装 Tabby Terminal
  2. 在 Tabby 设置中配置插件目录
  3. 将构建产物放入插件目录(参见下方「开发」),重启 Tabby
  4. 打开任意 SSH 终端标签页,工具栏出现 SFTP+ 按钮即安装成功

🚀 快速上手

  1. 打开 — 在 SSH 终端标签页的工具栏点击 SFTP+ 按钮
  2. 浏览 — 左侧本地文件系统、右侧远程 SFTP 目录,双击进入目录
  3. 传输 — 拖拽、右键上传/下载,或选中后使用右键菜单
  4. 查看/编辑 — 右键文本或图片文件可内置查看;文本可编辑并保存(远程文件自动上传)

📏 文件大小限制

| 操作 | 上限 | |------|------| | 文本查看 | 2 MB | | 图片查看 | 15 MB | | 文本编辑 | 5 MB |

超出上限时仍会提示,并说明具体限制。


⚙️ 设置面板

在 Tabby 设置页左侧找到「SFTP+」:

| 设置项 | 说明 | |--------|------| | 语言 | 跟随系统 / 中文 / English | | 主题 | 自动 / 深色 / 浅色 / 蓝 / 绿 / 紫 / 红 / 自定义 | | 自定义颜色 | 独立设置主色、背景、文字、边框颜色 | | 布局 | 自适应(按面板宽度自动切换)/ 水平 / 垂直 | | 表格样式 | 显示边框、显示斑马纹 | | 上传/下载并发数 | 目录内文件级并发数(1-10),即时生效 | | 快速模式 | 开启后跳过预扫描直接传输(无百分比,有字节进度) | | tar 打包加速 | 文件夹传输走 tar 打包通道(默认开启);打包或解包失败时自动回退常规逐文件传输 | | 默认上传/下载路径 | 分别设置上传目标目录和下载目标目录;留空时使用当前面板目录 | | 默认路径模式 | 新连接首次打开面板时的路径模式(off / remember / sync) | | 默认显示隐藏文件 | 新连接首次打开面板时是否显示隐藏文件 | | 额外可编辑扩展名 | 在内置文本白名单之外,额外允许内置编辑器打开的扩展名(如 service, tf, plist);支持 .conf / *.conf / conf 写法 | | 允许编辑所有文件类型 | 忽略扩展名白名单(默认关);二进制内容仍会拦截,避免用文本编辑器损坏文件 | | 文件图标 | 选择图标资源目录、配置扩展名映射、禁用内置图标和替换文件夹图标 | | 工具栏自定义 | 拖拽排序工具栏按钮、隐藏不常用项 | | 面板快捷键 | 自定义面板开关快捷键;面板操作(删除/重命名/刷新/返回上级/后退/前进)与右键菜单常用动作可绑定多个按键或鼠标侧键(Mouse3/Mouse4),含已占用快捷键清单 | | 数据备份 | 导出/导入全部数据(JSON);清除全部数据(输入 DELETE 确认) | | 兼容性 | 隐藏 Tabby 原生 SFTP 按钮避免冲突 |


💾 数据备份

所有数据(书签、传输日志、路径记忆、设置)可一键导出为 JSON 文件,也支持导入恢复。

路径:设置页 → 数据备份 → 导出 / 导入


📜 版本历史

当前开发版本 v2.3.1(2026-09-18)— 完整更新日志


🛠️ 开发

技术栈

| 类别 | 技术 | |------|------| | 框架 | Angular 9 | | 语言 | TypeScript 5.8 | | 构建 | Webpack 5 | | 样式 | 内联样式(CSS 变量自适应主题) | | 平台依赖 | tabby-core / tabby-settings / tabby-terminal | | 传输协议 | SFTP(复用 Tabby SSH Session) |

构建

# 安装依赖
npm install

# 开发模式(watch 自动构建)
npm run watch

# 生产构建
npm run build

构建产物 dist/index.js 即为 Tabby 插件包;dist/package.json 由 scripts/copy-sftp-manifest.mjs 在构建时从根 package.json 自动派生(改写入口、剔除开发期脚本),无需手工维护。

项目结构

tabby-FTPS+/
├── docs/                                # 架构与开发文档
├── scripts/                             # 构建辅助(copy-sftp-manifest 自动生成 dist/package.json)
├── src/
│   ├── index.ts                         # 插件入口(Angular Module 注册)
│   ├── tabby-shims.d.ts                 # Tabby 类型声明
│   ├── services/                        # sftp.service / bookmarks / i18n / transfer-log / config(Tabby 约定目录)
│   ├── settings/                        # sftp-settings 设置组件(Tabby 约定目录)
│   ├── tabby/                           # 终端集成:config/hotkey provider、terminal-decorator(工具栏注入按钮)
│   └── sftp/                            # SFTP 功能模块
│       ├── sftp-floating-panel.component.ts   # 主面板(业务编排)
│       ├── sftp-workspace-tab.component.ts    # 工作区独立标签页容器
│       ├── components/                  # 视图层(V):文件列表面板、对话框、右键菜单、冲突处理、传输队列等
│       ├── controllers/                 # 控制器层(C):列 / 查看器 / 书签控制器
│       └── core/                        # 逻辑/工具/类型:传输、冲突、摘要、拖放、剪贴板、路径等
├── locale/                              # 24 语言 GNU gettext .po
├── tabby-plugin-common/                 # 跨插件公共工具(theme / utils)
├── dist/                                # 构建输出(index.js + package.json,不入库)
├── package.json
└── webpack.config.js

更完整的目录说明见 docs/DEVELOPMENT.md。


🤝 如何贡献

欢迎为 SFTP+ 贡献代码或建议!本插件功能想法由作者(DD1024z)提供,主要实现代码使用 AI 辅助生成。

  • 提交 Bug 或功能请求:GitHub Issues 📝
  • 贡献代码:Fork 项目并提交 Pull Request 🚀
  • 喜欢 SFTP+?可以帮忙点个 ⭐ Star 支持一下!

您的点赞与 Star 是我持续开发的动力,感谢支持!❤️

🙏 特别鸣谢

SFTP+ 的成长离不开基石项目与社区用户的支持,在此特别感谢:

  • Tabby — 强大的跨平台终端,SFTP+ 得以在其生态内运行
  • SFTP(SSH File Transfer Protocol) — 底层文件传输协议,本插件的远程文件管理能力构建于此之上
  • Tabby SFTP-UI — 早期双栏 SFTP 文件管理器,其交互与实现思路为 SFTP+ 提供了重要参考,部分功能设计受其启发
  • @fweiger — Issue #13 提交了详尽的使用体验优化建议(单击/双击交互、右键菜单排序、快捷键聚焦等),多项已落地 v2.0.2
  • @HarpyWar — Issue #3 反馈热键设置页异常,已修复
  • @xingkongxiademodeng — Issue #10 指出目录上传串行无并发的性能瓶颈,为并发传输优化提供方向
  • @Hanzo-Huang — Issue #5 提出「获取当前工作目录」功能建议,已实现
  • @Purgepyro — PR #18 新增自定义可编辑扩展名、允许编辑全部类型,并修复手动安装后内置图标空白
  • @waylandun — Issue #21 反馈编辑器粘贴会进终端,PR #22 在面板根隔离文本按键(macOS 实测)
  • 同时感谢 @webbrain-one、@JayceVane 提交 Pull Request 的贡献尝试

📝 许可协议

SFTP+ 遵循 MIT 开源协议。欢迎使用、修改和分享,但请遵守协议条款。

⚠️ 免责声明

SFTP+ 是一个免费的开源项目,主要使用 AI 辅助生成,难免存在一些 BUG 缺陷,作者无法保证功能代码验证到位。使用本插件即表示你同意承担相关风险,开发者不对因使用插件导致的任何问题或损失负责,请酌情使用。