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 key
under the API key section. - Download the
zuliprc
file 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.