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

@dentology/git-worktree

v0.2.0

Published

Create a git worktree from origin/main with one command. Optionally shares node_modules and .env with the main worktree.

Readme

@dentology/git-worktree

wt — create a git worktree from origin/main with one command.

By default it symlinks node_modules, apps/dentology/.env, and apps/dentology/database/.env.prod.local from your main worktree when those files exist, so you don't need to wait for bun install every time you start work on a new branch.

Install

npm i -g @dentology/git-worktree

Or run without installing:

npx @dentology/git-worktree --help

Usage

wt [<name>] [--branch=<name>] [--nodeModules=shared|separate] [--from=<ref>]
wt help | --help | -h

If no branch is provided, you'll be prompted to pick one from your recently-created local branches (or type a new name).

<name> defaults to a sanitized version of the branch name (e.g. feature/x becomes feature-x).

The new worktree is created at <repo-root>/worktrees/<name>.

Options

| Option | Default | Description | | ---------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------ | | -b, --branch <name> | prompt | Branch to create. If omitted, you pick from recent branches. | | -n, --nodeModules <mode> | shared | shared symlinks node_modules from the main worktree (fast). separate runs bun install in the new worktree. | | -f, --from <ref> | origin/main | Start point for the new branch. | | -h, --help | | Show help. |

Examples

wt fix-task-analytics --branch=task/analytics
wt --nodeModules=separate
wt feature-x --branch=feature/x --from=origin/main

Requirements

  • Run from inside a git checkout.
  • Bun is only required when using --nodeModules=separate.

Notes

  • Add worktrees/ to your repo's .gitignore so worktrees don't pollute git status.
  • When you change package.json or the lockfile, switch to --nodeModules=separate (or remove the node_modules symlink and bun install) to pick up the new state.

Local development (Dentology monorepo)

From the monorepo root:

bun run wt --help

This runs the source directly via Bun without needing a build.

Publishing a release

One-time setup:

  • npm whoami (or npm login) — you must be logged in.
  • The @dentology org must exist on npmjs.com and you must be a member with publish rights. (The package already has "publishConfig": { "access": "public" }, so you don't need --access public.)

For each release, from the monorepo root:

# 1. Bump the version
( cd tools/git-worktree && npm version patch )   # or: minor / major

# 2. Build + publish in one go
bun run wt:publish

bun run wt:publish runs the Nx target git-worktree:publish, which depends on build (so it always rebuilds first) and runs npm publish from dist/tools/git-worktree. You can also invoke it directly:

nx run git-worktree:publish

Optional preview before publishing:

( cd dist/tools/git-worktree && npm pack --dry-run )

Why publish from dist/tools/git-worktree? Nx's @nx/js:tsc build copies the package.json and README.md there and emits the compiled src/cli.js (with the shebang). Publishing from the source folder would ship TypeScript that nobody can run — the Nx target handles this for you.

Verify:

npm view @dentology/git-worktree
npx @dentology/git-worktree --help

Notes:

  • npm rejects re-publishing the same version — bump first, or use npm publish --tag next for a pre-release without moving latest.
  • If your account requires 2FA, npm publish will prompt for an OTP (or pass --otp 123456).
  • Quick rollback within ~72h: npm unpublish @dentology/git-worktree@<version>. After that window, only npm deprecate is allowed.