扔掉浏览器书签:用 JumpKey 键盘一键跳到任意服务
简介
什么是 JumpKey ?
JumpKey是一个开源的极简、键盘驱动的本地优先PWA起始页(startpage)。它可以帮助用户通过键盘快捷键快速分类、搜索并跳转至自建的各种服务。
主要特点
- 键盘驱动导航:通过顺序快捷键(如
A-Z选分类,A-Z→A-Z启动服务)实现全程无鼠标操作 - 分类组织与收藏:可将服务分组到可配置的分类中,并标记常用服务为收藏或最近使用,便于快速访问
- 即时搜索:输入时实时过滤服务,并支持配置多个搜索引擎(
Google、Wikipedia等)进行快速网络检索 - 内置配置编辑器:可直接在 Web 界面中编辑、校验、导入/导出
services.json配置,无需手动改文件 - 轻量静态架构:基于
Lit构建,无后端、无数据库,镜像仅约8MB(amd64/arm64) - 多主题与多语言:内置 6 款深色与 3 款浅色主题,支持
DE、EN、FR、ES等语言自动检测 - 开源免费:基于
MIT协议开源,可免费使用和修改
应用场景
- 家庭实验室(Homelab)导航:将群晖、
Home Assistant、Grafana、Portainer等自建服务集中到一个起始页,键盘一点即达 - 团队内网服务入口:配合
Authelia、Authentik等认证代理,作为内网统一服务门户 - 键盘效率控:习惯快捷键操作的用户,可利用顺序热键在几十个服务间秒级切换
- 移动端快速访问:响应式
UI适配桌面与移动设备,手机上也能便捷打开常用链接

JumpKey 是一个把分散在浏览器书签里的各种服务,重新整合成一个干净、高效、键盘优先的导航面板。
安装
在群晖上以 Docker 方式安装。
本文写作时,
latest版本对应为1.9.1;

提示:
JumpKey的镜像托管在ghcr.io,群晖 Docker 套件无法直接搜索,需要通过命令行拉取镜像;此外本项目为单容器部署,建议通过docker-compose或docker cli安装。
docker cli 安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 jump-key 和 子目录 |
docker-compose 安装
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3.8' |
然后通过 SSH 登录到您的群晖,执行下面的命令:
1 | # 新建文件夹 jump-key 和 子目录 |

运行
在浏览器中访问 http://<群晖IP>:8872 即可进入 Web 界面

键盘快捷键
| 快捷键 | 操作 |
|---|---|
A-Z |
选择一个分类 |
A-Z → A-Z |
从所选分类中启动一个服务 |
1-0 |
打开一个收藏 |
Shift + 1-0 |
打开一个最近使用的服务 |
- |
循环切换最近使用的服务(在启动前再次按 - 可选择下一个) |
Space |
打开搜索 |
# |
切换分组视图和网格视图 |
Esc |
取消当前输入或待启动的操作 |
Shift + Click / Shift + Enter |
在当前标签页中打开 |
Ctrl + 1-0 |
将收藏分配到指定槽位 |
Ctrl + , |
打开配置 |
? |
显示键盘帮助 |

配置
应用程序通过 config/services.json 文件进行配置
可选项
| 键 | 类型 | 描述 |
|---|---|---|
categories |
Array |
分类对象列表,用于分组你的 Web 服务 |
categories[].category |
String |
分类块的可见显示名称 |
categories[].categoryKey |
String |
(可选) 激活此分类的键盘快捷键字符。如果省略则自动分配 |
categories[].icon |
String |
跳转到图标 (#icons) |
categories[].services |
Array |
属于此分组的链接数组 |
categories[].services[].name |
String |
特定 Web 应用或网站的标题。 |
categories[].services[].url |
String |
完整的目标 URL(例如 https://github.com) |
categories[].services[].key |
String |
(可选) 分类打开后启动该项的特定快捷键 |
categories[].services[].icon |
String |
跳转到图标 (#icons) |
searchEngines |
Array |
自定义搜索快捷方式,在统一搜索栏中使用 : 指示符调用 |
searchEngines[].name |
String |
外部搜索提供商的显示名称 |
searchEngines[].prefix |
String |
关键字触发文本(例如 g 映射为通过 :g <query> 搜索)。 |
searchEngines[].url |
String |
搜索引擎查询 URL 字符串,包含 %s 作为搜索词占位符。 |
searchEngines[].icon |
String |
跳转到图标 (#icons) |
示例 services.json
下面一个完整的示例
1 | { |
可以直接将 services.json 上传到 config 目录

或者直接在设置中导入

还可以直接编辑

图标
| 图标值 | 类型 | 描述 |
|---|---|---|
hammer |
Lucide |
向后兼容的简写形式。等同于 lucide:hammer |
lucide:hammer |
Lucide |
动态加载的 Lucide 图标。 |
iconify:mdi:home |
Iconify |
从任意 Iconify 图标集动态加载的图标。 |
https://example.com/icon.svg |
远程图片 | 从外部图片 URL 加载图标。(也可包含查询参数) |
my-service.svg |
本地图片 | 从本地 ./icons 目录加载图标(支持 .svg、.png、.webp、.jpg、.jpeg、.gif) |
你可以在这里找到所有可用的 iconify/lucide 图标: https://icon-sets.iconify.design/
现在回到主界面会看到我们的两个分类

进入分类可以看到服务

默认无需账号密码。若将服务暴露到公网,请务必置于 Authelia、Authentik 等认证代理之后。
注意事项
- 镜像来源:镜像仅发布在
ghcr.io,群晖图形化界面无法直接搜索,需使用命令行拉取安装 - 安全边界:官方明确
JumpKey仅面向可信内网环境,不要直接暴露到公网,需配合认证代理使用 - 配置持久化:务必挂载
./config和./icons卷,否则容器重建后配置会丢失 - 端口冲突:本地
8872端口若被占用,可在docker-compose.yml中修改主机端口(如9090:8080) - 独立运行版:不想用
Docker的用户,可直接下载对应架构的standalone executable,用--host 0.0.0.0 -port 8080 -config-dir ./config -icons-dir ./icons启动
参考文档
desirevolution/jump-key: A minimalist, keyboard-driven local first PWA startpage for your services.
地址:https://github.com/desirevolution/jump-keyJumpKey Live Demo
地址:https://desirevolution.github.io/jump-key/desirevolution/jump-key - GitHub Container Registry
地址:https://ghcr.io/desirevolution/jump-key