Skip to main content

⚡ 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.

PyPI version Python Shell License


😤 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)

Source distribution for termjump 0.1.1
File Size Uploaded Provenance
termjump-0.1.1.tar.gz 6.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for termjump 0.1.1
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page