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

pi-commit-split

v0.1.8

Published

Adaptive topic-based commit and push workflow for Pi

Readme

pi-commit-split

Interactive topic-based commit workflow for Pi.

The extension groups Git changes, asks the active LLM for concise Conventional Commit messages, and lets you choose which groups to commit from a TUI.

Features

  • Adaptive topic grouping for any Git repository
  • LLM-generated commit subject and short body
  • Commit-message language follows recent commits and user context
  • Conservative default selection: pre-existing and tooling changes start unchecked
  • Shows each topic's changed files, file status, and added/deleted line counts
  • Automatically condenses long file lists; press v to expand or collapse the current topic
  • Explicit file staging; never uses git add .
  • Separate commit or commit-and-push actions
  • Refuses to start when the Git index already contains staged changes
  • Optional natural-language instructions for commit message language and style
  • Conventional Commit types: feat, fix, refactor, docs, test, chore, perf, build, and ci

TUI preview

The workflow opens a bordered terminal selector. Topics that look unrelated or pre-existing start unchecked, while current task changes are selected conservatively. File lists are expanded by default; lists longer than four files are condensed until expanded with v:

╭─ Split commit — Select topics ───────────────────────────────────────────────╮
│                                                                              │
│ ❯ ☑ src changes · 3 files · +42 −8                                          │
│    feat(editor): add markdown preview                                       │
│    M src/editor.ts                                                          │
│    A src/preview.ts                                                         │
│    M tests/editor.test.ts                                                   │
│ ──────────────────────────────────────────────────────────────────────────  │
│   ☐ docs changes · 6 files · +18 −2                                         │
│    docs(readme): explain the preview workflow                               │
│    M docs/setup.md                                                          │
│    M README.md                                                              │
│    M docs/commands.md                                                       │
│    M docs/examples.md                                                       │
│    … 2 more · press v to expand                                             │
│                                                                              │
│ ↑↓ topic · Space toggle · a all · n none · v files · Enter/c commit · p push│
│ Esc cancel                                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯

Commit messages are generated from the diff and adapt to the repository's existing language and the user's context. The interface remains in English.

Commands

/commit-split [optional natural-language instruction]   Select topics and create separate commits

Examples:
/commit-split
/commit-split dalam bahasa Indonesia
/commit-split gunakan subject maksimal 60 karakter

Shortcuts:

Ctrl+Shift+C   Select topics and commit

Inside the TUI:

Space          Toggle the current topic
A              Select all topics
N              Select no topics
v              Expand/collapse the current topic's file list
Enter / C      Commit selected topics
P              Commit selected topics and push
Esc            Cancel

Install

From npm:

pi install npm:pi-commit-split

From GitHub:

pi install git:github.com/ismailokta/[email protected]

Try locally without installing:

pi -e ./extensions/commit-workflow.ts

The extension uses the active Pi model to generate commit messages. An optional instruction affects commit-message language and style only; it cannot run Git commands, change files, bypass validation, or trigger a push. Topic grouping remains based on the repository's file structure. Review every selected topic and message before committing or pushing.