## Keybase This repository contains the Keybase core crypto libraries, command-line utility, and local Keybase service. All code is written in the [Go Language](https://golang.org), making heavy use of Go's [OpenPGP](https://godoc.org/golang.org/x/crypto/openpgp) and [NaCl](https://godoc.org/golang.org/x/crypto/nacl) [Library](https://github.com/agl/ed25519) 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`](../electron)), and the Keybase FUSE-mounted file system. Code in this repository can run against either our [production site](https://keybase.io) or our [staging server](https://stage0.keybase.io). ### Install production client If you're not building Keybase yourself, follow our [usual install instructions](https://keybase.io/download). ### 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.) ```bash # 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 ```bash keybase service ``` Or specify a custom home directory (and use -d for debug): ```bash 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 ```bash keybase login keybase id max ``` ### Or you can run the client in "Standalone" Mode ```bash # No service needed, but you'll be repeatedly prompted for your passphrase keybase --standalone id max ``` ### Run tests ```bash cd $GOPATH/src/github.com/keybase/client/go/test ./run_tests.sh ``` ### Calculate package dependenies ```bash make gen-deps ``` ### License Most code is released under the New BSD (3 Clause) License.