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

abap-kit

v1.2.0

Published

ABAP development CLI for scaffolding and validating ABAP projects, with an AI-assisted workflow

Readme

abap-kit

A lightweight CLI tool for scaffolding ABAP development projects quickly — and for validating ABAP code generated by AI assistants.

Features

  • Creates a complete ABAP project structure in seconds
  • Generates starter ABAP objects in abapGit file format (deployable to a real SAP system): a program, a sample interface and a class implementing it, with ABAP Unit tests
  • Sets up abaplint and transpiler configuration with the full open-abap library set
  • Validates a single ABAP object end-to-end (abap-kit test): lint, then transpile + ABAP Unit
  • Prints an AI-friendly project snapshot (abap-kit context) and machine-readable object lists (abap-kit list --json)
  • Cross-platform npm run exec / npm run unit / npm test scripts (Windows, macOS, Linux)
  • Adds VS Code recommendations for ABAP development
  • Creates a ready-to-use README and project skeleton
  • Self-updates via abap-kit update

Installation

Install globally with npm:

npm install -g abap-kit

Usage

Create a new project:

abap-kit create my-abap-project

Skip dependency installation (run npm install later), overwrite an existing directory, or scaffold without the sample ABAP objects:

abap-kit create my-abap-project --no-install
abap-kit create my-abap-project --force
abap-kit create my-abap-project --empty

--empty skips the sample program/interface/class — ideal when you are starting from a blank src/ and generating all ABAP code (for example with an AI assistant). The harness (configs, scripts, src/) is still scaffolded.

Then run:

cd my-abap-project
npm run exec

List objects, optionally filtered by type (the type is the raw abapGit file extension — clas, intf, prog, fugr, dtel, doma, ...), or as machine-readable JSON:

abap-kit list
abap-kit list --type clas
abap-kit list --json

Validate a single ABAP object — fast structural pre-checks, a targeted abaplint pass, then the full transpile + ABAP Unit pipeline:

abap-kit test zcl_demo
abap-kit test zcl_demo --lint-only

Print an AI-friendly project snapshot (dependencies, transpiler config, object inventory with test status, npm scripts):

abap-kit context
abap-kit context --json

Keep the @abaplint npm dependencies and transpiler libs up to date:

abap-kit sync
abap-kit sync --no-install

Commands

  • abap-kit create <project-name> – Create a new project (--force, --no-install, --empty options)

  • abap-kit init – Scaffold a project in the current directory (--force, --no-install, --empty options)

  • abap-kit list – List ABAP objects in src/ (--type <ext> filters by the raw file extension, e.g. clas, dtel; --json prints a {name, type, hasTest} array)

  • abap-kit test <object> – Validate a single ABAP object: a targeted abaplint pass, then the full transpile + ABAP Unit pipeline (--lint-only stops before transpiling)

  • abap-kit context – Print an AI-friendly project snapshot: dependencies, transpiler config, objects with test status, npm scripts (--json for structured output)

  • abap-kit sync – Update @abaplint dependencies and transpiler libs (--no-install skips npm install)

  • abap-kit clean – Run abap-cleaner on src/. The binary path is required via --bin <path> or the ABAP_CLEANER_PATH environment variable. The --release argument is passed automatically from the numeric syntax.version in abaplint.json (e.g. v752--release 752); if no numeric release is found, the cleaner runs with its default version:

    abap-kit clean --bin /path/to/abap-cleaner
    ABAP_CLEANER_PATH=/path/to/abap-cleaner abap-kit clean
  • abap-kit ci – Generate a GitHub Actions workflow in the current project

  • abap-kit update – Update abap-kit to the latest version (npm install -g abap-kit@latest)

  • abap-kit help <command> – Show detailed help for a specific command

  • abap-kit --help – Show help

  • abap-kit --version – Show installed version

Project Structure

The generated project includes:

  • src/ for ABAP source files in abapGit file format (sample program + interface + class with unit tests)
  • .abapgit.xml for abapGit repository configuration (ready to link to a SAP system)
  • .gitmodules for git submodule tracking of open-abap libraries
  • deps/ for git submodule dependencies
  • scripts/clean.mjs output-purge helper
  • scripts/setup.mjs for runtime setup
  • scripts/run.mjs cross-platform program runner
  • abaplint-transpiler.json for transpilation config
  • abaplint.json for linting config
  • .vscode/extensions.json for editor recommendations

AI-assisted development

abap-kit is designed to close the loop when an AI assistant writes ABAP for you:

  1. Give the assistant context — paste the output of abap-kit context so it knows the project's objects, test status and configuration.
  2. Let it generate files — AI-produced ABAP goes straight into src/ in abapGit file format. Follow the abapGit conventions:
    • main source in <name>.<type>.abap (e.g. zcl_demo.clas.abap)
    • test classes in a separate <name>.clas.testclasses.abap file — the transpiler rejects FOR TESTING classes in the main source file (Unexpected CLASSDEFINITION)
    • class/interface metadata in <name>.clas.xml / <name>.intf.xml
  3. Validate fastabap-kit test <object> --lint-only runs a targeted abaplint pass on the object's files without the heavy transpile. Structural problems (test class in the wrong file, missing XML) are abaplint's job, and it reports them directly.
  4. Run the real testsabap-kit test <object> transpiles the project with the open-abap libraries and executes the ABAP Unit tests for real (this clones the open-abap libs, so it is slower).

The same pipeline is what npm run unit runs for the whole project, and what the generated CI workflow runs on every push.

CI

When you run the CLI with the CI option, it generates a GitHub Actions workflow for the created project.

Example:

abap-kit ci

This creates a workflow file at:

  • .github/workflows/lint.yml

The generated workflow runs on pushes and pull requests and executes:

  • npm ci
  • npm test (lint + transpiled unit tests)

License

MIT