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

arbors

v0.1.1

Published

Interactive git worktree manager with TUI

Readme

arbors

한국어 | 日本語

A CLI tool for managing git worktrees.

Create a separate directory for each branch and work on multiple branches simultaneously — no stash or switch needed. Automatically copies gitignored files and installs dependencies when creating worktrees.

Install

git clone [email protected]:sungsulee/arbors.git
cd arbors
pnpm install && pnpm build
npm link

Shell integration (required for arbors switch and auto cd after arbors add):

# ~/.zshrc
source /path/to/arbors/shell/arbors-wrapper.zsh

# ~/.bashrc
source /path/to/arbors/shell/arbors-wrapper.sh

The wrapper captures arbors's __ARBORS_CD__ output and runs cd in the parent shell. Without it, switch and add will print the path but won't change directory.

Workflows

New feature development

# Create a new branch + worktree based on main
arbors add -c feature/login --base main

# This automatically:
#   1. git fetch origin main
#   2. Creates worktree at ~/arbors/{repo}/feature-login
#   3. Copies gitignored files matching copyPatterns (.env, etc.)
#   4. Runs pnpm install (auto-detects from lockfile)

cd ~/arbors/my-project/feature-login
# Start working

When done:

arbors remove feature/login
# Refuses to delete if there are uncommitted changes

Code reviewing a colleague's PR

Check out a remote branch as a local worktree:

# Automatically fetches from origin and creates worktree
arbors add feature/payment

# If the branch already exists locally, just creates the worktree
# → Tries local first, falls back to origin

When review is done:

arbors remove feature/payment

Working on multiple branches at once

arbors add -c feature/auth --base main
arbors add -c fix/header-bug --base main

arbors list
# feature/auth    ~/arbors/my-project/feature-auth
# fix/header-bug  ~/arbors/my-project/fix-header-bug

# Work independently in each directory. No stashing needed.

Commands

arbors add <branch>                     Checkout existing branch (local → remote auto)
arbors add -c <branch> [--base <branch>]  Create new branch + worktree
arbors switch <branch>                  Switch to existing worktree
arbors remove <branch>                  Remove worktree (with safety checks)
arbors list [--plain]                   List managed worktrees
arbors excluded                         Show copy patterns
arbors config                           Show current config

Configuration

~/.arbors/config.json (global) or .arbors/config.json (per-project, takes precedence):

{
  "runtime": "node",
  "language": "en",
  "packageManager": "auto",
  "copyPatterns": [".env*"],
  "worktreeDir": "~/arbors/{repo}"
}

| Key | Values | Default | | ---------------- | ------------------------------------- | ------------------- | | runtime | "node", "bun" | "node" | | language | "en", "ko", "ja" | "en" | | packageManager | "auto", "pnpm", "yarn", "npm" | "auto" | | copyPatterns | string[] | [".env*"] | | worktreeDir | string ({repo} placeholder) | "~/arbors/{repo}" |

Development

pnpm test       # vitest
pnpm lint       # oxlint
pnpm format     # oxfmt
pnpm build      # tsup
pnpm typecheck  # tsc --noEmit

License

MIT