
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
AI-powered Pull Request descriptions with one command
LLMPR generates professional PR descriptions—and now structured code reviews—from your Git changes using OpenAI's language models.
You can install the package globally using npm:
npm install -g llmpr
Or, to install from source:
git clone https://github.com/yourusername/llmpr.git
cd llmpr
npm install
npm run build
npm install -g .
You need to have an OpenAI API key. You can get one from OpenAI's website.
Set your API key as an environment variable:
export OPENAI_API_KEY=your_api_key
Or add it to your shell profile for persistence (e.g., ~/.bash_profile, ~/.zshrc):
echo 'export OPENAI_API_KEY=your_api_key' >> ~/.zshrc
source ~/.zshrc
Set your OpenAI API key:
export OPENAI_API_KEY=your_api_key
Run in your Git repository:
llmpr
llmpr [options]
| Option | Description |
|---|---|
-b, --base <branch> | Base branch to compare against (default: "main") |
-m, --model <model> | OpenAI model to use (default: "gpt-5") |
-o, --output <file> | Save PR description to file |
-r, --review | Generate a structured code review instead of a PR description |
-v, --verbose | Show detailed logs and API responses |
-s, --style <style> | PR style: "concise", "standard", or "verbose" (default: "standard") |
-l, --max-length <words> | Maximum length in words (default: 500) |
-c, --create-pr | Create a GitHub PR after generating description (interactive) |
-h, --help | Display help |
-V, --version | Display version |
# Generate against develop branch
llmpr --base develop
# Save to file
llmpr -o pr.md
# Concise description
llmpr --style concise
# Generate a structured code review
llmpr -r
# Save the review to a file
llmpr -r -o review.md
# Limit length to 300 words
llmpr --max-length 300
# Use specific OpenAI model
llmpr --model gpt-4-turbo
# Generate description and create PR interactively
llmpr --create-pr
# Create PR with custom base branch
llmpr --base develop --create-pr
# Combine options for complete workflow
llmpr --base develop --style verbose --create-pr
The --create-pr flag enables an interactive workflow that:
gh) must be installed and authenticated
brew install gh (macOS) or visit https://cli.github.com/gh auth loginllmpr without --create-pr to generate the description and create the PR manually$ llmpr --create-pr
Starting LLMPR...
✔ Diff against main successfully retrieved
✔ Repository structure analyzed
✔ PR description generated in 3.45s after 1 round
─────────────────────────────────────────────────────
PR Creation Flow
ℹ Current branch: feature/new-feature
─────────────────────────────────────────────────────
Generated Description Preview
Add interactive PR creation feature with gh CLI...
─────────────────────────────────────────────────────
? PR Title: › Add interactive PR creation with GitHub CLI
? Edit the generated description? › No
? Base branch: › main
? Create as draft PR? › No
? Create pull request? › Yes
✔ Pull request created successfully!
─────────────────────────────────────────────────────
✔ Pull Request Created!
─────────────────────────────────────────────────────
┌─────────────────────── PR Details ────────────────────────┐
│ │
│ Title: Add interactive PR creation with GitHub CLI │
│ │
│ Base Branch: main │
│ Status: Ready for Review │
│ │
│ URL: https://github.com/user/repo/pull/123 │
│ │
└────────────────────────────────────────────────────────────┘
ℹ Open in browser: https://github.com/user/repo/pull/123
# If the branch is not yet pushed
✖ Failed to create pull request
Current branch must be pushed before creating a PR.
? Push feature/new-feature to origin now? › Yes
✔ Branch feature/new-feature pushed to origin
✔ Pull request created successfully!
LLMPR can automatically generate PR descriptions when PRs are created or on demand.
OPENAI_API_KEY.github/workflows/pr-description.yml:name: Generate PR Description
on:
pull_request:
types: [opened]
jobs:
generate-pr-description:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install llmpr
run: npm install -g llmpr
- name: Generate PR description
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
llmpr --base ${{ github.event.pull_request.base.ref }} --output pr_description.md --style verbose
- name: Update PR description
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
const prDescription = fs.readFileSync('pr_description.md', 'utf8');
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
body: prDescription
});
Add a comment-based trigger to generate PR descriptions on demand:
.github/workflows/comment-trigger.yml/generate-pr-descriptionMIT
FAQs
CLI tool for generating AI-powered PR descriptions and code reviews
We found that llmpr demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.