Keybase Go Library, Client, Service, OS X, iOS, Android, Electron

Overview

Keybase Build Status Build status

Hi, and welcome to the Keybase client repo. All our client apps (macOS, Windows, Linux, iOS, and Android) are being actively developed in this repository. Please, dig around.

Warnings

We'd love you to read our source code.

But - some of the things in this repo are explorations, and the app you build from source just might not do what it says it's doing. So, if you just want to install Keybase on your computer, you should monitor our releases for macOS, Linux, or Windows.

If you're interested in our Docker image releases, please check out the Docker README.

Sharing

Code Layout

  • go: Core crypto libraries; the Keybase service; the command line client. Learn More
  • shared/{android,ios}: Android and iOS apps developed with React Native.
  • shared/desktop: Desktop application for macOS, Linux, and Windows, made with the Electron framework, sharing React code with react-native.
  • packaging: Scripts for releasing packages across the various platforms.
  • protocol: Defines the protocol for communication for clients to the Keybase services. Uses Avro. Learn More
  • media: Icons, graphics, media for Keybase apps.
  • osx: The macOS Keybase.app, development parallel to an Electron-based application above. Learn More

Problems?

Report any issues with client software on this GitHub issue tracker. Internally, we track our progress using Jira, but all PRs come through GitHub for your review!

If you're having problems with the command line keybase client, take a look at the troubleshooting doc.

If you're having problems with our Website, try the keybase-issues issue tracker.

We check and update both frequently.

License

Most code is released under the New BSD (3 Clause) License. If subdirectories include a different license, that license applies instead.

Development Guidelines

We check all git commits with pre-commit hooks generated via pre-commit.com pre-commit hooks. To enable use of these pre-commit hooks:

  • Install the pre-commit utility. For some common cases:
    • pip install pre-commit
    • brew install pre-commit
  • Remove any existing pre-commit hooks via rm .git/hooks/pre-commit
  • Configure via pre-commit install

Then proceed as normal.

External Contributors

If you forked this repository on GitHub and made a PR, then it'll show up as having failed Jenkins CI. We do not build external PRs because it's a security risk to do so without a review first. If your PR is successfully reviewed by a member of the Keybase team, then we will merge your commits to a branch on our primary fork and build from there.

Cryptography Notice

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

