An interactive terminal interface for Zulip.
- Download and install the prerequisite tools (pipsi)
$ curl -SsLo /tmp/get-pipsi.py https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py
$ python3 /tmp/get-pipsi.py
$ printf '\nexport PATH="%s:$PATH"\n' '${HOME}/.local/bin' | tee -a ~/.bashrc
- Install the package:
$ pipsi install --python python3 'git+https://github.com/zulip/zulip-terminal.git@master#egg=zulipterminal'
- Download the zuliprc configuration file to your computer:
- Log in to the Zulip server(e.g. chat.zulip.org or yourSubdomain.zulipchat.com, or your own development server).
- Go to Settings -> Your account
- Click on
Show/Change your API keyunder the API key section. - Download the
zuliprcfile by clicking Get API key. - Copy the file to
~/zuliprc
- Run Zulip Terminal client (
zulip-term)
$ zulip-term
Alternatively, you can specify the location of zuliprc using the -c option
$ zulip-term -c /path/to/zuliprc
[api]
email=example@example.com
key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
site=https://realm.zulipchat.com
[zterm]
# Theme can also be set to 'blue' and 'light'
theme=default
| Command | Key Combination |
|---|---|
| Previous message | Up / k |
| Next message | Down / j |
| Go left | left / h |
| Go right | right / l |
| Go to the last message | G / end |
| Narrow to private messages | P |
| Scroll down | PgDn / J |
| Scroll up | PgUp / K |
| Reply to a message | r |
| Reply to an author | R |
| New stream message | c |
| Go Back | esc |
| Narrow to a stream | S |
| Narrow to a topic | s |
| Next Unread Topic | n |
| Next Unread PM | p |
| Send a message | Alt Enter |
| Search People | w> |
| Search Messages | / |
| Beginning of line | Ctrl + A |
| Backward one character | Ctrl + B / ← |
| Backward one word | Meta + B |
| Delete one character | Ctrl + D |
| Delete one word | Meta + D |
| End of line | Ctrl + E |
| Forward one character | Ctrl + F / → |
| Forward one word | Meta + F |
| Delete previous character | Ctrl + H |
| Transpose characters | Ctrl + T |
| Kill (cut) forwards to the end of the line | Ctrl + K |
| Kill (cut) backwards to the start of the line | Ctrl + U |
| Kill (cut) forwards to the end of the current word | Meta + D |
| Kill (cut) backwards to the start of the current word | Ctrl + W |
| Previous line | Ctrl + P / ↑ |
| Next line | Ctrl + N / ↓ |
| Clear screen | Ctrl + L |
Note: You can use arrows, home, end, Page up and Page down keys to move around in Zulip-Terminal.
For development, the setup process is a little different.
- Install pipenv
$ curl https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py
$ python3 /tmp/get-pip.py --user
$ printf '\nexport PATH="%s:$PATH"\n' '${HOME}/.local/bin' | tee -a ~/.bashrc
$ python3 -m pip install --user pipenv
- Clone the zulip/zulip-terminal repository locally
$ git clone git@github.com:zulip/zulip-terminal.git
- Install dev requirements
$ cd zulip-terminal
$ pipenv --three
$ pipenv install --dev
$ pipenv run python setup.py develop
- Run the client
$ pipenv run zulip-term
- To run all tests:
pipenv run pytest
- To generate coverage report for tests:
pipenv run pytest --cov-report html:cov_html --cov=./
- To run the linter:
pipenv run pytest --pep8
- To check the type annotations, run:
pipenv run ./tools/run-mypy
- To open in debug mode:
pipenv run zulip-term -d
- To profile runtime:
pipenv run zulip-term --profile
Zulip Terminal is being build by an awesome community of Zulip.
To be a part of it and to contribute to the code, feel free to work on any issue or propose your idea on #zulip-terminal.
Do checkout our commit message guidelines and git guide.
Come meet us at Zulip.