Skip to content
A free, open-source, and multi-platform twitter client for the desktop!
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
docs/img
lyrebird-api-server
lyrebird-api
lyrebird
.gitignore
CODE_OF_CONDUCT.md
Jenkinsfile
LICENSE.md
README.md
pom.xml

README.md

Promo logo

Last develop branch's statistics :

Build Status Known Vulnerabilities OpenHub Stats

Reasoning :

There are currently no effective Twitter clients on Windows and Linux. The goal of Lyrebird is to fix this, support macOS, and remain fully open-source.

Hopefully this works out.

How to get it

Precompiled

Recommendations :

  • Windows & macOS : download according precompiled release.

  • Debian/Ubuntu (& derivatives that use dpkg/apt) : Add repository source deb https://deb.lyrebird.moe any main, then download signing key and add it to apt keyring

wget https://deb.lyrebird.moe/lyrebird_repositories.gpg
sudo apt-key add lyrebird_repositories.gpg
rm lyrebird_repositories.gpg

Then install latest version with apt update && apt install lyrebird.

  • RedHat/CentOS/Fedora (& derivatives that use yum/dnf/rpm) : Add repository source (unsure if gpgcheck=0 is needed as I sign rpm packets, but doesn't hurt)
[Lyrebird]
name=Lyrebird releases
baseurl=https://rpm.lyrebird.moe
gpgcheck=0

Then update your repositories and install package lyrebird.

Build it yourself

Requirements:

  • A Java 10+ development kit with JavaFX components included (i.e. an Oracle JDK or an OpenJDK+OpenJFX combo)
  • Apache Maven (works at least with version 3.5.2)
  • For native images you need either InnoSetup tools on Windows or dpkg-deb/rpmutils on Linux depending on what system you want to target. You can only build native images for the current system type.

First (in project folder) : $> mvn clean install -DskipTests

Then any of the following (in Lyrebird/lyrebird folder):

  • Execute only (no packaging) : $> mvn spring-boot:run
  • For a native installer (will be in Lyrebird/lyrebird/target/jfx/native) : $> mvn jfx:native -DskipTests
  • For a portable JAR file (will be in Lyrebird/lyrebird/target) : $> mvn package -DskipTests

What does it look like?

Screenshot of current version

Current state of development:

  • Log in

  • Tweets-based systems

    • Base systems :
      • Timeline
      • Mentions
      • Direct messages
    • Display features :
      • Basic textual display
      • Display username, @screen_name and user profile picture
      • Display for chosen list
      • Text highlighting
        • Mentions
          • Color
          • Clickable
        • Hashtags
          • Color
          • Clickable
          • In-app search
        • URLs
          • Color
          • Clickable
      • Media embedding
        • Officially supported
          • Twitter image embedding
          • Twitter video embedding
          • Twitter gif images embedding
        • Easy embedding
          • Direct image embedding
          • Direct video embedding
        • Why is it not easy to do ?
          • Youtube video embedding
    • Data loading features :
      • Seeking older tweets by-demand (scroll or button)
      • Streaming API NO LONGER ALLOWED BY TWITTER STARTING 16TH AUGUST 2018
      • Seeking updated information as often as possible while respecting rate limits
  • Tweeting

    • Support text
    • Support attachments
    • Support geolocation
  • Interaction with tweet

    • Reply
    • Quote
    • Like (formerly favourite)
    • Retweet
  • Interaction with users

    • Follow/unfollow
    • Block/mute
    • List management
    • Report
  • Searches

  • Miscellaneous

    • System notifications
    • Internal notifications
    • Update system
      • Basic update system
      • Auto-update

Can I contribute?

Please do!

It should be fairly easy to understand the general idea of the back-end model for any seasoned Java developer with some Spring Framework experience.

For the UI/JavaFX model a lot of the work is delegated to a JavaFX framework called EasyFXML which you can read about here.

You can’t perform that action at this time.