Home

Awesome

Sourcegraph CLI Build Status Go Report Card

<img src="https://user-images.githubusercontent.com/3173176/43567326-3db5f31c-95e6-11e8-9e74-4c04079c01b0.png" width=500 align=right>

src is a command line interface to Sourcegraph:

Note: Using Sourcegraph 3.12 or earlier? See the older README.

Installation

Binary downloads are available on the releases tab, and through Sourcegraph.com. If the latest version does not work for you, consider using the version compatible with your Sourcegraph instance instead.

Installation: Mac OS

Latest version

curl -L https://sourcegraph.com/.api/src-cli/src_darwin_amd64 -o /usr/local/bin/src
chmod +x /usr/local/bin/src

or with Homebrew:

brew install sourcegraph/src-cli/src-cli

or with npm:

npm install -g @sourcegraph/src

Version compatible with your Sourcegraph instance

Replace sourcegraph.example.com with your Sourcegraph instance URL:

curl -L https://sourcegraph.example.com/.api/src-cli/src_darwin_amd64 -o /usr/local/bin/src
chmod +x /usr/local/bin/src

or, if you know the specific version to target, for example 3.43.2:

brew install sourcegraph/src-cli/src-cli@3.43.2

or with npm/npx:

npx @sourcegraph/src@3.43.2 version

Note: Versioned formulas are available on Homebrew for Sourcegraph versions 3.43.2 and later.

Installation: Linux

Latest version

curl -L https://sourcegraph.com/.api/src-cli/src_linux_amd64 -o /usr/local/bin/src
chmod +x /usr/local/bin/src

or with npm:

npm install -g @sourcegraph/src

Version compatible with your Sourcegraph instance

Replace sourcegraph.example.com with your Sourcegraph instance URL:

curl -L https://sourcegraph.example.com/.api/src-cli/src_linux_amd64 -o /usr/local/bin/src
chmod +x /usr/local/bin/src

or, with npm/npx, if you know the specific version to target, for example 3.43.2:

npx @sourcegraph/src@3.43.2 version

Installation: Windows

See Sourcegraph CLI for Windows.

Installation: Docker

sourcegraph/src-cli is published to Docker Hub. You can use the latest tag or a specific version such as 3.43. To see all versions view sourcegraph/src-cli tags.

docker run --rm=true sourcegraph/src-cli:latest search 'hello world'

Log into your Sourcegraph instance

Run <code><strong>src login <i>SOURCEGRAPH-URL</i></strong></code> to authenticate src to access your Sourcegraph instance with your user credentials.

<blockquote>

Examples src login https://sourcegraph.example.com src login https://sourcegraph.com

</blockquote>

src consults the following environment variables:

For convenience, you can add these environment variables persistently.

Configuration: Mac OS / Linux

Add the following to your terminal profile file, typically accessible at ~/.bash_profile (if using Bash) or ~/.zprofile (if using Zsh):

export SRC_ACCESS_TOKEN=my-token
export SRC_ENDPOINT=https://sourcegraph.example.com 

Replace my-token and https://sourcegraph.example.com with the appropriate values for your account and instance.

You can also inline them in a single command with:

SRC_ENDPOINT=https://sourcegraph.example.com SRC_ACCESS_TOKEN=my-token src search 'foo'

Configuration: Windows

Type the following on your PowerShell terminal:

$env:SRC_ENDPOINT = 'https://sourcegraph.example.com'
$env:SRC_ACCESS_TOKEN = 'my-token'

Replace my-token and https://sourcegraph.example.com with the appropriate values for your account and instance.

You can also manually add them via the System Properties windows. Check this post for details.

Is your Sourcegraph instance behind a custom auth proxy? See auth proxy configuration docs.

Usage

src provides different subcommands to interact with different parts of Sourcegraph:

Run src -h and src <subcommand> -h for more detailed usage information. You can also read the usage docs for the latest version of src-cli online.

Optional: Renaming src

If you have a naming conflict with the src command, such as a Bash alias, you can rename the static binary. For example, on Linux / Mac OS:

mv /usr/local/bin/src /usr/local/bin/src-cli

You can then invoke it via src-cli.

Telemetry

src includes the operating system and architecture in the User-Agent header sent to Sourcegraph. For example, running src version 3.21.10 on an x86-64 Linux host will result in this header:

src-cli/3.21.10 linux amd64

To disable this and only send the version, you can set -user-agent-telemetry=false for a single command, or set the SRC_DISABLE_USER_AGENT_TELEMETRY environment variable to any non-blank string.

As with other Sourcegraph telemetry, any collected data is only sent to Sourcegraph.com in aggregate form.

Development

Some useful notes on developing src can be found in DEVELOPMENT.md.