Command Line Interface (CLI)
This page provides information about the Globus CLI, a standalone application that can be installed on the user’s machine and used to access the Globus service.
The CLI provides an interface to Globus services from the shell, and is suited to both interactive and simple scripting use cases.
It is open source and available at https://github.com/globus/globus-cli
Installation
The Globus CLI is available as a python package from PyPI.
It can be installed with pipx
or pip
.
We enthusiastically recommend using pipx to install the Globus CLI. It provides an isolated environment to keep your CLI installation running smoothly, and it’s resilient to changes in your system’s python installation.
pipx install globus-cli
After that, you can use pipx
to manage your installation.
Some time later, upgrade your installed version:
pipx upgrade globus-cli
Reinstall the entire CLI in the event something about your python has changed:
pipx reinstall globus-cli
pip install globus-cli
This is supported anywhere that pip
works. For example, in an activated
virtualenv.
pip install --user
or
sudo pip install
. There are known issues with these installation methods.
Setting Up Tab Completion
The Globus CLI provides a shell completer for tab completion, supporting both the
zsh and bash shells. To setup completion, you must run a shell function
provided by the globus
command.
The following snippets are suitable for inclusion in a .bashrc
or .zshrc
,
to setup completion whenever a shell starts and the Globus CLI is installed:
if type globus > /dev/null 2>&1; then
eval "$(globus --bash-completer)"
fi
The completer requires Bash version 4.4 or newer. If you are using an older version of Bash, you may have success writing the completer to a file and editing it, e.g.
globus --bash-completer | sed 's/nosort/nospace/' > ~/.globus_bash_completion.sh
and then sourcing it in your .bashrc
.
if type globus > /dev/null 2>&1; then
eval "$(globus --zsh-completer)"
fi
The --completer
flag can be used in either bash or zsh. It will detect your
current shell from the SHELL
environment variable. You can use it if you use
multiple shells and want to share config:
if type globus > /dev/null 2>&1; then
eval "$(globus --completer)"
fi
If you are wary of putting a subshell invocation inside of eval
, consider
redirecting the output to a file, reading the file to see what it does, and
then sourcing it.
Note that we recommend checking for changes whenever upgrading the CLI if you use this approach, as we may modify the output of the completer to fix bugs and issues.
Getting Help and Documentation
Full reference documentation for all CLI commands is available on our documentation site.
You can also view help for any command by passing the --help
flag to that command.
That will show you any subcommands and options supported by that command.
Try globus --help
to get started.
Documentation Topics
Other useful pieces of documentation include…
- QuickStart Guide
-
Once you install, you may want to try running through the QuickStart to see basic login and usage info.
- Environment Variables
-
Environment variables with special meanings to the Globus CLI.
- Collection vs Endpoint Handling
-
How the Globus CLI handles the distinction between Collections and Endpoints.
- Reference Documentation
-
A complete reference to all Globus CLI commands.
- Usage Examples
-
In addition to the documentation, we have some examples of simple and common tasks as performed using the CLI.