Help us shape the future of Go! Take the 2026 Go Developer Survey

jump

command module
v0.69.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 21, 2026 License: MIT Imports: 4 Imported by: 0

README

[releases]

Jump

Jump integrates with your shell and learns where you go. It tracks the directories you visit and lets you jump to the right one with just a few fuzzy-typed characters.

Demo


Installation

Packages are available on the following platforms:

Platform Command
macOS brew install jump or port install jump
Linux sudo snap install jump
Nix nix-env -iA nixpkgs.jump
Go go install github.com/gsamokovarov/jump@latest
Linux distribution packages
Distribution Command
Arch sudo yay -S jump
Ubuntu / Debian wget https://github.com/gsamokovarov/jump/releases/download/v0.67.0/jump_0.67.0_amd64.deb && sudo dpkg -i jump_0.67.0_amd64.deb
Fedora wget https://github.com/gsamokovarov/jump/releases/download/v0.67.0/jump-0.67.0-1.x86_64.rpm && sudo rpm -i jump-0.67.0-1.x86_64.rpm
Void xbps-install -S jump

Or install the latest release for the current user into ~/.local/bin:

curl -fsSL https://raw.githubusercontent.com/gsamokovarov/jump/main/install.sh | bash

Shell Integration

Jump is used through its helper function – j by default. Add it to your shell:

bash / zsh

eval "$(jump shell)"

fish

jump shell fish | source

PowerShell

Invoke-Expression (&jump shell pwsh | Out-String)

Nushell

jump shell nushell | save --append $nu.config-path

Murex

murex-package install https://github.com/lmorg/murex-module-jump.git

Jump begins tracking directories automatically once integrated.

Custom binding

The letter j is the default binding for Jump. But if that's not your jam, you can customize it to your liking.

eval "$(jump shell --bind=z)"
eval "$(jump shell --bind=goto)"

Or bind it directly to cd:

eval "$(jump shell --bind=cd)"

Typing cd project now performs a fuzzy jump.


Usage

Summary (Quick Examples)

j wc               # Fuzzy Jump
j web-console      # Exact Match
j dev/soc/web      # Deep Jump
j ch site          # Multi-Part Match
j app/             # Relative Jump
j .                # Repo Root
j . cable          # Based Mode
j -                # cd -
j ..               # cd ..
j ../..            # cd ../..
j                  # Reverse Jump
j Dev              # Case-Sensitive

That was a quick overview of how j behaves. The sections below explain each feature with landing paths.


Regular jump

j wc               # -> /Users/genadi/Development/rails/web-console
j console          # -> /Users/genadi/Development/rails/web-console
j b-c              # -> /Users/genadi/Development/rails/web-console
j web-console      # -> /Users/genadi/Development/rails/web-console   (exact)

Deep jump

j ch site          # -> /Users/genadi/Development/chaos/website
j dev/soc/web      # -> /Users/genadi/Development/society/website

Spaces and slashes work interchangeably.


Based Mode

j . cable          # -> /Users/genadi/Development/rails/rails/actioncable
j . actionview/app # -> /Users/genadi/Development/rails/rails/actionview/app
j .                # -> /Users/genadi/Development/rails/rails

Useful for monorepos with many repeated directory names.

Based mode determines the base directory using this priority:

  1. $JUMP_BASED_PATH environment variable
  2. Git repository root (detected via git rev-parse --show-toplevel)
  3. Current directory (fallback when no git repo is detected)

This means j . works even outside git repositories, simply using the current directory as the base.


Relative Jump

If your input contains or ends with a slash, Jump checks for a relative directory.

# In /Users/genadi/Development/rails/rails
j actioncable/     # -> ./actioncable
j actionpack/app   # -> ./actionpack/app

Jump also mirrors familiar shell movements:

j -                # -> previous directory
j ..               # -> parent directory
j ../..            # -> grandparent directory

If the relative path does not exist, Jump falls back to fuzzy search.


Reverse jump

j web              # -> /Users/genadi/Development/society/website
j                  # -> /Users/genadi/Development/chaos/website

Case-sensitive jump

j Dev              # -> /Users/genadi/Development

Pins

cd /Users/genadi/development/rails
jump pin r

j r                # -> /Users/genadi/development/rails

List and remove pins:

jump pins
jump unpin r

Database Tools

jump clean         # remove stale entries
jump forget        # forget current directory
jump top           # ranked directories
jump top --score   # ranked directories with numeric scores
jump top dev       # fuzzy filtered list

Importing from autojump, z or zoxide

jump import
jump import autojump
jump import z
jump import zoxide

Imports merge into your existing database without overwriting scores.


Why Jump?

Cause it's good!

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL