面向多环境 Web 系统的 Chrome 账号管理与登录填充插件
把散落在各个系统、各套环境里的账号「钥匙」,统一停靠、随取随填。
🌐 官网 · 🧩 Chrome 应用商店 · 💻 GitHub · 🦊 Gitee
如果你也常年穿梭在 开发 / 测试 / 预发 / 生产 多套环境之间,手里攥着一大把账号密码—— 复制粘贴、来回切换、记不住哪个环境用哪组账号……钥栈 KeyDock 就是为此而生。
它是一款独立的 Chrome Manifest V3 插件:在你打开登录页的那一刻,自动识别出「这是哪个项目的哪个环境」,弹出对应的账号列表,一键填充、一键复制,让登录这件小事彻底不再分心。
- 🧱 技术栈:React 18 + TypeScript 5 + Vite 5,Chrome MV3 Service Worker,
lucide-react图标,三层 Design Token 主题体系。 - 🗄️ 数据存储:默认使用 Chrome 本地存储(
storage.local),无需任何服务端即可完整使用;可选接入 MinIO 做多端同步。 - 🔓 定位:一款顺手的「多环境登录助手」,而非加密保险箱。本版本以明文存储 + 敏感字段默认隐藏 + 风险提示为安全策略(详见下文)。
- 📜 开源协议:MIT,自由使用与二次开发。
- 🌐 官网:https://keydock.asgc.fun/
🧭 命名的由来 钥 取自「钥匙」,象征你手中的每一组账号密钥;栈 既是栈房、栈道——存放与中转之所,也呼应技术语境里的「栈(stack)」。 英文名 KeyDock =
Key(钥匙 / 账号)+Dock(船坞 / 停靠坞 / 工具坞)。 合在一起:让所有账号钥匙都有一个井然有序的「停靠坞」,需要时随手取用。 这正是这款插件想为你做的事。
| 痛点 | 钥栈的解法 |
|---|---|
| 多环境账号记不住、找不到 | 打开登录页自动识别项目 + 环境,弹出对应账号列表 |
| 反复复制粘贴账号密码 | 一键填充 / 一键复制,敏感字段点一下临时显示、10 秒自动隐藏 |
| 默认账号每次都要手点 | 标记默认账号后,匹配页面自动填充 |
| 账号字段五花八门(不止账号/密码) | 自定义字段模型:输入型 / 展示型、敏感、必填、可复制、列宽自适应 |
| 配置散乱、换设备难迁移 | 单一「完整配置 JSON」+ 导入导出 + 可选 MinIO 多端同步 |
| 本地调试版和商店版傻傻分不清 | 内置 DEV 角标 + 专用构建,开发与日常使用互不干扰 |
- 🔍 智能页面识别:按
host(支持子域)+path关键字双重匹配,命中才出现,不打扰其他页面。 - 🪟 登录页账号浮窗:展示当前项目 / 环境的全部账号;支持拖动定位、9 锚点自动停靠、列宽自适应。
- ⚡ 自动填充与重试:写入后派发
input/change/blur事件,兼容 React / Vue / Angular 受控组件;按环境重试延迟逐次查找元素。 - 🖱️ 输入框账号选择器:点击输入框即弹出账号候选,支持 ↑/↓/Enter/Esc 键盘操作。
- 🗂️ 配置管理面板(七大模块):全局配置 · 项目分组 · 项目管理 · 字段配置模板 · 账号管理 · 配置导入导出 · 数据同步。
- 🎨 三套主题 + 字号 + 动效:科技黑 / 简约白 / 灵动炫彩,全局生效(配置页、popup、登录页浮窗一致)。
- ☁️ 可选 MinIO 同步:远程 ↔ 本地按稳定标识增量合并或整体覆盖;不启用则零外联,纯本地可用。
- 🛡️ 登录页解密容错:在
/login路径对宿主页CryptoJS.AES.decrypt做兜底补丁,避免个别站点登录脚本异常中断。
前往 Chrome 应用商店 一键安装(推荐):
也可以下载源码自行构建后「加载已解压的扩展程序」,详见 开发指南。
- 点击工具栏的钥栈图标,打开 Popup,再进入 管理面板。
- 在 项目管理 中新建项目:填写项目名、所属分组,配置 字段(账号、密码、备注……可自定义)与 环境(Host、Path 关键字)。
- 在 账号管理 或直接在登录页浮窗里 新增账号,按需标记默认账号。
- (可选)在 数据同步 配置 MinIO,实现多端共享同一份配置。
打开任意已配置环境的登录页 → 钥栈自动识别并弹出账号浮窗 → 点击填充 / 复制,或让默认账号自动填好。完成。✅
![]() 登录页浮窗 & 输入框账号选择器 |
![]() 工具栏 Popup |
![]() 项目管理 |
![]() 字段配置 |
![]() 环境配置 |
![]() 账号管理 |
![]() 数据同步(MinIO) |
![]() 全局配置 & 主题 |
更多截图见
asset/run-example/:项目分组、字段配置模板、配置导入导出等。
想参与共建或本地二次开发?欢迎 👏。详细文档收纳在 docs/ 下,按主题分册阅读:
- 🧰 本地开发 / 构建 / 调试流程 →
docs/coding/dev-guide.md - 🏗️ 整体架构 & 技术点说明 →
docs/design/v1.0.0/architecture.md - 📁 项目结构 & 模块设计 →
docs/design/v1.0.0/module-design.md - 📐 数据模型 & 校验规则 →
docs/design/v1.0.0/data-model.md - ☁️ 同步与合并引擎设计 →
docs/design/v1.0.0/sync-design.md - 📋 需求说明 →
docs/requirements/v1.0.0/README.md
常用命令(包管理器为 pnpm):
pnpm install # 安装依赖
pnpm dev # 启动 Vite 开发服务
pnpm check # tsc --noEmit 类型检查
pnpm build # 构建正式版(用于上架)到 dist/
pnpm build:dev # 构建本地开发版([DEV] 名称 + 红色图标,便于与商店版区分)提交前请至少跑通
pnpm check与pnpm build。
钥栈定位为「多环境登录助手」,非加密保险箱,请知悉本版本的安全边界:
- 本地配置、导出 JSON、云端配置及 MinIO 连接信息均以明文形式存储。
- 敏感字段默认以
••••••隐藏,临时显示后 10 秒自动恢复。 - 账号辅助仅在你配置过的匹配页面生效;
page-guard仅在/login路径介入。 - 是否启用 MinIO 完全由你决定;不启用即零外联,数据只留在本地浏览器。
请勿在公共 / 不受信设备上存放高敏感账号。
钥栈是一个开源项目,欢迎 Issue、PR、Star 与建议 🌟
- 💻 GitHub:https://github.com/aoshiguchen/key-dock
- 🦊 Gitee:https://gitee.com/asgc/key-dock
- 🌐 官网:https://keydock.asgc.fun/
- 💬 作者微信:
yuyunshize(备注「钥栈」更易通过)







