⚡ termjump
Stop pressing ← 47 times. Just click.
A tiny TUI editor that lets you click any character in your terminal command to jump your cursor there instantly.
😤 The Problem
Every terminal user knows this pain:
$ docker run -it --rm -v /home/user/projects:/workspace -p 8080:8080 myimage:latest
^^^^^^^^
typo is here 😭
Your options?
| Option | Reality |
|---|---|
Press ← repeatedly |
37 keypresses for one typo |
Alt+B / Alt+F |
How many words back? Who knows |
Ctrl+X Ctrl+E |
Opens full vim. For one character. |
| Retype the whole thing | 😤 |
There is no way to just click where you want to edit. Until now.
✅ The Solution
termjump opens a lightweight inline editor right in your terminal.
Press Ctrl+E → the editor pops up → click any character → cursor jumps there → fix it → Enter.
┌──────────────────────────────────────────────────────────────────────┐
│ ● termjump — smart command editor │
│ │
│ docker run -it --rm -v /home/user/projects:/workspace -p 8080:8080 │
│ ^ │
│ click here │
│ │
│ termjump col 36/72 ENTER confirm · ESC cancel · click to jump │
└──────────────────────────────────────────────────────────────────────┘
🚀 Quick Start
1. Install
pip install termjump
2. Add to your ~/.zshrc
eval "$(termjump init)"
3. Reload your shell
source ~/.zshrc
4. Use it
Type any command → press
Ctrl+E→ click any character → edit →Enter
🎮 How It Works
You type a command Press Ctrl+E Click a character
───────────────── ──────────── ─────────────────
$ git commit -m ┌────────────┐ ┌────────────────┐
"fix autentication" ──► │ termjump │ ──────► │ cursor jumps │
│ editor │ click! │ exactly there │
└────────────┘ └────────────────┘
│
▼
Fix typo → Enter
Command runs ✓
⌨️ Keyboard Shortcuts
| Key | Action |
|---|---|
| 🖱️ Click | Jump cursor instantly to any character |
← / → |
Move one character at a time |
Alt+← / Alt+→ |
Jump one word |
Ctrl+A |
Jump to beginning of command |
Ctrl+E |
Jump to end of command |
Enter |
Confirm and run the command |
Esc / Ctrl+C |
Cancel — original command stays untouched |
⚙️ Configuration
Change the trigger key (default is Ctrl+E):
# In your ~/.zshrc, after the eval line:
eval "$(termjump init)"
bindkey '^F' _termjump_widget # Ctrl+F instead
📋 Requirements
- Python 3.10+
- Shell — zsh (default on macOS since Catalina)
- Terminal with mouse support:
- ✅ iTerm2
- ✅ Kitty
- ✅ WezTerm
- ✅ macOS Terminal.app
🤝 Contributing
PRs and issues are very welcome!
git clone https://github.com/srisowmya2000/termjump
cd termjump
pip install -e ".[dev]"
python tests/test_termjump.py
termjump — because arrow keys are not a navigation strategy.
Made with 🖱️ for everyone who has ever rage-retyped a long command.
Metadata
Release files for termjump 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| termjump-0.1.1.tar.gz | 6.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| termjump-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.9 kB
Release files / termjump-0.1.1.tar.gz
| Download URL | termjump-0.1.1.tar.gz |
|---|---|
| Size | 6.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
97c500179bc5d691cb27442c878bb8653769ac08bd5443bc27ad73afe37d94da
|
|
BLAKE2b-256 checksum How to use checksums |
e651bf00f4e4d072a6a70ef7ef0000e81a0a8c5ee35577476ab4971030db2588
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.5
|
Release files / termjump-0.1.1-py3-none-any.whl
| Download URL | termjump-0.1.1-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3b62536d987064a7708087c9ec92b3d861e1509a7c266ef839301d75d07d8067
|
|
BLAKE2b-256 checksum How to use checksums |
1eee1bab08faef2873c8adc1ba9f5d007ae729e937502bb7ec7dc0a3f976f9e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.5
|
Security for termjump 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.