@noice-tech/pi-commit

Commit, push, and open pull requests without interrupting your Pi session.

Packages

Package details

extension

Install @noice-tech/pi-commit from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@noice-tech/pi-commit
Package
@noice-tech/pi-commit
Version
2.0.0
Published
Aug 9, 2026
Downloads
81/mo · 25/wk
Author
samohovets
License
MIT
Types
extension
Size
64.4 KB
Dependencies
0 dependencies · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions/commit/index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@noice-tech/pi-commit

Commit, push, and open pull requests without interrupting your Pi session.

Install

Run this in the repository where you use Pi:

pi install -l npm:@noice-tech/pi-commit

Commit the resulting .pi/settings.json change to install it for collaborators too.

Use

/commit fix prevent hidden tracks from rendering
/commit --no-pr internal refresh test fixtures
/commit stacked feat add export presets
Command What it does
/commit [type] [summary] Commits and pushes, then creates or updates the pull request.
/commit --no-pr [type] [summary] Commits and pushes without reading or changing a pull request.
/commit stacked [type] [summary] Creates a child branch and PR above the current branch's open PR.

Add --pr to override no-PR configuration for one run. Leave out the type to choose it interactively, or use auto to let the worker infer it. A supplied summary is the primary wording source and is checked against the current diff.

/commit runs its worker on a separate branch of Pi's session tree, so commit and PR work does not consume your active coding context. You return to the same conversation, and the worker transcript remains available in the session tree.

Defaults

The built-in types are feat, fix, improve, and internal. Commits use type: description; PR titles add a package scope only in multi-package workspaces. PR bodies contain stable Summary, Changelog, and Verification sections. Internal changes receive no public changelog summary.

Configure

Configuration is optional. Create a JSON file in either location:

Scope Path Use it for
User ~/.pi/agent/pi-commit.json Defaults across your projects.
Project .pi/pi-commit.json Shared repository defaults in a trusted project.

Settings are merged individually: project values override user values, which override the built-in defaults. /commit flags such as --pr and --no-pr override configuration for one run. Project configuration is ignored until the project is trusted.

Pull request behavior

To push commits without creating or updating pull requests by default:

{
  "pullRequest": "never"
}

pullRequest accepts "auto" (the default) or "never".

Commit format

The default opinionated format uses feat, fix, improve, and internal. You can state it explicitly:

{
  "format": "opinionated"
}

Or replace it with project-specific change types:

{
  "format": {
    "changeTypes": [
      { "name": "docs", "description": "Documentation", "public": true },
      { "name": "chore", "description": "Maintenance", "public": false }
    ],
    "instructions": "Use type(scope): description."
  }
}

Each change type needs:

  • name — a unique lowercase identifier using letters, digits, and hyphens; auto and stacked are reserved
  • description — guidance shown when selecting and applying the type
  • public — whether the worker must write a standalone public changelog summary; non-public types write None.

instructions tells the worker how to format commit and PR titles. It cannot override the commit workflow or public-summary rules.

You may combine both settings in one file. Unknown fields, malformed JSON, and invalid values stop /commit before any Git or GitHub changes.

Requirements

Every commit mode pushes. PR mode can create or update a pull request. Stacked mode must start from the published top of a valid stack and can leave a branch, commit, push, or PR behind if a later step fails; the worker reports any partial state.

The worker sends relevant session and repository context to your selected model. Review your model provider's privacy settings before using it with sensitive code.