github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/README.md (about) 1 ## Keybase [![Build Status](https://travis-ci.org/keybase/client.svg?branch=master)](https://travis-ci.org/keybase/client) [![Build status](https://ci.appveyor.com/api/projects/status/90mxorxtj6vixnum/branch/master?svg=true)](https://ci.appveyor.com/project/keybase/client-x5qrt/branch/master) 2 3 This repository contains the Keybase core crypto libraries, command-line 4 utility, and local Keybase service. All code is written in the [Go 5 Language](https://golang.org), making heavy use of Go's 6 [OpenPGP](https://godoc.org/golang.org/x/crypto/openpgp) and 7 [NaCl](https://godoc.org/golang.org/x/crypto/nacl) 8 [Library](https://github.com/agl/ed25519) implementation. 9 10 Our intended architecture is that `keybase` runs a local service on Desktop 11 environments, which can be connected to over a local Unix domain sockets on OSX/Linux, 12 and over named pipes on Windows. The persistent service will eventually listen 13 for asynchronous server updates, and will serve several clients, like the command-line 14 utility, the graphical desktop app ([see `electron`](../electron)), and the Keybase 15 FUSE-mounted file system. 16 17 Code in this repository can run against either our [production 18 site](https://keybase.io) or our [staging 19 server](https://stage0.keybase.io). 20 21 ### Install production client 22 23 If you're not building Keybase yourself, follow our [usual install 24 instructions](https://keybase.io/download). 25 26 ### Building 27 28 Here's how to build the command line client on Linux or OSX. You need to 29 have both Git and **Go 1.19 or higher** installed. (Run `go version` to 30 see what version you have.) 31 32 ```bash 33 # First we need to set up a GOPATH. This is a standard first step for 34 # building Go programs, so if you've done this already, skip on ahead. 35 # See also https://golang.org/doc/install. 36 mkdir ~/gopath 37 export GOPATH="$HOME/gopath" # Consider putting this in your ~/.bashrc. 38 export PATH="$PATH:$GOPATH/bin" # Ditto. 39 40 # Now for the actual clone and build. Currently the Keybase client depends 41 # on go.mod replace directives, so a `go get` of the repository cannot be 42 # used. You should use `git` to clone the repository instead. 43 # See https://github.com/golang/go/issues/30354 for more details. 44 git clone https://github.com/keybase/client.git 45 cd client/go 46 go install -tags production github.com/keybase/client/go/keybase 47 48 # If you did the PATH bit above, this should just work. 49 keybase 50 ``` 51 52 ### Run the service 53 54 ```bash 55 keybase service 56 ``` 57 58 Or specify a custom home directory (and use -d for debug): 59 60 ```bash 61 keybase -H ~/Projects/Keybase/dev -d service 62 ``` 63 64 Note that many commands will start the service in the background 65 automatically if it's not already running. See also `keybase ctl --help`. 66 67 ### Run the client 68 69 ```bash 70 keybase login 71 keybase id max 72 ``` 73 74 ### Or you can run the client in "Standalone" Mode 75 76 ```bash 77 # No service needed, but you'll be repeatedly prompted for your passphrase 78 keybase --standalone id max 79 ``` 80 81 ### Run tests 82 83 ```bash 84 cd $GOPATH/src/github.com/keybase/client/go/test 85 ./run_tests.sh 86 ``` 87 88 ### Calculate package dependenies 89 90 ```bash 91 make gen-deps 92 ``` 93 94 ### License 95 96 Most code is released under the New BSD (3 Clause) License.