nheko

nheko

原生桌面体验的Matrix聊天客户端

nheko是一款基于Matrix协议的原生桌面客户端应用,旨在提供类似主流聊天软件的使用体验。它支持端到端加密、VoIP通话、用户注册和房间管理等核心功能。nheko采用简洁的界面设计,支持多种主题,并允许用户自定义表情和贴纸。此外,nheko还提供D-Bus API接口,支持与第三方插件集成,增强了应用的灵活性和功能性。

NhekoMatrix聊天应用桌面客户端端到端加密Github开源项目

nheko

#nheko-reborn:matrix.org 构建状态

该项目的动机是为Matrix提供一个原生桌面应用程序,让用户感觉更像主流聊天应用(Element、Telegram等),而不是IRC客户端。

快速安装链接

稳定版

稳定版本 <a href='https://flathub.org/apps/details/im.nheko.Nheko'><img height='32' alt='在Flathub上下载' src='https://yellow-cdn.veclightyear.com/0a4dffa0/9d23e63f-71fa-46c1-8880-1389750ea544.png'/></a> 打包状态

其他选项和详细信息请参见安装部分。

不稳定版

每日构建 <a href='https://flatpak.neko.dev/repo/nightly/appstream/im.nheko.Nheko.flatpakref' download='nheko-nightly.flatpakref'><img alt='下载每日构建Flatpak' src='https://img.shields.io/badge/download-flatpak--nightly-green'/></a> <a href='https://nheko-reborn.pages.nheko.im/nheko/NhekoNightly.appinstaller' download='NhekoNightly.appinstaller'><img alt='Windows每日构建自动更新' src='https://img.shields.io/badge/download-windows--nightly-green'/></a>

翻译

翻译状态

帮助我们进行翻译,让尽可能多的人能够使用nheko!

关于端到端加密的说明

当前实现基本稳定,但从未经过审核。如果您依赖它来保证安全,我们无法做出任何保证。

功能

目前缺少聊天应用程序应有的大多数功能,但我们正在接近一个功能更完整的客户端。 具体支持以下功能:

  • 端到端加密。
  • VoIP通话(语音和视频,支持因平台而异)。
  • 用户注册。
  • 创建、加入和离开聊天室。
  • 发送和接收邀请。
  • 发送和接收文件和表情符号(图片、音频和文件消息的内联小部件)。
  • 自定义贴纸和表情符号。
  • 回复文本、图片和其他媒体(并实际将它们呈现为内联小部件)。
  • 输入通知。
  • 用户名自动完成。
  • 消息和提及通知。
  • 撤回消息。
  • 已读回执。
  • 在线状态和状态消息(如果在服务器端启用)。
  • 基本社区支持。
  • 聊天室切换器(ctrl-K)。
  • 浅色、深色和系统主题。
  • 创建单独的配置文件(仅命令行,使用-p name)。
  • D-Bus API,允许与第三方插件集成(不支持Windows或macOS)。

安装

发布版本

Linux(Flatpak)、macOS(磁盘映像)和Windows(x64 msix或appinstaller)的发布版本可在GitHub releases中找到。 Windows上的appinstaller将定期检查我们的服务器以获取更新。msix不会。

软件仓库

打包状态

Arch Linux

sudo pacman -Syu nheko

开发版本可在AUR中获得:

yay -S nheko-git # 或您喜欢的安装AUR软件包的方式

Nheko需要一个密钥服务器才能运行,因此如果您的桌面环境没有提供,您需要安装和配置诸如KDE WalletGNOME Keyring之类的服务。

Debian(10及以上)/ Ubuntu(18.04及以上)

sudo apt install nheko

Fedora

sudo dnf install nheko

Gentoo Linux

sudo eselect repository enable guru sudo emaint sync -r guru sudo emerge -a nheko

如果您使用Gnome Keyring或KeepassXC作为密钥守护程序,请确保在dev-libs/qtkeychain上启用了keyring useflag。

Mageia(9及以上)

sudo urpmi nheko

Nix(os)

# 命令式:(不推荐) nix-env -iA nixpkgs.nheko # 在临时 shell 中:(推荐如果你只想尝试而不想完全安装) nix-shell -p nheko --run nheko # 注意:上面的命令会同时安装和运行 Nheko。 # 如果不想立即运行,只需删除末尾的 `--run nheko`。 或者,通过以下方式之一将其添加到你的配置中:(推荐长期安装) **系统范围:** ```nix environment.systemPackages = with pkgs; [ # ... nheko # ... ];

特定用户:

