Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/grvcoelho/tms.fish

A fish plugin to manage git projects as tmux sessions
https://github.com/grvcoelho/tms.fish

fish fish-plugin fish-shell fisher shell tmux

Last synced: about 1 month ago
JSON representation

A fish plugin to manage git projects as tmux sessions

Awesome Lists containing this project

README

        

# tms.fish

A fish-shell plugin for managing git projects as tmux sessions

## What is tms.fish?

tms.fish is a Fish plugin that works as a tmux session manager. It's inspired by [ThePrimeagen's tmux-sessionizer](https://github.com/ThePrimeagen/.dotfiles/blob/602019e902634188ab06ea31251c01c1a43d1621/bin/.local/scripts/tmux-sessionizer) but extends the functionality by integrating with [ghq](https://github.com/x-motemen/ghq) for a seamless git repository management.

- **Quick Session Management**: Create or switch tmux sessions for git projects
- **ghq Integration**: Navigate projects across your filesystem
- **Fuzzy Finding**: Select projects quickly with fzf
- **Auto-cloning**: Clone non-existent repositories automatically
- **Consistent Naming**: Generate uniform session names from repo names
- **Smart Session Handling**: Switch to existing sessions or create new ones

## Installation

Using [fisher](https://github.com/jorgebucaran/fisher):

```fish
fisher install grvcoelho/tms.fish
```

### Requirements

- [ghq](https://github.com/x-motemen/ghq) A Git repository management tool for organizing and accessing your repositories
- [fzf](https://github.com/junegunn/fzf) A command-line fuzzy finder for quickly searching and selecting items from a list

## Usage

```fish
# Open fzf to select a repository from your ghq list
$ tms

# Clone the repo if it doesn't exist, then open a tmux session for it
$ tms username/repo

# Navigate to a specific directory and create/switch to a tmux session
$ tms ~/path/to/directory

# Fuzzy search for a repository (just like z or fzf)
$ tms partial_repo_name
```

## Other Work

- [tmux-sessionizer](https://github.com/jrmoulton/tmux-sessionizer): A similar rust tool