Skip to main content

Click-to-position terminal command editor for zsh

Project description

โšก 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

termjump-0.1.1.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

termjump-0.1.1-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file termjump-0.1.1.tar.gz.

File metadata

  • Download URL: termjump-0.1.1.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for termjump-0.1.1.tar.gz
Algorithm Hash digest
SHA256 97c500179bc5d691cb27442c878bb8653769ac08bd5443bc27ad73afe37d94da
MD5 9b38dab564894deb5f62f82ec0c6dd9b
BLAKE2b-256 e651bf00f4e4d072a6a70ef7ef0000e81a0a8c5ee35577476ab4971030db2588

See more details on using hashes here.

File details

Details for the file termjump-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: termjump-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for termjump-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3b62536d987064a7708087c9ec92b3d861e1509a7c266ef839301d75d07d8067
MD5 9c8e564edeed1216eddb9491ad3ccf51
BLAKE2b-256 1eee1bab08faef2873c8adc1ba9f5d007ae729e937502bb7ec7dc0a3f976f9e8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page