users.users.<user>.packages = with pkgs; [ # ... nheko # ... ];

通过 home-manager

programs.nheko.enable = true;

Alpine Linux(和 postmarketOS)

确保你已启用 edge 的测试仓库。注意,postmarketOS 不需要这一步。

sudo apk add nheko

openSUSE

注意:这些说明仅在 Tumbleweed 上测试过。

首先,安装 nheko:

sudo zypper addrepo https://download.opensuse.org/repositories/network:messaging:matrix/openSUSE_Tumbleweed/network:messaging:matrix.repo sudo zypper ref sudo zypper in nheko

如果你想添加 jdenticon 支持:

sudo zypper install qt-jdenticon

Flatpak

flatpak install flathub im.nheko.Nheko

Guix

guix install nheko

Steam Deck

通过桌面模式中的 Discover 应用安装 nheko(这会安装 flatpak)。要使其在游戏模式下也能工作,你需要创建一个启动 kwalletd 然后启动 nheko 的包装脚本。你可以创建 /home/deck/nheko.sh 文件,内容如下,然后将此脚本作为"非 Steam 游戏"添加到 Steam 中。

#!/bin/sh kwalletd6& flatpak run --env=XDG_CURRENT_DESKTOP=KDE --env=KDE_SESSION_VERSION=5 --branch=stable --arch=x86_64 --command=im.nheko.Nheko --file-forwarding im.nheko.Nheko @@u @@

macOS(10.14 及以上)

使用 homebrew

brew install --cask nheko

Windows

使用 Chocolatey

choco install nheko-reborn

D-Bus 插件

nheko 不提供任何 D-Bus 插件的二进制文件。但是,我们提供以下已知插件列表:

常见问题


问: 为什么我在 Windows 上无法播放视频?

答: 你可能缺少所需的视频编解码器,下载 K-Lite Codec Pack


问: nheko 支持哪些命令?

答: 请参阅 https://github.com/Nheko-Reborn/nheko/wiki/Commands


问: nheko 是否支持端到端加密(E2EE)?

答: 是的,请参阅功能列表


问: 我可以测试最新的开发版本吗?

答: 查看每日构建 https://matrix-static.neko.dev/room/!TshDrgpBNBDmfDeEGN:neko.dev/


问: 如何添加贴纸和自定义表情?

答: 贴纸和自定义表情被组织在图像包中。有一个只有你的账户可以访问的用户图像包,还有房间图像包,房间内的每个人都可以访问。你可以全局激活房间图像包以在任何房间中使用它。

要在 nheko 中管理图像包,请进入房间设置并进入贴纸和表情设置。你会看到私人包(你的用户图像包)并可以在那里编辑它。短代码是用于选择图像的唯一标识符,正文是在不支持图像的客户端上显示的替代文本(类似于 HTML 图像的 alt 标签)。

如果你有必要的权限,可以使用图像包列表底部的按钮创建新的房间包。它们与用户包相同,但你可以创建任意多个,房间里的每个人都可以使用它们。创建一个专门用于图像包的额外房间可能是个好主意,以便于共享。


问: 我看不到某些图像类型!

答: Nheko 使用 Qt 的图像插件来渲染图像。你可能需要安装额外的软件包来显示某些图像类型,如 webp。通常这些软件包被称为 qt6-image-formats-pluginsqt6-imageformats 或类似名称。KDE 有类似的插件,可以进一步扩展支持的图像类型。


构建要求

  • Qt6(6.5或更高版本)。用于Qml中的重叠悬停处理器。
  • CMake 3.15或更高版本。(较低版本可能可用,但可能会导致boost链接问题)
  • mtxclient
  • coeurl
  • LMDB
  • lmdb++(0.9.14版本太旧)
  • cmark 0.29或更高版本。
  • libolm
  • spdlog(1.8.1版本太旧)
  • fmt
  • GStreamer 1.20.0或更高版本(可选,需要VoIP支持。传递-DVOIP=OFF以禁用)。
    • 安装gstreamer核心库以及gst-plugins-base、gst-plugins-good和gst-plugins-bad通常就足够了。 但qmlgl插件通常是单独打包的。具体的插件要求如下:
    • 语音通话支持:dtls、opus、rtpmanager、srtp、webrtc
    • 视频通话支持(可选):compositor、opengl、qmlgl、rtp、vpx
    • libnice
  • XCB、XCB-EWMH:用于X11上的屏幕共享支持和设置窗口角色。可以通过-DSCREENSHARE_X11=OFF禁用。
  • qtkeychain(至少需要0.12版本以获得proper Gnome Keychain支持。捆绑版本需要libsecret,除非你传递-DLIBSECRET_SUPPORT=OFF。)
  • KDSingleApplication(1.0或更高版本,支持Qt6)
  • 支持C++ 20的编译器:
    • Clang 16(CI中只测试了clazy 16)
    • GCC 11.3(在Gitlab CI上测试)
    • MSVC 19.13(在AppVeyor上测试)

如果你的发行版中的版本太旧,Nheko可以自动使用大多数这些库的捆绑版本。 要使用它们,你可以通过传递-DHUNTER_ENABLED=ON来启用hunter集成。 通过传递-DBUILD_SHARED_LIBS=OFF来静态链接这些依赖项可能是明智的。 你可以通过传递各种-DUSE_BUNDLED_*标志来选择要使用的捆绑依赖项。默认情况下,如果你启用hunter,所有依赖项都会被捆绑。(OpenSSL是个例外,默认情况下始终禁用。) 如果你遇到构建问题,并且在没有hunter的情况下尝试链接mtxclient库,请确保使用了CMakeList.txt中提到的库版本(提交)。有时我们不得不在mtxclient中进行破坏性更改,在这段时间内,两个仓库的master分支可能不兼容。

当前的捆绑标志包括:

  • USE_BUNDLED_SPDLOG
  • USE_BUNDLED_OLM
  • USE_BUNDLED_GTEST
  • USE_BUNDLED_CMARK
  • USE_BUNDLED_JSON
  • USE_BUNDLED_OPENSSL
  • USE_BUNDLED_MTXCLIENT
  • USE_BUNDLED_LMDB
  • USE_BUNDLED_LMDBXX
  • USE_BUNDLED_COEURL
  • USE_BUNDLED_LIBCURL
  • USE_BUNDLED_LIBEVENT
  • USE_BUNDLED_KDSINGLEAPPLICATION

关于捆绑的OpenSSL的注意事项:你需要明确启用它,如果启用,它默认不会使用你的系统证书目录。你需要在运行时使用SSL_CERT_FILE变量来覆盖它。不过在Windows上,它仍然会使用你的系统证书,因为它是从系统存储而不是OpenSSL目录加载它们。

Linux(Appimage)

如果你不想安装任何外部依赖项,可以使用docker在本地生成AppImage。不过这种方法维护得不太好...

make docker-app-image

Arch Linux

sudo pacman -S qt6-base \ qt6-tools \ qt6-multimedia \ qt6-svg \ cmake \ gcc \ fontconfig \ lmdb \ cmark \ boost \ qtkeychain-qt6

Debian 13 [测试版/Sid](Nheko QT6版本)

截至2024年2月,从git master分支获取的Nheko需要QT 6.5,而Trixie只有6.4.2,所以你必须启用Debian的实验性仓库来安装更新的QT6。将来可能不需要这样做,第二组构建要求中的-t experimental可以移除。

# 安装构建依赖 sudo apt install -y cmake asciidoc-base libevent-dev libspdlog-dev libre2-dev liblmdb++-dev libcurl4-openssl-dev libssl-dev libolm-dev libcmark-dev nlohmann-json3-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev libkdsingleapplication-qt6-dev sudo apt install -y -t experimental qt6-base-dev qt6-tools-dev qt6-svg-dev qt6-multimedia-dev qt6-declarative-dev qtkeychain-qt6-dev qt6-base-private-dev qt6-declarative-private-dev # 从github克隆nheko仓库 sudo apt install -y git git clone https://github.com/Nheko-Reborn/nheko && cd nheko # 构建 cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DUSE_BUNDLED_COEURL=1 -DUSE_BUNDLED_MTXCLIENT=1 -DUSE_BUNDLED_LMDBXX=1 cmake --build build

Debian 11-12 / Ubuntu 22.04(Nheko QT5 11.3 发布版本)

构建要求 + 运行时需要的 qml 模块(您可能不需要全部,但根据报告,以下似乎可以工作):

sudo apt install --no-install-recommends g++ cmake make zlib1g-dev libssl-dev libolm-dev liblmdb-dev libcmark-dev nlohmann-json3-dev libspdlog-dev libevent-dev libcurl4-openssl-dev libre2-dev libxcb-ewmh-dev asciidoc-base \ qt{base,declarative,tools,multimedia,quickcontrols2-}5-dev libqt6svg5-dev qt6keychain-dev qml-module-qt{gstreamer,multimedia,quick-extras,-labs-settings,-labs-platform,graphicaleffects,quick-controls2,quick-particles2} \ libgstreamer1.0-dev libgstreamer-plugins-{base,bad}1.0-dev qtgstreamer-plugins-qt6 libnice-dev ninja-build

lmdb++-dev 版本过旧,所以必须使用捆绑的 lmdbxx。 debian bullseye 中的 libspdlog-dev 版本过旧(未经回溯),因此需要使用 hunter 来使用捆绑的 spdlog。 debian bullseye 的建议标志:-DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=OFF debian bookworm 的建议标志:-DUSE_BUNDLED_COEURL=1 -DUSE_BUNDLED_MTXCLIENT=1 -DUSE_BUNDLED_LMDBXX=1

Fedora

sudo dnf builddep nheko # 注意,一些较新的包可能未被捕获

Gentoo Linux

sudo emerge -a ">=dev-qt/qtgui-5.15.0" media-libs/fontconfig dev-libs/qtkeychain

Guix

guix environment nheko

macOS(Xcode 10.2 或更高版本)

brew update brew install qt6 lmdb cmake llvm spdlog boost cmark libolm qtkeychain

Windows

  1. 安装 Visual Studio 2022 的"桌面开发"和"使用 C++ 的 Linux 开发"(用于 CMake 集成)工作负载。

  2. 下载最新的 Qt for Windows 安装程序并安装到某个位置。 确保至少为 Qt 5.15 安装 MSVC 2022 64-bit 工具集。

  3. 如果您没有安装 openssl,您需要安装 perl 来构建它(例如 Strawberry Perl)。

构建

现在我们可以构建 nheko:

cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release cmake --build build

要使用捆绑的依赖项,您可以使用 hunter,例如:

cmake -S. -Bbuild -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=OFF cmake --build build --config Release

根据需要调整 USE_BUNDLED_*。

如果构建失败并出现以下错误

Could not find a package configuration file provided by "Qt6Widgets" with
any of the following names:

Qt6WidgetsConfig.cmake
qt6widgets-config.cmake

您可能需要向 cmake 传递 -DCMAKE_PREFIX_PATH 以指向您的 qt6 安装位置。

例如在 macOS 上

cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$(brew --prefix qt6)
cmake --build build

nheko 二进制文件将位于 build 目录中。

Windows

安装所有依赖项后,您需要编辑 CMakeSettings.json 以便在 Visual Studio 中加载和编译 nheko。

您需要填写 Qt6_DIR 的路径。 Qt6 目录应指向 lib\cmake\Qt6 目录。

路径示例:

  • C:\\Qt\\6.5.2\\msvc2017_64\\lib\\cmake\\Qt6

您还应该通过将 HUNTER_ENABLED 设置为 ONBUILD_SHARED_LIBS 设置为 OFF 来启用 hunter。

现在右键单击 nheko 源目录的根目录,选择"在 Visual Studio 中打开"。 您可以在顶部工具栏中选择 Release 和 Debug 构建类型。 成功生成 CMake 后,您可以选择 nheko.exe 作为运行目标。 现在在 CMake 菜单中选择"生成所有"或按 F7 编译可执行文件。

要能够运行应用程序,最后一步是在 nheko 二进制文件旁安装所需的 Qt 依赖项。

启动"Qt x.xx.x 64-bit for Desktop (MSVC 2017)"命令提示符并运行 windeployqt

cd <path-to-nheko>\build-vc\Release\Release windeployqt nheko.exe

最终的二进制文件将位于 Release 构建的 build-vc\Release\Release 目录中, Debug 构建则位于 build-vc\Debug\Debug 目录中。

同时,从 build/cmark-build/src/Release(或 Debug)复制相应的 cmark.dll 到二进制目录。

贡献

请参阅 CONTRIBUTING

使用 D-Bus API

目前,D-Bus API 没有文档,如果您想使用它,请在 #nheko:nheko.im 寻求支持。

界面截图

这里有一些界面截图,让您对 UI 有所了解,但可能会发生变化。 nheko 启动 nheko 登录 nheko 聊天 nheko 设置 nheko 移动版

第三方

编辑推荐精选

AEE

AEE

AI Excel全自动制表工具

AEE 在线 AI 全自动 Excel 编辑器,提供智能录入、自动公式、数据整理、图表生成等功能,高效处理 Excel 任务,提升办公效率。支持自动高亮数据、批量计算、不规则数据录入,适用于企业、教育、金融等多场景。

UI-TARS-desktop

UI-TARS-desktop

基于 UI-TARS 视觉语言模型的桌面应用,可通过自然语言控制计算机进行多模态操作。

UI-TARS-desktop 是一款功能强大的桌面应用,基于 UI-TARS(视觉语言模型)构建。它具备自然语言控制、截图与视觉识别、精确的鼠标键盘控制等功能,支持跨平台使用(Windows/MacOS),能提供实时反馈和状态显示,且数据完全本地处理,保障隐私安全。该应用集成了多种大语言模型和搜索方式,还可进行文件系统操作。适用于需要智能交互和自动化任务的场景,如信息检索、文件管理等。其提供了详细的文档,包括快速启动、部署、贡献指南和 SDK 使用说明等,方便开发者使用和扩展。

Wan2.1

Wan2.1

开源且先进的大规模视频生成模型项目

Wan2.1 是一个开源且先进的大规模视频生成模型项目,支持文本到图像、文本到视频、图像到视频等多种生成任务。它具备丰富的配置选项,可调整分辨率、扩散步数等参数,还能对提示词进行增强。使用了多种先进技术和工具,在视频和图像生成领域具有广泛应用前景,适合研究人员和开发者使用。

爱图表

爱图表

全流程 AI 驱动的数据可视化工具,助力用户轻松创作高颜值图表

爱图表(aitubiao.com)就是AI图表,是由镝数科技推出的一款创新型智能数据可视化平台,专注于为用户提供便捷的图表生成、数据分析和报告撰写服务。爱图表是中国首个在图表场景接入DeepSeek的产品。通过接入前沿的DeepSeek系列AI模型,爱图表结合强大的数据处理能力与智能化功能,致力于帮助职场人士高效处理和表达数据,提升工作效率和报告质量。

Qwen2.5-VL

Qwen2.5-VL

一款强大的视觉语言模型,支持图像和视频输入

Qwen2.5-VL 是一款强大的视觉语言模型,支持图像和视频输入,可用于多种场景,如商品特点总结、图像文字识别等。项目提供了 OpenAI API 服务、Web UI 示例等部署方式,还包含了视觉处理工具,有助于开发者快速集成和使用,提升工作效率。

HunyuanVideo

HunyuanVideo

HunyuanVideo 是一个可基于文本生成高质量图像和视频的项目。

HunyuanVideo 是一个专注于文本到图像及视频生成的项目。它具备强大的视频生成能力,支持多种分辨率和视频长度选择,能根据用户输入的文本生成逼真的图像和视频。使用先进的技术架构和算法,可灵活调整生成参数,满足不同场景的需求,是文本生成图像视频领域的优质工具。

WebUI for Browser Use

WebUI for Browser Use

一个基于 Gradio 构建的 WebUI,支持与浏览器智能体进行便捷交互。

WebUI for Browser Use 是一个强大的项目,它集成了多种大型语言模型,支持自定义浏览器使用,具备持久化浏览器会话等功能。用户可以通过简洁友好的界面轻松控制浏览器智能体完成各类任务,无论是数据提取、网页导航还是表单填写等操作都能高效实现,有利于提高工作效率和获取信息的便捷性。该项目适合开发者、研究人员以及需要自动化浏览器操作的人群使用,在 SEO 优化方面,其关键词涵盖浏览器使用、WebUI、大型语言模型集成等,有助于提高网页在搜索引擎中的曝光度。

xiaozhi-esp32

xiaozhi-esp32

基于 ESP32 的小智 AI 开发项目,支持多种网络连接与协议,实现语音交互等功能。

xiaozhi-esp32 是一个极具创新性的基于 ESP32 的开发项目,专注于人工智能语音交互领域。项目涵盖了丰富的功能,如网络连接、OTA 升级、设备激活等,同时支持多种语言。无论是开发爱好者还是专业开发者,都能借助该项目快速搭建起高效的 AI 语音交互系统,为智能设备开发提供强大助力。

olmocr

olmocr

一个用于 OCR 的项目,支持多种模型和服务器进行 PDF 到 Markdown 的转换,并提供测试和报告功能。

olmocr 是一个专注于光学字符识别(OCR)的 Python 项目,由 Allen Institute for Artificial Intelligence 开发。它支持多种模型和服务器,如 vllm、sglang、OpenAI 等,可将 PDF 文件的页面转换为 Markdown 格式。项目还提供了测试框架和 HTML 报告生成功能,方便用户对 OCR 结果进行评估和分析。适用于科研、文档处理等领域,有助于提高工作效率和准确性。

飞书多维表格

飞书多维表格

飞书多维表格 ×DeepSeek R1 满血版

飞书多维表格联合 DeepSeek R1 模型,提供 AI 自动化解决方案,支持批量写作、数据分析、跨模态处理等功能,适用于电商、短视频、影视创作等场景,提升企业生产力与创作效率。关键词:飞书多维表格、DeepSeek R1、AI 自动化、批量处理、企业协同工具。

下拉加载更多