npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

fish-tree

v0.1.0

Published

Terminal UI and CLI for managing git worktrees

Readme

fish-tree

A terminal UI and CLI for managing git worktrees across multiple repositories.

If you use git worktrees heavily, you've probably lost track of which ones exist, forgotten to clean up stale ones, or just gotten tired of typing long paths. fish-tree gives you a single interface to see everything, jump between worktrees, and create or remove them without remembering the git commands.

What it does

  • TUI browser -- interactive list of all your worktrees, grouped by project, with dirty/clean status and recent commits
  • Fuzzy jump -- type ft auth and land in whichever worktree matches "auth"
  • Quick create/delete -- ft add feat/login or ft rm feat/login without thinking about paths
  • Shell integration -- ft can cd you into worktrees directly (fish, bash, zsh)
  • Multi-project -- discovers repos automatically from a configurable base directory, or you can list them explicitly in config

Install

Requires Bun.

git clone https://github.com/mikecfisher/fish-tree.git
cd fish-tree
bun install

Set up the shell wrapper so ft can change your working directory:

bun run src/index.ts install       # auto-detects your shell
bun run src/index.ts install --all # fish + bash + zsh

Restart your shell (or source the relevant rc file), then you can use ft directly.

Usage

ft                  Open the TUI
ft <name>           Fuzzy jump to a worktree (shorthand for ft jump)
ft add <branch>     Create a new worktree
ft list             List all worktrees (plain text)
ft list --json      List all worktrees (JSON)
ft rm <name>        Remove a worktree
ft config           Open config in $EDITOR
ft install          Install shell wrapper

TUI keybindings

| Key | Action | |-----|--------| | j / k | Move up/down | | Enter | Open worktree (cd) or toggle project | | Space | Toggle project collapsed/expanded | | n | Create new worktree | | d | Delete selected worktree | | / | Filter worktrees | | g / G | Jump to top/bottom | | q | Quit |

The main worktree (root repo checkout) is marked with a star in the sidebar and can't be deleted from the TUI.

Configuration

Config lives at ~/.config/fish-tree/config.json (or wherever XDG_CONFIG_HOME points). Run ft config to open it.

{
  "worktreeBase": "~/.worktrees",
  "projects": [
    { "name": "my-app", "path": "/Users/me/code/my-app" }
  ],
  "defaultBaseBranch": "main",
  "autoPrune": true,
  "shell": "auto"
}
  • worktreeBase -- directory where new worktrees get created, organized by project name
  • projects -- explicitly registered repos (fish-tree also auto-discovers repos under worktreeBase)
  • defaultBaseBranch -- branch used as the starting point when creating worktrees
  • autoPrune -- automatically prune stale worktree references
  • shell -- "auto", "fish", "bash", or "zsh"

Running tests

bun test

Built with

  • Bun -- runtime, bundler, test runner
  • OpenTUI -- React-based terminal UI framework
  • React -- component model and state management