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.0.tar.gz (5.9 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.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: termjump-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 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.0.tar.gz
Algorithm Hash digest
SHA256 036ab567c493452842d58ccc094684fcde64078d1fc150b5a4c973f395d41702
MD5 52729320ef66d68685569ed0419670eb
BLAKE2b-256 f5cf42757895740d3f6d44a565c4ebda4b14ae38a7c4b4e0a2c4a44de4eae518

See more details on using hashes here.

File details

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

File metadata

  • Download URL: termjump-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efb545ccbdadc2cbda065aff5eeee596d4ca9aa31adff57289e7121089101559
MD5 9a2c57a254ba1ce5c382a2d4bf1123e7
BLAKE2b-256 9a0fec11d81f2f83d14769e16e09aa4ae801692ffff8fa73ae12af8a37373bcf

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