Open-source project
runelite/runelite avatar
runelite/runelite

RuneLite: The Open Source Client for Old School RuneScape

Open source Old School RuneScape client

5,466 stars5,824 forksJavaBSD-2-Clause

At a glance

What is it?
RuneLite is a free, open source Java client for Old School RuneScape that separates the game API from client plugins and cache utilities into distinct Gradle modules. It is an active project with a developer-focused repository that points contributors to a separate wiki for full documentation.
Who is it for?
RuneLite is the right choice for Old School RuneScape players who want a client with a community plugin ecosystem and BSD-2-clause licensed source code they can inspect or contribute to. Players who want a fully Jagex-tested experience or who play RuneScape 3 should use the official Jagex launcher; the RuneLite README makes no claims about RuneScape 3 compatibility.
Can I use it commercially?
Yes. BSD-2-Clause is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What RuneLite Is and Who Uses It

Old School RuneScape is a version of the RuneScape browser game restored from a 2007 backup and maintained as a separate, actively updated game by Jagex. The official game client covers the core play experience. RuneLite is a free, open source replacement client built in Java that adds a plugin layer on top of the base game, giving players access to community-written overlays, quality-of-life tools, quest helpers, and game data visualizations.

The primary audience is Old School RuneScape players who want features that the official client does not provide, and developers who want to write new plugins or contribute to the existing client infrastructure. The project is not an emulator or a private server; it connects to the same official game servers as the standard client.

RuneLite is distributed through runelite.net, the project's official homepage. The GitHub repository at runelite/runelite is the development home, not the download hub. The README directs users who want more information to the RuneLite Wiki, and contributors to the Developer Guide on the same wiki. Community support is available on Discord (discord.gg/ArdAhnN) and on IRC at irc.rizon.net in the channel #runelite.

Repository Layout: Cache, API, and Client

The repository is organized into three main Java modules, each with a clear boundary:

The cache module, at cache/src/main/java/net/runelite/cache, provides libraries for reading and writing the game's cache files as well as accessing the data stored in them. This module exists independently of the live game client and is useful for tooling that works with static game data.

The runelite-api module, at runelite-api/src/main/java/net/runelite/api, defines the RuneLite API as a set of interfaces. Plugins access the game client through these interfaces rather than reaching into client internals directly. This boundary is the reason the plugin system can be stable across client updates; as long as the API contracts hold, a plugin does not need to change when the client internals change.

The runelite-client module, at runelite-client/src/main/java/net/runelite/client, is the game client itself with the plugin host. This is where the RuneLite class that you run in an IDE lives.

The top level also includes runelite-gradle-plugin (a custom Gradle plugin used by the build), runelite-jshell (a JShell integration for interactive exploration), a ci/ directory for CI scripts, and a config/ directory for project configuration. The build system uses Gradle with a version catalog at libs.versions.toml.

Building RuneLite as a Gradle Project

The README gives a single instruction for building and running RuneLite: open the project in your IDE as a Gradle project, then run the RuneLite class in the runelite-client module. The repository includes Gradle wrapper scripts, gradlew for Unix and gradlew.bat for Windows, so you do not need a separate Gradle installation.

This is a developer-oriented workflow. The README does not document command-line build steps or packaging instructions for end users; those details are in the RuneLite Wiki's Developer Guide. The build uses build.gradle.kts at the root and common.settings.gradle.kts for shared module configuration.

For players who want to run RuneLite without building from source, the installer is at runelite.net. The repository does not publish GitHub releases; the official distribution channel is the project website.

The Developer Guide on the RuneLite Wiki covers the full setup process in detail, including how to configure an IDE for the Gradle project, how to run the client with debug tooling enabled, and how to write and test a new plugin.

The Plugin Architecture and the runelite-api Boundary

The plugin system is RuneLite's main value over the standard client. Plugins register with the client host in runelite-client and interact with the game through the interfaces defined in runelite-api. This separation is intentional: plugin authors depend on stable API contracts, not on implementation details inside the client.

