whatisgithub

What is client?

keybase/client — explained in plain English

Analysis updated 2026-06-24

9,208GoAudience · developerComplexity · 5/5Setup · hard

In one sentence

Keybase's encrypted messaging and file-sharing platform, source code for desktop apps on macOS, Windows, and Linux and mobile apps on iOS and Android, with cryptographic identity verification.

Mindmap

mindmap
  root((client))
    What it does
      Encrypted messaging
      File sharing
      Identity verification
    Tech stack
      Go backend service
      React Native mobile
      Electron desktop
    Platforms
      macOS Windows Linux
      iOS and Android
    Contributing
      Pre-commit hooks
      Security review required
      GitHub issue tracker
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build and run the official Keybase desktop app from source on macOS, Windows, or Linux.

USE CASE 2

Contribute encryption features or bug fixes to the Keybase iOS and Android mobile apps.

USE CASE 3

Study how a real-world end-to-end encrypted messaging app structures its Go backend service alongside a React Native frontend.

What is it built with?

GoReact NativeElectronJavaScriptAvro

How does it compare?

keybase/clientminiflux/v2majd/ipatool
Stars9,2089,2179,229
LanguageGoGoGo
Setup difficultyhardmoderateeasy
Complexity5/53/52/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires building the Go service plus React Native or Electron toolchains, export laws may restrict redistribution of encryption software in some countries.

So what is it?

Keybase is an encrypted communication platform, and this repository contains the source code for all of its client applications: desktop apps on macOS, Windows, and Linux, plus mobile apps on iOS and Android. If you just want to use Keybase, the README recommends downloading the official releases from the website rather than building from source, because the source code can include unfinished experiments that may not behave as expected. The codebase is organized into several areas. The core cryptography and the background service that powers all Keybase apps are written in Go. The mobile apps for iOS and Android are built with React Native, a framework that lets developers write JavaScript code that runs on both mobile platforms. The desktop app uses Electron, a tool for building cross-platform desktop applications with web technologies, and it shares React code with the mobile apps. The protocol folder defines how client apps communicate with the Keybase service, using a format called Avro for structuring that communication. The packaging folder contains scripts for building and releasing the apps on each platform. A separate macOS-native app also exists alongside the Electron version. Keybase includes cryptographic features for encrypting messages, files, and identity verification. Because of this, the README includes a notice that export laws in some countries may restrict the use or distribution of software that handles encryption, and it recommends checking local regulations before redistributing the code. For contributors, the project uses pre-commit hooks to check code quality before commits are accepted. External pull requests go through a security review before the team builds them in their CI system, because running untrusted code in a build environment poses a risk. Issues with the client apps can be reported on the GitHub issue tracker, and the team monitors it alongside an internal tracker.

Copy-paste prompts

Prompt 1
I cloned keybase/client and want to build the desktop Electron app on macOS. What dependencies do I need and what commands do I run?
Prompt 2
Explain how the Keybase Go service communicates with the React Native mobile app using the Avro protocol defined in the protocol folder.
Prompt 3
I want to contribute a bug fix to the Keybase iOS app. Walk me through the React Native codebase structure and how to set up a local dev build.
Prompt 4
How does Keybase handle end-to-end encryption for messages and files inside the Go core service?

Frequently asked questions

What is client?

Keybase's encrypted messaging and file-sharing platform, source code for desktop apps on macOS, Windows, and Linux and mobile apps on iOS and Android, with cryptographic identity verification.

What language is client written in?

Mainly Go. The stack also includes Go, React Native, Electron.

How hard is client to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is client for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.