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

software-engineer

v0.1.25

Published

CLI that automates the full dev workflow with Codex by default and Claude optionally

Readme

software-engineer

A CLI tool that automates the software development workflow using Codex by default, with Claude available via --agent claude. It runs an 8-step pipeline to implement features, simplify code, review, ensure quality, test, commit, and update changelogs.

The Brain

Installation

npm install -g software-engineer

Prerequisites

  • Node.js >= 18.0.0
  • Codex CLI installed and configured
  • Optional: Claude CLI installed and configured for --agent claude

Recommended Workflow

For best results, follow this workflow:

  1. Plan with Claude: Start a Claude session and use plan mode to design what needs to be done

    • Discuss requirements with Claude
    • Iterate and refine the plan until it's complete
    • Claude will generate a plan file (usually a .md file)
  2. Execute with software-engineer: Once your plan is finalized, run:

    sf "implement the plan mentioned in /path/to/plan.md"
  3. Wait for completion: The tool will automatically execute the entire pipeline and implement your plan

This approach gives you the best of both worlds:

  • Interactive planning with Claude to ensure the approach is correct
  • Automated execution with comprehensive quality checks
  • Seamless operation - Codex runs non-interactively with workspace-write sandboxing by default

Usage

sf "<requirement>"

Examples

# Recommended: Use with a plan file
sf "implement the plan mentioned in ./docs/feature-plan.md"

# Basic usage with direct requirement
sf "add user authentication with JWT"

# Custom review iterations
sf --reviews 3 "refactor database layer"

# Dry run to preview commands
sf --dry-run "add dark mode toggle"

# Use Claude instead of Codex
sf --agent claude "add dark mode toggle"

# Skip tests and push
sf --skip-tests --skip-push "update README"

# Log output to file
sf --log pipeline.log "implement caching layer"

Agent And Permission Management

By default, software-engineer runs Codex:

codex exec --sandbox workspace-write --ask-for-approval never "<prompt>"

Claude remains available:

sf --agent claude "implement feature"
SF_AGENT=claude sf "implement feature"

Claude Allowed Tools

--allowedTools and SF_ALLOWED_TOOLS apply only to Claude. Codex uses sandbox and approval flags instead.

# Allow additional tools
sf --agent claude --allowedTools "Edit,Read,Write,Bash,Grep" "add new feature"

# Via environment variable
SF_AGENT=claude SF_ALLOWED_TOOLS="Edit,Read,Write,Bash" sf "implement caching"

# Restrict to read-only operations
sf --agent claude --allowedTools "Read,Grep,Glob" "analyze the codebase"

Skipping Sandboxes And Permissions (Use with Caution)

For fully autonomous operation in trusted environments (like CI/CD), you can skip all permission checks:

sf --dangerously-skip-permissions "implement feature"

For Codex this maps to codex exec --dangerously-bypass-approvals-and-sandbox. For Claude this maps to claude --dangerously-skip-permissions.

Warning: This bypasses permission prompts and/or sandboxing. Only use in isolated, secure environments.

Run Individual Stages

You can run specific pipeline stages directly without executing the full pipeline. This is useful for running a quick review or cleanup on code you've already written.

# Run only the code simplification step
sf --simplify

# Run only the code review step
sf --review

# Run only the SOLID & clean code check
sf --clean-code

# Run only the testing step
sf --test

# Run only the commit step
sf --commit

# Run only the implementation step (requires a requirement)
sf --implement "add error handling to the API"

# Combine multiple stages (executed in pipeline order)
sf --simplify --review --clean-code

# Works with other options
sf --review -r 3         # 3 review iterations
sf --review --dry-run    # Preview without executing

Note: All stages except --implement work without a requirement — they operate on the current state of your code. You can combine multiple stage flags and they will run in pipeline order.

Options

| Option | Description | |--------|-------------| | -d, --dry-run | Print commands without executing | | -r, --reviews <n> | Number of review iterations (default: 2) | | -a, --adaptive | Enable adaptive step execution (AI decides which steps to skip) | | --skip-tests | Skip the testing step | | --skip-push | Commit but don't push to remote | | --skip-branch-management | Skip smart branch management | | --implementation-only | Run only: Implement → Review → SOLID | | --implement | Run only the implementation step | | --simplify | Run only the code simplification step | | --review | Run only the code review step | | --clean-code | Run only the SOLID & clean code step | | --test | Run only the testing step | | --commit | Run only the commit step | | --changelog | Run only the changelog step | | --log <file> | Log output to file | | --agent <agent> | Agent to run: codex or claude (default: codex) | | --allowedTools <tools> | Claude-only comma-separated list of allowed tools (default: "Edit,Read,Bash") | | --dangerously-skip-permissions | Bypass agent permission prompts/sandboxing | | -h, --help | Display help | | -V, --version | Display version |

Environment Variables

All options can be set via environment variables:

| Variable | Description | |----------|-------------| | SF_REVIEW_ITERATIONS | Number of review iterations | | SF_ADAPTIVE_EXECUTION | true/false for adaptive execution | | SF_DRY_RUN | true/false for dry run | | SF_LOG_FILE | Path to log file | | SF_SKIP_TESTS | true/false to skip tests | | SF_SKIP_PUSH | true/false to skip push | | SF_SKIP_BRANCH_MANAGEMENT | true/false to skip branch management | | SF_AGENT | codex or claude | | SF_ALLOWED_TOOLS | Claude-only comma-separated list of allowed tools (default: "Edit,Read,Bash") | | SF_DANGEROUSLY_SKIP_PERMISSIONS | true/false to bypass agent permission prompts/sandboxing |

Example:

SF_REVIEW_ITERATIONS=3 sf "add feature X"

Features

  • Automatic Agent Management: Codex runs by default; Claude remains available with --agent claude
  • Real-time Progress Visualization: See agent output and Claude tool calls with colorized output
    • 📖 File reads in cyan
    • ✍️ File writes in green
    • ✏️ File edits in yellow
    • ⚡ Command execution in magenta
    • 🔍 Code searches in blue
  • Smart Branch Management: Automatically creates feature branches based on requirement type
  • Adaptive Execution: AI-powered step optimization that skips unnecessary stages
  • Comprehensive Code Quality: Multi-stage review process ensuring best practices

Pipeline Steps

1. Smart Branch Management

Analyzes your requirement and automatically creates appropriate feature branches:

  • Detects change type (feature/fix/refactor/docs/chore)
  • Creates semantically named branches
  • Warns about potential conflicts

2. Implement

The selected agent understands your codebase and implements the requirement:

  • Analyzes project structure and patterns
  • Follows project conventions
  • Handles edge cases appropriately
  • Minimal, focused changes

3. Code Simplification

Refines the implementation for clarity, consistency, and maintainability:

  • Follows project standards (ES modules, explicit types)
  • Enhances clarity by avoiding nested ternaries
  • Removes redundant abstractions

4. Code Review (configurable iterations)

Reviews the implementation for:

  • Bugs (logic errors, null refs, race conditions)
  • Security issues (injection, auth problems)
  • Performance (N+1 queries, memory leaks)
  • Maintainability (clarity, naming, complexity)

5. SOLID & Clean Code

Ensures compliance with:

  • SOLID principles (SRP, OCP, LSP, ISP, DIP)
  • Clean code practices (naming, small functions, no magic numbers)

6. Testing

  • Runs existing tests
  • Adds new tests for changed code
  • Verifies coverage

7. Commit

Creates a well-formatted commit with:

  • Conventional commit format
  • Clear subject line
  • Detailed body explaining why and what

8. Changelog

Updates CHANGELOG.md following Keep a Changelog format.

License

MIT