Skip to content

AkshJain99/zulip-terminal

 
 

Repository files navigation

Zulip Terminal

An interactive terminal interface for Zulip.

Build Status Zulip chat

Setup:

  1. 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
  1. Install the package:
$ pipsi install --python python3 'git+https://github.com/zulip/zulip-terminal.git@master#egg=zulipterminal'
  1. 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
  1. 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

Example zuliprc file

[api]
email=example@example.com
key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
site=https://realm.zulipchat.com

[zterm]
# Theme can also be set to 'blue' and 'light'
theme=default

Hot Keys

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.

Development

For development, the setup process is a little different.

  1. 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
  1. Clone the zulip/zulip-terminal repository locally
$ git clone git@github.com:zulip/zulip-terminal.git
  1. Install dev requirements
$ cd zulip-terminal
$ pipenv --three
$ pipenv install --dev
$ pipenv run python setup.py develop
  1. Run the client
$ pipenv run zulip-term

Running tests

  • 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

Contributor Guidelines

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.

Need Help?

Come meet us at Zulip.

About

A terminal interface for Zulip.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%