The RuneLite Wiki lists a plugin hub where community plugins are reviewed and distributed separately from the core client. The README describes runelite-client as the "game client with plugins," but the specific plugin API surface and the process for publishing to the plugin hub are documented on the wiki rather than in the repository README.

From the repository layout it is clear that the API layer in runelite-api is the stable surface that plugin authors depend on. Changes to the game cache format or client internals do not propagate to plugins as long as the API interfaces remain consistent. This design choice reduces the maintenance burden on third-party plugin authors when the core client is updated.

The runelite-jshell module provides a JShell-based interactive shell that lets developers execute code against a live RuneLite instance for exploratory debugging and API testing.

RuneLite vs the Official Jagex Launcher

Jagex, the developer of RuneScape, distributes an official launcher and client for both RuneScape 3 and Old School RuneScape. The official client is the product Jagex tests, supports, and updates directly. It is the correct choice for any player who wants full Jagex endorsement or who plays RuneScape 3.

RuneLite is a third-party client built by the community. The README covers only Old School RuneScape; the repository does not mention RuneScape 3 compatibility. The plugin ecosystem in RuneLite adds features the official client does not provide, which is its primary reason to exist.

The actual difference in approach is in what the clients are designed to let you do. The official Jagex client provides the game's intended experience with full Jagex testing. RuneLite adds a plugin host that lets the community extend the game client with overlays, trackers, helpers, and other tools. The two clients serve different goals; using RuneLite is not a substitute for the official launcher on all counts.

For players who need login with a Jagex account or a Steam account, the RuneLite Wiki (not the repository README) is where compatibility details live. The README itself documents only the development workflow.

License, Maintenance, and Where to Find Documentation

RuneLite is licensed under the BSD 2-clause license. The README notes that the license header in each source file is authoritative, so the applicable license for any given file is visible in that file. BSD 2-clause is a permissive license with no copyleft requirement; you can use the library or modify it without open-sourcing your changes.

The project is actively developed. The last push to the repository was on 2026-09-26, and the repository receives contributions through the standard GitHub pull request workflow described in the Developer Guide.

The README itself is deliberately minimal. It documents the project layout, gives the one-sentence build instruction, lists the license, and links to external resources. All detailed documentation lives on the RuneLite Wiki: plugin development guides, the developer setup walkthrough, answers to common player questions, and the full API reference. Community discussion happens on Discord and in the IRC channel.

For anyone who wants to file a bug, request a feature, or contribute a fix, the RuneLite Wiki's Developer Guide is the starting point. The repository's .github/ directory contains contributing guidelines and issue templates, but the substantive content is on the wiki.

Editorial conclusion

RuneLite is the right choice for Old School RuneScape players who want a client with a community plugin ecosystem and BSD-2-clause licensed source code they can inspect or contribute to. Players who want a fully Jagex-tested experience or who play RuneScape 3 should use the official Jagex launcher; the RuneLite README makes no claims about RuneScape 3 compatibility. Before contributing to the project, open it as a Gradle project in your IDE, run the RuneLite class in runelite-client, and read the Developer Guide on the RuneLite Wiki.

Frequently asked questions

What is RuneLite used for?

RuneLite is a free, open source client for Old School RuneScape that adds a community plugin system on top of the base game. It connects to the same official game servers as the standard client and is distributed through runelite.net.

How do I install RuneLite?

For end users, the installer is available at runelite.net. For developers who want to build from source, the README says to open the repository as a Gradle project in an IDE and run the RuneLite class in the runelite-client module; the full Developer Guide is on the RuneLite Wiki.

How do I use RuneLite?

The README directs users to the RuneLite Wiki for full usage information. For developers, open the repository as a Gradle project in your IDE and run the RuneLite class in runelite-client. Plugin-specific usage is documented on the RuneLite Wiki.

Official sources

  1. Issues
  2. License: BSD-2-Clause
  3. Project website
  4. README
  5. runelite/runelite on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/runelite-runelite.svg)](https://hysenlabs.com/projects/runelite-runelite)