Comments
  • Can't start kbfs

    Can't start kbfs

    OS: OS X Keybase Version: keybase version 1.0.15-20160401130013+78dff87

    I can't seem to start kbfs, keybase ctl restart hasn't helped.

    Output of keybase status:

    Username:      jonreem
    Logged in:     yes
    
    Device:
        name:      laptop
        ID:        6fcca53180e3f64881ad6ee5d6f34518
        status:    active
    
    Session:       no session
        is valid:  yes
        keys:      locked
        lksec:     not loaded
    
    KBFS:
        status:    not running
        version:   1.0.2-20160401130057+25510ca
        log:       /Users/reem/Library/Logs/keybase.kbfs.log
    
    Service:
        status:    running
        version:   1.0.15-20160401130013+78dff87
        log:       /Users/reem/Library/Logs/keybase.service.log
    
    Platform Information:
        OS:        darwin
        Runtime:   go1.6
        Arch:      amd64
    
    Client:
        version:   1.0.15-20160401130013+78dff87
    
    Desktop app:
        status:    running
        version:   1.0.15-20160401130013+78dff87
        log:       /Users/reem/Library/Logs/Keybase.app.log
    
    Config path:   /Users/reem/Library/Application Support/Keybase/config.json
    Default user:  jonreem
    Other users:
    
    command-line client:
        keybase status [pid: 15719, version: 1.0.15-20160401130013+78dff87]
    
    desktop:
        /Applications/Keybase.app/Contents/Frameworks/Keybase Helper.app/Contents/MacOS/Keybase Helper --type=renderer --no-sandbox --lang=en-US --node-integration=true --num-raster-threads=4 --enable-zero-copy --enable-gpu-memory-buffer-compositor-resources --content-image-texture-target=3553,3553,3553,3553,3553,34037,3553,3553,3553,3553,34037,3553,34037,34037 --video-image-texture-target=34037 --channel=12348.1.186385196 [pid: 12354, version: 1.0.15-20160401130013+78dff87, description: Menubar]
        /Applications/Keybase.app/Contents/Frameworks/Keybase Helper.app/Contents/MacOS/Keybase Helper --type=renderer --no-sandbox --lang=en-US --node-integration=true --num-raster-threads=4 --enable-zero-copy --enable-gpu-memory-buffer-compositor-resources --content-image-texture-target=3553,3553,3553,3553,3553,34037,3553,3553,3553,3553,34037,3553,34037,34037 --video-image-texture-target=34037 --channel=12348.2.1751919681 [pid: 12355, version: 1.0.15-20160401130013+78dff87, description: Main Renderer]
        /Applications/Keybase.app/Contents/MacOS/Electron -psn_0_25102319 [pid: 12348, version: 1.0.15-20160401130013+78dff87, description: Main Thread]
    

    Output of keybase launchd list:

    keybase.service: Running (pid=14800) [Keybase]
    keybase.kbfs: Not Running exit=2 [KBFS]
    

    keybase log send id: ec6a9aea3bde5eb2c5ef791c

    opened by reem 59
  • Enable Keybase in Finder doesn't work in macOS Big Sur 11.0.1

    Enable Keybase in Finder doesn't work in macOS Big Sur 11.0.1

    After upgrading to macOS Big Sur 11.0.1, Keybase client is not working with Finder, and enabling does not work. In main app, select Files tab; "Enable Keybase in Finder?" should show at the top. Click to accept "I understand that closed source...", and push "Yes, enable" button.

    Result: After working for a few seconds, nothing changes and "Yes, enable" button is enabled again. Attempting to navigate to any keybase managed files gives permission denied.

    Keybase client for macOS 5.5.0-20200526170801+139bb348af (installed via brew). kbfuse version is 10.11 with symlinks for higher versions.

    ❯ ll /Library/Filesystems/kbfuse.fs/Contents/Extensions/
    total 0
    drwxr-xr-x@ 3 root  wheel    96B May 26 13:19 10.11/
    lrwxr-xr-x  1 root  wheel     5B May 26 13:19 10.12@ -> 10.11
    lrwxr-xr-x  1 root  wheel     5B May 26 13:19 10.13@ -> 10.11
    lrwxr-xr-x  1 root  wheel     5B May 26 13:19 10.14@ -> 10.11
    lrwxr-xr-x  1 root  wheel     5B May 26 13:19 10.15@ -> 10.11
    
    opened by jburnett 53
  • Keybase GUI shows blank-ish dialogs

    Keybase GUI shows blank-ish dialogs

    On Arch Linux using GNOME 3, the GUI just displays opaque blobs of color. I suspect one of them is key unlocking, but I can't really tell.

    I don't seem to be able to use kbfs either, possibly as a result of this.

    Initial dialog: Initial dialog

    When I click the icon: Grey blob

    my log id: c13df03ad6cf0703c6c69f1c

    opened by chungy 53
  • Please Support Multiple Identities or Personas

    Please Support Multiple Identities or Personas

    I have two personas online, my professional persona and my personal/family personas are kept separate online. In this real-life example, I will never associate my facebook with my github via way of keybase (i wont proof facebook and github on the same keybase account, because that then associates them).

    Are my concerns common, is anyone else concerned about the same thing? Can/Will keybase support multiple personas or identities?

    opened by cbluth 49
  • macOS Sierra became unstable if Keybase.app was installed

    macOS Sierra became unstable if Keybase.app was installed

    I experienced various unstableness on macOS Sierra GM Seed (16A319 ) as:

    • Console.app
    • Dropbox hangup
    • iStat Menus hangup
    • OS hangup on shutdown or reboot

    After investigation, I found that keybase uninstall resolved the unstableness. I guess KBFS causing this issue But I can't verify that, so I file an issue here.

    opened by norio-nomura 46
  • Keybase GUI Mac

    Keybase GUI Mac

    Cannot login to Keybase Gui on the Mac OS El Cap.

    Command line does not work either, and never times out.

    Keybase log send does not work either, never sends.

    opened by kylebrowning 45
  • Search for chat history coming any time soon?

    Search for chat history coming any time soon?

    Just tested the new team feature with some colleagues, and an important question arose:

    What is the full chat history good for if there's no search?

    Is search going to be implemented any time soon?

    opened by FlxVctr 44
  • Can't use keybase filesystem. Permission denied.

    Can't use keybase filesystem. Permission denied.

    I have three devices (linux box, mac, and android) connected to my account. I can't access my /keybase/private directory from any of them. On each, I get: ERROR This device does not yet have read access to directory /keybase/private/d1rewolf, log into Keybase from one of your other devices to grant access: <redacted> is not readable by d1rewolf (uid: <redacted>) github.com/keybase/kbfs/libkbfs.isReadableOrError /Users/build/go/src/github.com/keybase/kbfs/libkbfs/md_util.go:74 github.com/keybase/kbfs/libkbfs.(*KBFSOpsStandard).getMaybeCreateRootNode /Users/build/go/src/github.com/keybase/kbfs/libkbfs/kbfs_ops.go:600 github.com/keybase/kbfs/libkbfs.(*KBFSOpsStandard).GetOrCreateRootNode /Users/build/go/src/github.com/keybase/kbfs/libkbfs/kbfs_ops.go:641 github.com/keybase/kbfs/simplefs.(*SimpleFS).getRemoteRootNode /Users/build/go/src/github.com/keybase/kbfs/simplefs/simplefs.go:737 github.com/keybase/kbfs/simplefs.(*SimpleFS).getRemoteNode /Users/build/go/src/github.com/keybase/kbfs/simplefs/simplefs.go:748 github.com/keybase/kbfs/simplefs.(*SimpleFS).SimpleFSStat /Users/build/go/src/github.com/keybase/kbfs/simplefs/simplefs.go:564 github.com/keybase/kbfs/vendor/github.com/keybase/client/go/protocol/keybase1.SimpleFSProtocol.func26 /Users/build/go/src/github.com/keybase/kbfs/vendor/github.com/keybase/client/go/protocol/keybase1/simple_fs.go:957 github.com/keybase/kbfs/vendor/github.com/keybase/go-framed-msgpack-rpc/rpc.(*callRequest).Serve /Users/build/go/src/github.com/keybase/kbfs/vendor/github.com/keybase/go-framed-msgpack-rpc/rpc/request.go:76 github.com/keybase/kbfs/vendor/github.com/keybase/go-framed-msgpack-rpc/rpc.(*receiveHandler).handleReceiveDispatch.func1 /Users/build/go/src/github.com/keybase/kbfs/vendor/github.com/keybase/go-framed-msgpack-rpc/rpc/receiver.go:121 runtime.goexit /usr/local/Cellar/go/1.9/libexec/src/runtime/asm_amd64.s:2337

    What can I do to fix this?

    acked 
    opened by d1rewolf 43
  • Issue starting KBFS windows app following registration of mobile device

    Issue starting KBFS windows app following registration of mobile device

    my workflow:

    • saw Marco set me up on Google Play
    • Installed Keybase app onto phone
    • logged into my account via keybase login (PGP)
    • named my device Galaxy_S8
    • device appeared to freeze; set it down for a bit in case it was syncing
    • looked at my conversations, I had a new one from user marcopolo; unable to read
    • viewed my folders; noticed a "rekey" tag on almost all of them.
    • clicked a folder; greeted with message I needed to log in from windows application or risk losing files.
    • Stopped work from the phone; started up laptop
    • Keybase unable to login on Laptop

    my log id: ef91f102cfe877cd9b1ea11c

    opened by jtsmith0101 39
  • Expire local tracks

    Expire local tracks

    @maxtaco, This mainly makes sure locally stored tracks get aged out instead of lasting forever, but I'm unsure whether this covers the intent of 2447. Would appreciate at least a first look at this draft.

    opened by zanderz 38
  • OS X: Force To Provisioned A Device That's Already Been Provisioned On Login

    OS X: Force To Provisioned A Device That's Already Been Provisioned On Login

    Hey,

    I'm currently trying to login and KB is asking me to provision my current device...trouble is my current device is already provisioned...it's even on the list of devices I can pick from.

    I've sent in a log: 8be1f1c6b2d097bde8fee61c

    --Brian

    opened by briandcosta 37
  • KBFS timeouts when using 'disable-cert-pinning'

    KBFS timeouts when using 'disable-cert-pinning'

    I had to use the disable-cert-pinning option because the machine is behind an aggressive firewall which basically MITM-attacks all traffic. The GUI app seems to work, however as soon as I tried to cd more than two levels "deep" in a KBFS team folder, it started throwing "The read operation took too long and failed" errors over and over again.

    Log ID: 700ae48f71c75cfd13c49e1c

    Running 6.0.3-20221212202006+608e46df72 on macOS 13.1.

    opened by jms1voalte 1
  • WIP: refactor message wrapper

    WIP: refactor message wrapper

    The goal of this MR is to make recycling of messages faster. In the old way we had a top level 'generic' component which then split up into various children, all with keys inside. This makes it very hard to save any time when recycling. Instead we

    • Make each type their own and split the shared stuff into helpers

    • Reduce the plumbing of conversationIDKey / ordinal, and useContext

    • Memo children and make them more recyclable (LeftSide RightSide etc)

    • Make a new messageTypeMap which just maps ordinals to types so we can not thrash as much

    • [ ] fix measure

    • [ ] maybe username needs orange line

    opened by chrisnojima 0
  • Android app hangs when someone is typing

    Android app hangs when someone is typing

    Ever since Android 13, when someone is typing it the same channel you have currently opened, the app has a good chance of crashing. It will hang and it must be killed to be restarted. This happens very often, maybe every 10 seconds. Multiple users reporting this in the app reviews on the play store. Looking at the issues here, I couldn't identify a related issue. Anyone has an idea about what might be causing this?

    Using a stock pixel 5, SwiftKey keyboard

    Thanks

    opened by ldionmarcil 1
  • keybase refuses to start on windows

    keybase refuses to start on windows

    output of %localappdata%\Keybase\Gui\Keybase.exe in cmd is Version: 6.0.1-20220609140211+0fc9feea3d requestWindowsStartService: starting keybase.exe Not connected - starting keybase expected path to keybase binaries is C:\Users\sfmor\AppData\Local\Keybase

    opened by ghost 0
