Skip to content

lawnvi/whisper

Repository files navigation

Whisper

Flutter License Platform

English

面向个人设备的局域网协作工具,用一条本地直连通道在电脑和手机之间传文本、文件、通知、音频和键鼠输入。 本项目与 OpenAI Whisper 语音识别模型无关。

下载

下载最新版本

解决什么问题

Whisper 解决的是一个很日常但反复出现的问题:自己的电脑、手机、备用机都在身边,却仍然要靠聊天软件、网盘或数据线来搬一点文本、文件或声音。

它不是云盘,也不是公网远程桌面。Whisper 默认工作在可信局域网内,设备之间显式建立点对点连接。适合在自己的设备之间临时传输内容、接收 Android 通知、共享桌面系统音频,或在多台桌面设备之间切换键鼠输入。

截图

文件传输

Whisper 文件传输

音频共享 键鼠共享
Whisper 音频共享 Whisper 键鼠共享

特性

  • 多设备直连:一台设备可以同时连接多台电脑或手机,连接关系保持显式、可见、可断开。
  • 聊天式传输:文本、剪贴板和文件都在会话里完成,适合临时传链接、命令、截图和安装包。
  • 系统音频共享:把一台设备的系统音频推给一个或多个播放端,支持基础扬声器组和左右声道角色。
  • 键鼠共享:在受信任桌面设备之间共享一套键鼠,通过屏幕排列和边缘穿越切换控制目标。
  • 桌面体验:支持托盘、启动项、关闭到托盘、桌面文件拖出复制、浅色/深色主题和多语言。

连接方式

Whisper 优先通过局域网发现设备。两台设备连接同一个网络并同时打开 Whisper 后,通常可以直接在设备列表里看到对方,点击后由接收端确认连接。

如果自动发现不可用,可以手动输入对方的局域网 IP 和服务端口。默认服务端口是 10002,也可以在设置里的「服务端口」修改。手动连接时请确认防火墙允许该端口的局域网访问。

Linux 的自动发现依赖 Avahi;如果网络环境禁用了 mDNS/Bonjour,手动 IP 连接通常更可靠。

开发者快速开始

1. 准备环境

安装 Flutter stable,并确保当前 Flutter SDK 满足 Dart >=3.5.0 <4.0.0

flutter doctor

根据目标平台准备对应工具链:

  • Android:Android Studio / Android SDK
  • macOS / iOS:Xcode
  • Windows:Visual Studio C++ 工具链
  • Linux:Flutter Linux desktop 依赖、Avahi、PulseAudio 或 PipeWire Pulse

2. 获取依赖并运行

flutter pub get
flutter run

macOS 本地调试建议使用仓库脚本,它会构建、签名并启动调试 App:

sh script/build_and_run.sh

3. 验证

flutter analyze
flutter test

4. 打包与代码生成

macOS 打包 DMG:

sh script/build_and_run.sh package-macos

数据库或本地化变更后需要重新生成代码:

dart run build_runner build --delete-conflicting-outputs
flutter gen-l10n

使用方式

发送文本或文件

打开一个已连接设备的会话,直接输入文本并发送;点击附件按钮选择文件。桌面端收到的文件可以从消息里拖出到文件管理器或桌面完成复制。

共享系统音频

在桌面端的设备工具区选择音频共享,选择一个或多个已连接且支持音频播放的设备。多设备播放支持基础同步和声道角色,但不等同于专业音频系统。

共享键鼠

在桌面端打开键鼠共享工作区,排列本机与被控设备的屏幕位置。启用后,鼠标从配置的屏幕边缘穿越到目标设备,键盘输入跟随当前目标。

监听 Android 通知

在 Android 端授予通知监听权限后,可以选择需要监听的 App。Whisper 会按用户选择处理通知内容,适合验证码等短消息场景。

平台状态

平台 当前状态
Android 主要移动端,支持连接、聊天、文件传输、通知监听和音频播放等能力。
macOS 主要桌面验证平台,支持托盘、文件拖出、音频共享、键鼠共享和打包脚本。
Windows 桌面目标平台,包含窗口、单实例、音频和键鼠相关原生集成。
Linux 桌面目标平台,发现依赖 Avahi,音频依赖 PulseAudio 或 PipeWire Pulse,键鼠共享当前以 X11 为主。
iOS 保留 Flutter runner,具体能力受系统限制影响,未测试

边界与安全说明

  • 当前没有实现端到端加密,不应把 Whisper 用在不可信局域网环境中。
  • 当前不做公网中继、Hub 转发或传递信任。
  • 文件、音频、键鼠都需要连接和能力协商,不设计为无提示后台控制入口。
  • 键鼠共享面向本人设备间的近场协作,不是无人值守远程控制方案。
  • Whisper 优先保证局域网内的直接、可控和可恢复,不追求替代专业同步、远控或 MDM 系统。

为什么不是这些工具

  • 不是云盘:Whisper 不以跨公网、多端长期同步为目标,核心是近场设备之间的即时直连。
  • 不是聊天软件:会话只是交互外壳,真正目标是让文件、通知、音频和输入能力在设备间流动。
  • 不是远程桌面:键鼠共享只处理输入,不传屏幕,也不面向无人值守远控。
  • 不是专业音频系统:音频组提供可用的多设备播放和声道角色,但不承诺专业级相位同步。

License

MIT

About

Cross-platform LAN sharing for files, text, clipboard, audio, and desktop keyboard/mouse peripherals.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors