Skip to content

Files

Latest commit

75a915b · Jan 10, 2025

History

History

go

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Mar 7, 2024
Nov 30, 2022
Nov 29, 2022
Jul 22, 2024
Dec 30, 2019
Sep 24, 2019
Feb 7, 2024
Aug 15, 2024
Jan 31, 2024
Nov 30, 2022
May 8, 2024
Nov 29, 2022
Dec 6, 2019
Mar 27, 2020
Nov 30, 2022
Dec 20, 2023
Nov 30, 2022
Nov 22, 2021
Nov 22, 2021
Nov 22, 2021
Nov 22, 2021
Apr 23, 2020
Apr 8, 2020
Nov 22, 2021
Nov 30, 2022
Jan 5, 2024
Apr 9, 2020
Dec 5, 2018
Oct 5, 2018
Aug 28, 2018
Nov 22, 2021
Jun 17, 2024
Nov 30, 2022
Nov 22, 2021
Aug 13, 2024
Nov 29, 2022
Aug 31, 2019
Apr 6, 2020
Nov 30, 2022
Apr 15, 2020
Nov 30, 2022
Nov 22, 2021
Jan 10, 2025
Nov 30, 2022
Nov 30, 2022
Nov 22, 2021
Aug 6, 2019
Nov 30, 2022
Nov 29, 2022
Nov 22, 2021
Nov 29, 2021
Jul 24, 2019
Nov 22, 2021
Apr 15, 2020
Nov 22, 2021
Dec 4, 2021
Aug 8, 2018
Aug 13, 2024
Nov 22, 2021
Jun 27, 2018
Jan 17, 2024
Nov 22, 2021
Nov 22, 2021
Nov 22, 2021
May 8, 2024
Dec 10, 2019
Nov 29, 2022
Dec 11, 2018
Nov 30, 2022
Mar 29, 2024
Jan 2, 2024
Dec 4, 2021
Nov 30, 2022
Apr 15, 2020
Mar 27, 2024
Nov 22, 2021
Nov 22, 2021
Apr 15, 2020
Nov 30, 2022
Apr 9, 2020
Oct 1, 2024
Feb 20, 2019
Jul 28, 2023
Oct 21, 2019
Apr 28, 2020
Feb 24, 2015
Feb 7, 2024
May 13, 2024
Nov 22, 2021
Nov 2, 2015
Nov 22, 2021
Mar 9, 2024
Mar 14, 2024
Jul 7, 2016

Keybase

This repository contains the Keybase core crypto libraries, command-line utility, and local Keybase service. All code is written in the Go Language, making heavy use of Go's OpenPGP and NaCl Library implementation.

Our intended architecture is that keybase runs a local service on Desktop environments, which can be connected to over a local Unix domain sockets on OSX/Linux, and over named pipes on Windows. The persistent service will eventually listen for asynchronous server updates, and will serve several clients, like the command-line utility, the graphical desktop app (see electron), and the Keybase FUSE-mounted file system.

Code in this repository can run against either our production site or our staging server.

Install production client

If you're not building Keybase yourself, follow our usual install instructions.

Building

Here's how to build the command line client on Linux or OSX. You need to have both Git and Go 1.19 or higher installed. (Run go version to see what version you have.)

# First we need to set up a GOPATH. This is a standard first step for
# building Go programs, so if you've done this already, skip on ahead.
# See also https://golang.org/doc/install.
mkdir ~/gopath
export GOPATH="$HOME/gopath"     # Consider putting this in your ~/.bashrc.
export PATH="$PATH:$GOPATH/bin"  # Ditto.

# Now for the actual clone and build. Currently the Keybase client depends
# on go.mod replace directives, so a `go get` of the repository cannot be
# used. You should use `git` to clone the repository instead.
# See https://github.com/golang/go/issues/30354 for more details.
git clone https://github.com/keybase/client.git
cd client/go
go install -tags production github.com/keybase/client/go/keybase

# If you did the PATH bit above, this should just work.
keybase

Run the service

keybase service

Or specify a custom home directory (and use -d for debug):

keybase -H ~/Projects/Keybase/dev -d service

Note that many commands will start the service in the background automatically if it's not already running. See also keybase ctl --help.

Run the client

keybase login
keybase id max

Or you can run the client in "Standalone" Mode

# No service needed, but you'll be repeatedly prompted for your passphrase
keybase --standalone id max

Run tests

cd $GOPATH/src/github.com/keybase/client/go/test
./run_tests.sh

Calculate package dependenies

make gen-deps

License

Most code is released under the New BSD (3 Clause) License.