Skip to content

sidoshi/gjump

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GJump

A Raycast extension that replaces tmux session workflows with native Ghostty windows.

Ghostty already supports splits, tabs, and windows — the only thing missing is a quick way to jump between project directories (like tmux sessions). GJump fills that gap: browse your repositories, open them in a dedicated Ghostty window with nvim, and instantly switch back to them later.

How it works

  1. GJump scans your configured project directories and lists them in Raycast
  2. Projects are grouped into Running (open Ghostty window), Recent, and All
  3. Selecting a project either focuses its existing window or spawns a new Ghostty window for it
  4. New windows cd into the project directory and open nvim
  5. You can also open a quick Scratchpad terminal or type any name to create an ad-hoc named window

Setup

1. Install the extension

git clone https://github.com/siddhartdoshi/gjump.git
cd gjump
npm install
npm run dev

This opens the extension in Raycast in development mode. Use the "Jump to Project" command from Raycast.

2. Add the shell hook (required)

Ghostty doesn't yet support running commands on launch natively, so GJump passes environment variables to the new window and relies on a shell hook to act on them. Add this to your ~/.zshrc:

# GJump shell hook — cd into project dir and open nvim for new sessions
# https://github.com/sidoshi/GJump
if [[ -n "$GHOSTTY_LAUNCH_DIR" ]]; then
  cd "$GHOSTTY_LAUNCH_DIR"

  if [[ -n "$GHOSTTY_LAUNCH_NVIM" && -n "$GHOSTTY_LAUNCH_ID" && ! -f "/tmp/ghostty-launch-$GHOSTTY_LAUNCH_ID" ]]; then
    touch "/tmp/ghostty-launch-$GHOSTTY_LAUNCH_ID"
    zoxide add "$GHOSTTY_LAUNCH_DIR"
    nvim .
  fi
fi

The touch-file guard (/tmp/ghostty-launch-*) prevents nvim from reopening in every new split/tab within the same window.

Configuration

Open the extension preferences in Raycast to configure:

  • Project Roots — Comma-separated root directories to scan for projects (default: ~/gh,~/work)
  • Direct Projects — Comma-separated directories to add as projects directly (e.g. ~/dotfiles)

Disclaimer

This is AI-generated slop and a very hacky solution. It's tuned to my personal workflow and doesn't replace all tmux features — notably long-running sessions, detach/reattach, and remote persistence are not covered. Use at your own risk.

About

Replace tmux sessions (partly) with ghostty

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors