A terminal-based interface to zulip chat
Project description
Zulip Terminal
An interactive terminal interface for Zulip.
Changes
Please see the CHANGELOG for released & recent changes.
Setup:
- Install the package:
[sudo] pip3 install virtualenv
virtualenv /tmp/zt/
. /tmp/zt/bin/activate
pip3 install zulip-term
- Run Zulip Terminal:
$ zulip-term
NOTE: If you use Google/Github Auth to login into your zulip organization then you don't have a password and you need to create one. Please go to your <Your Organization URL>/accounts/password/reset/
(eg: https://chat.zulip.org/accounts/password/reset/) to create a new password for your associated account.
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 |
---|---|
Go Back | esc |
Previous message | Up / k |
Next message | Down / j |
Go left | left / h |
Go right | right / l |
Scroll up | PgUp / K |
Scroll down | PgDn / J |
Go to the last message | G / end |
Reply to a message | r |
Reply to an author | R |
Reply mentioning sender of the message | @ |
Reply quoting the message text | > |
New stream message | c |
New private message | x |
Toggle focus box in compose box | tab |
Send a message | Alt Enter |
Narrow to a stream | S |
Narrow to a topic | s |
Narrow to private messages | P |
Narrow to starred messages | f |
Next Unread Topic | n |
Next Unread PM | p |
Search People | w |
Search Messages | / |
Search Streams | q |
Add/remove thumbs-up reaction on a message | + |
Add/remove star status of a message | * |
Display help menu | ? |
Jump to the Beginning of line | Ctrl + A |
Jump backward one character | Ctrl + B / ← |
Jump backward one word | Meta + B |
Delete one character | Ctrl + D |
Delete one word | Meta + D |
Jump to the end of line | Ctrl + E |
Jump forward one character | Ctrl + F / → |
Jump 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 |
Paste last kill | Ctrl + Y |
Undo last action | Ctrl + _ |
Jump to previous line | Ctrl + P / ↑ |
Jump to 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.
- 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
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.
A simple tutorial for implementing typing
indicator is available
in the wiki. Follow
it to understand the how to implement a new feature for zulip-terminal.
Debugging Tips
The stdout for zulip-terminal is set to ./debug.log
by default.
If you want to check the value of a variable, you can simply write
print(variable)
and the value of the variable will be printed to ./debug.log
.
If you want to debug zulip-terminal while it is running, or in a specific state, you can insert
from pudb.remote import set_trace
set_trace()
in the part of the code you want to debug. This will start a telnet connection for you. You can find the IP address and
port of the telnet connection in ./debug.log
. Then simply run
$ telnet 127.0.0.1 6899
in another terminal, where 127.0.0.1
is the IP address and 6899
is port you find in ./debug.log
.
Need Help?
Come meet us at Zulip.
Troubleshooting: Common issues
Unable to render non-ASCII characters
If you see ?
in place of emojis or Zulip Terminal gives a UnicodeError
/ CanvasError
, you haven't enabled utf-8
encoding in your terminal. To enable it by default, add this to the end of you ~/.bashrc
:
export LANG=en_US.utf-8
Unable to open links
If you are unable to open links in messages, then try double right-click on the link. If you are still facing problems, please discuss it at #zulip-terminal or open an issue for it mentioning your terminal name, version, and OS.
[DEV] No effect on Zulip Terminal on making local changes
This means that you have installed both Normal and development versions of zulip-terminal. For running the development version, call
pipenv run zulip-term
from the cloned / downloaded zulip-terminal
directory.
Above mentioned hotkeys don't work as described
If any of the above mentioned hotkeys don't work for you, feel free to open an issue or discuss it on #zulip-terminal.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file zulip-term-0.3.1.tar.gz
.
File metadata
- Download URL: zulip-term-0.3.1.tar.gz
- Upload date:
- Size: 51.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 313a6abebd01937f20a37c3629c67172c277e132c1a30a3d31398153fa25a691 |
|
MD5 | ef6692d4b5e045e9c0438dd789eebbe6 |
|
BLAKE2b-256 | 08ef0597fa804ed7ce4f7e1b2a17a1fdf71a02357ab3c9ca39c9dfa7bfe471eb |
File details
Details for the file zulip_term-0.3.1-py3-none-any.whl
.
File metadata
- Download URL: zulip_term-0.3.1-py3-none-any.whl
- Upload date:
- Size: 61.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a659ef57e5dbdb6e1b0a973131dec04909189c844e509462e0f64418426b190 |
|
MD5 | 7633e7fd443610a8741c2c9d3cc48d21 |
|
BLAKE2b-256 | 5deebf19fc24a9bd050d8bd91fe5a45d996cf8e0b343acbd51ff982d1e588f80 |