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 移动版

第三方

编辑推荐精选

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

TRELLIS

TRELLIS

用于可扩展和多功能 3D 生成的结构化 3D 潜在表示

TRELLIS 是一个专注于 3D 生成的项目,它利用结构化 3D 潜在表示技术,实现了可扩展且多功能的 3D 生成。项目提供了多种 3D 生成的方法和工具,包括文本到 3D、图像到 3D 等,并且支持多种输出格式,如 3D 高斯、辐射场和网格等。通过 TRELLIS,用户可以根据文本描述或图像输入快速生成高质量的 3D 资产,适用于游戏开发、动画制作、虚拟现实等多个领域。

ai-agents-for-beginners

ai-agents-for-beginners

10 节课教你开启构建 AI 代理所需的一切知识

AI Agents for Beginners 是一个专为初学者打造的课程项目,提供 10 节课程,涵盖构建 AI 代理的必备知识,支持多种语言,包含规划设计、工具使用、多代理等丰富内容,助您快速入门 AI 代理领域。

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 示例等部署方式,还包含了视觉处理工具,有助于开发者快速集成和使用,提升工作效率。

下拉加载更多