• This repository has been archived on 11/Mar/2022
  • Stars
    star
    525
  • Rank 84,404 (Top 2 %)
  • Language
    Swift
  • License
    Other
  • Created over 6 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A truly native Matrix client for macOS - written in Swift/Cocoa, with E2E encryption support

Seaglass

#seaglass:matrix.org CircleCI Build Status Stable Version

Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework.

Screenshot of Seaglass

Install Seaglass

You can find the latest release on GitHub or you can install Seaglass from Homebrew Cask. Either way, you'll be able to use the built in auto updating feature to ensure you have the latest version.

brew cask install seaglass

Building from source

Use Xcode 9.4 or Xcode 10.0 on macOS 10.13. Seaglass may require macOS 10.13 as a result of using auto-layout for some table views, which seems to have been introduced with High Sierra. I hope to find an alternate way to relax this requirement.

If you do not already have CocoaPods installed, then install it:

sudo gem install cocoapods

Clone the Seaglass repository and install dependencies:

git clone https://github.com/neilalexander/seaglass
cd seaglass
pod install

Open up Seaglass.xcworkspace in Xcode and build!

Current features

  • Logging in to a homeserver you are already registered with
  • Creating and leaving rooms and direct chats
  • Joining and parting rooms
  • Inviting users to rooms (through /invite)
  • Emotes (using /me)
  • Message redaction
  • Posting text to rooms with Markdown formatting
  • Changing some room settings (history visibility, join rules, name, topic, aliases)
  • Message coalescing
  • End-to-end encryption
    • Enabling end-to-end encryption in rooms
    • Marking devices as verified or blacklisted
    • Exporting and importing encryption keys (compatible with Riot)
    • Requesting (and re-requesting) keys from other Matrix clients
    • Choosing whether to send encrypted messages to unverified devices
  • Viewing inline images and stickers
  • Links to non-image attachments

Disclaimer

At this stage it is early in development and stands a good chance of being buggy and unreliable. I'm also not a Swift expert - I only started using Swift three or four days before my initial commit - and this code is probably awful. You've been warned. :-)