explaingit

keybase/client

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

TLDR

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

Things people build with this

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.

Tech stack

GoReact NativeElectronJavaScriptAvro

Getting 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.

In plain English

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?
Open on GitHub → Explain another repo

← keybase on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.