src is a command line interface to Sourcegraph:
- Search & get results in your terminal
- Search & get JSON for programmatic consumption
- Make GraphQL API requests with auth easily & get JSON back fast
- Execute campaign actions
- Manage & administrate repositories, users, and more
- Easily convert src-CLI commands to equivalent curl commands, just add --get-curl!
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
brew install sourcegraph/src-cli/src-cli
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
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
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
Installation: Windows
See Sourcegraph CLI for Windows.
Log into your Sourcegraph instance
Run src login SOURCEGRAPH-URL to authenticate src to access your Sourcegraph instance with your user credentials.
Examples
src login https://sourcegraph.example.com
src login https://sourcegraph.com
src consults the following environment variables:
SRC_ENDPOINT: the URL to your Sourcegraph instance (such as https://sourcegraph.example.com)
SRC_ACCESS_TOKEN: your Sourcegraph access token (on your Sourcegraph instance, click your user menu in the top right, then select Settings > Access tokens to create one)
For convenience, you can export these environment variables in your shell profile. You can also inline them in a single command with:
SRC_ENDPOINT=https://sourcegraph.example.com SRC_ACCESS_TOKEN=my-token src search 'foo'
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:
src login - authenticate to a Sourcegraph instance with your user credentials
src search - perform searches and get results in your terminal or as JSON
src actions - run campaign actions to generate patch sets
src api - run Sourcegraph GraphQL API requests
src campaigns - manages campaigns
src repos - manage repositories
src users - manage users
src orgs - manages organization
src config - manage global, org, and user settings
src extsvc - manage external services (repository configuration)
src extensions - manage extensions
src lsif - manages LSIF data
src serve-git - serves your local git repositories over HTTP for Sourcegraph to pull
src version - check version and guaranteed-compatible version for your Sourcegraph instance
Run src -h and src <subcommand> -h for more detailed usage information.
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.