Awesome Go

jump

CategoryUtilities
SubcategoryUtilities
Stars0

Jump helps you navigate faster by learning your habits

About jump

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:

PlatformCommand
macOSbrew install jump or port install jump
Linuxsudo snap install jump
Nixnix-env -iA nixpkgs.jump
Gogo install github.com/gsamokovarov/jump@latest
DistributionCommand
Archsudo yay -S jump
Ubuntu / Debianwget 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
Fedorawget 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
Voidxbps-install -S jump

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 (or $JUMP_BASE_DIR in fish)
  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 or z

jump import
jump import autojump
jump import z

Imports merge into your existing database without overwriting scores.


Why Jump?

Cause it's good!

Frequently Asked Questions

What is jump?

jump is a Utilities library for the Go programming language. Jump helps you navigate faster by learning your habits

How do I install jump?

Install jump with the Go module system using `go get gsamokovarov/jump`. Check the repository for the current installation instructions.

What category does jump belong to?

jump is listed under Utilities, specifically Utilities.

← Back to Utilities