Releases(v6.0.2)
Owner
Keybase
Crypto for everyone!
Keybase
Ported scrcpy for mobile platforms, to remotely control Android devices on your iPhone or Android phone.

scrcpy-mobile Ported scrcpy for mobile platforms, to remotely control Android devices on your iPhone or Android phone. Currently only supports control

Ethan 140 Jan 2, 2023
Vapor-telemetrydeck - Vapor client for posting signals to TelemetryDeck, a privacy-conscious analytics service for apps and websites

Vapor-telemetrydeck - Vapor client for posting signals to TelemetryDeck, a privacy-conscious analytics service for apps and websites

Sidetrack 7 Jun 16, 2022
An example implementation of using a native iOS Notification Service Extension (to display images in remote push notification) in Titanium.

Titanium iOS Notification Service Extension An example implementation of using a native iOS Notification Service Extension (to display images in remot

Hans Knöchel 8 Nov 21, 2022
Blazing⚡️Fast BTC and ETH Wallet Generator library for React Native, Android and iOS

Blazing ⚡️ Fast BTC and ETH Wallet Generator library for React Native, Android and iOS.

Coingrig 3 Feb 21, 2022
React Native utility library around image and video files for getting metadata like MIME type, timestamp, duration, and dimensions. Works on iOS and Android using Java and Obj-C, instead of Node 🚀.

Qeepsake React Native File Utils Extracts information from image and video files including MIME type, duration (video), dimensions, and timestamp. The

Qeepsake 12 Oct 19, 2022
Allows you to emulate an Android native library, and an experimental iOS emulation

unidbg Allows you to emulate an Android native library, and an experimental iOS emulation. This is an educational project to learn more about the ELF/

Banny 2.5k Dec 30, 2022
iOS's Stocks App clone written in React Native for demo purpose (available both iOS and Android).

FinanceReactNative iOS's Stocks App clone written in React Native for demo purpose (available both iOS and Android). Data is pulled from Yahoo Finance

kf 2k Dec 29, 2022
Mi Card App for Android & IOS in Flutter

Mi Card Our Goal Now that you've seen how to create a Flutter app entirely from scratch, we're going to go further and learn more about how to design

Ruksar Ahmed 0 Nov 6, 2021
Magic 8Ball App for Android & IOS in Flutter

Magic 8 Ball ?? Our Goal The objective of this challenge is to solidify what you've learn't in the Dicee tutorial. This app will guide you through the

Ruksar Ahmed 0 Nov 6, 2021
🏀 iOS and Android NBA app created with React Native

Swish An iOS and Android NBA app created with React Native. If you would like to request a feature, find a bug, have a question, or would like to leav

James Kuczmarski 108 Nov 11, 2022
Joplin - an open source note taking and to-do application with synchronization capabilities for Windows, macOS, Linux, Android and iOS. Forum: https://discourse.joplinapp.org/

Joplin® is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are sea

Laurent 33.7k Dec 30, 2022
The Bitwarden mobile application is written in C# with Xamarin Android, Xamarin iOS, and Xamarin Forms.

Bitwarden Mobile Application The Bitwarden mobile application is written in C# with Xamarin Android, Xamarin iOS, and Xamarin Forms. Build/Run Require

Bitwarden 4.2k Dec 29, 2022
An Android Wear style confirmation view for iOS

GoogleWearAlert Objective-C version kindly written by dimohamdy - https://github.com/dimohamdy/GoogleWearAlert An Android Wear style confirmation view

Ash 423 Nov 28, 2022
Respresso is a centralized resource manager for shared Android, iOS and Web frontend projects

Introduction Respresso is a centralized resource manager for shared Android, iOS and Web frontend projects. It allows you to simply import the latest

Respresso 10 Nov 8, 2022
Demo project to sync color changes to an Raspberry Pi Mood Light via iOS/Android

Raspberry Pi Mood Light Demo project to remotely control an Raspberry Pi Mood Light over Bluetooth via iOS and Android. ?? Watch the video Overview In

Ditto 10 Oct 17, 2022
Runtime Mobile Security (RMS) 📱🔥 - is a powerful web interface that helps you to manipulate Android and iOS Apps at Runtime

Runtime Mobile Security (RMS) ?? ?? by @mobilesecurity_ Runtime Mobile Security (RMS), powered by FRIDA, is a powerful web interface that helps you to

Mobile Security 2k Dec 29, 2022
Fridax enables you to read variables and intercept/hook functions in Xamarin/Mono JIT and AOT compiled iOS/Android applications.

Fridax is a Node package for dealing with Xamarin applications while using the Frida API. Goal • Installation • Usage • Examples • Issues • License Bu

Northwave 125 Jan 3, 2023
Kind of tired to need an Android Device on me, just to read manga, so here we are.

Dokusho Kind of tired to need an Android Device on me, just to read manga, so here we are. I am going to prioritize feature based on how I feel and no

Stephan Deumier 13 Oct 10, 2022
Kotlin Multiplatform sample with SwiftUI and Compose (Desktop and Android) clients. Heavily inspired by Wordle game.

WordMasterKMP Kotlin Multiplatform sample heavily inspired by Wordle game and also Word Master and wordle-solver samples. The main game logic/state is

John O'Reilly 56 Oct 4, 2022