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

@cspeach/cli

v1.1.20

Published

CSPeach — AI-assisted ABAP development CLI. Direct SAP access, 34 skills, safety gates.

Readme

CSPeach

AI-assisted ABAP development CLI. 35 skills, direct SAP access, safety gates the model cannot bypass.

Install

npm install -g @cspeach/cli

Requires Node.js 20+. After install:

cspeach login         # opens browser, authorizes this machine
cspeach config add-sap
cspeach               # interactive REPL

What it does

CSPeach runs an AI consultant against your own SAP. Pick a skill (or type a prompt — the classifier picks one for you):

/abap-spec-gap        find missing questions before any code is written
/abap-design          object list + dependency DAG
/abap-estimate        component-level hours with optimistic / realistic /
                      pessimistic ranges
/abap-cca             estate-wide custom-code analysis for S/4HANA
/abap-upgrade-scan    baseline scan against the readiness variant
/abap-upgrade-fix     interactive fix loop with per-object approval
/abap-incident        short dump → fix → verify → handover
cspeach --help        full skill list (34 total)

Every turn runs locally on your machine. SAP source and SAP data flow through api.cspeach.dev to the LLM. The proxy logs request metadata (skill, model, token counts, latency) for billing; the message body is forwarded to Anthropic and not stored on the proxy. SAP credentials never leave your machine.

Safety

  • Snapshot gate — every SAP write auto-snapshots first
  • SAP approval gate — SAP-write and transport tools (sap_set_source, sap_create_object, sap_delete_object, sap_update_method, sap_activate, sap_transport_*) require a single-use JWT bound to (object, operation); the model sees a plan, you approve each change
  • Optional tools default OFF — filesystem, shell, web, and subagent tools are invisible to the model unless you set CSPEACH_TOOL_<NAME>=on in the environment
  • Batch-write interrupt — any second mutating call in a single turn (Rule 8, any tool category) pauses for an explicit yes/no before it runs
  • Verify gate — every SAP write is syntax-checked; activation blocked on errors
  • Transport discipline — all SAP writes land in your session transport; $TMP is opt-in

Ten Forge Rules are non-negotiable. Full philosophy in the CSPeach Principles preamble shown to the model every turn.

Cost transparency (since 0.7.0)

Every turn shows what it cost. After each model call you see:

session abc123 │ S4H │ /abap-explain │ 2 turns │ 487 tok │ $0.07 │ session: $0.18 │ 3.6s
  • tok = tokens billed this turn (input + output + cache)
  • $ = this turn's cost
  • session: = cumulative across the open session
  • /cost shows a per-skill / per-tool breakdown
  • /compact summarises older turns when context gets large (cuts subsequent-turn cost ~80-90%)
  • auto_compact in ~/.cspeach/config.toml fires /compact automatically over a configurable threshold

On /exit you get a session summary + the cspeach --resume <id> command in plain text so you can pick up where you left off.

UI modes

An interactive terminal gets the standard display (the Ink frame). /ui auto (the default) picks it for you; /ui ink asks for it explicitly. Both save to ~/.cspeach/config.toml under [ui] and apply after a relaunch.

One-shot runs (cspeach "<prompt>"), piped input or output, and CI get plain line output automatically.

The classic display is retiring. A saved ui.rendering = "classic" is no longer used: the next interactive start switches it to auto and says so once. If you need classic for one launch, set the environment variable CSPEACH_UI=classic before starting cspeach.

Configuration

~/.cspeach/config.toml is created on first cspeach config add-sap:

proxy_url     = "https://api.cspeach.dev"
default_model = "claude-opus-4-7"

[sap.S4H-DEV]
host     = "sap-dev.company.com"
port     = 44300
client   = "100"
useSsl   = true
username = "S.LAEEQ"

SAP passwords are stored in your OS keychain.

Common commands

cspeach login                    sign in to api.cspeach.dev
cspeach whoami                   show signed-in identity + plan/trial
cspeach logout                   clear local auth
cspeach config add-sap           add a SAP system
cspeach doctor                   diagnose install + connectivity
cspeach --resume                 resume a prior session
cspeach --upgrade                pull the latest CLI release
cspeach --version

Troubleshooting

If cspeach doctor fails:

  • auth — run cspeach login again
  • keychain — Windows Credential Manager / libsecret missing; CSPeach falls back to per-session prompts, slower but functional
  • sap — host unreachable; check VPN + the host/port in config

If the REPL hangs on first prompt, check https://api.cspeach.dev/health.

Working on team projects (contributors only)

cspeach team … and the /team/ page are built on two sibling packages in this repo:

  • register-core/ — the merge: records in, one picture out
  • sap-client/ — the SAP calls, including atcRunSet

The CLI depends on them as file: links, and pnpm copies their dist/ into node_modules at install time. Neither dist/ is in git. So a fresh checkout, or any checkout where somebody changed one of them and did not rebuild, runs the CLI against whatever was copied last — usually a TypeError: … is not a function in the middle of a cspeach team refresh.

src/register/__tests__/linked-packages.test.ts is the tripwire. When it fails with "The linked packages are out of date", run the recipe below.

The recipe

Git Bash:

cd sap-client     && npm run build
cd ../register-core && ../cspeach-cli/node_modules/.bin/tsc
cd ../cspeach-cli && pnpm install

Windows (PowerShell or cmd):

cd sap-client
npm run build
cd ..\register-core
..\cspeach-cli\node_modules\.bin\tsc.CMD
cd ..\cspeach-cli
pnpm install

Then check the link really took:

grep -c ruleIdFromAtc cspeach-cli/node_modules/@cspeach/register-core/dist/rules.js   # ≥ 1
grep -c atcRunSet     cspeach-cli/node_modules/@cspeach/sap-client/dist/adt-client.js # ≥ 1

If either prints 0, run pnpm install --force in cspeach-cli/.

Notes:

  • npm run build does not work in register-core/ in this checkout — its devDependencies are not installed. Build it with the CLI's own compiler, as above. sap-client/ builds normally.
  • dist/index.js is only a re-export barrel, so grep a real module (dist/rules.js, dist/register.js) when you check a new name landed.
  • pnpm install rewrites one path separator in cspeach-cli/pnpm-lock.yaml. That is noise. Restore it before you commit: git checkout -- cspeach-cli/pnpm-lock.yaml.
  • The viewer reads register-core from SOURCE (a Vite alias) and needs none of this.
  • Both packages are unpublished. prepublishOnly blocks npm publish of the CLI while either dependency is still a file: link; they have to be published and the versions pinned before a CLI release.

Links

License

Proprietary. Copyright (c) 2026 Cremencing Solutions. All rights reserved. Free to use under your active CSPeach plan; not free to redistribute, fork, or sublicense. Commercial / OEM licensing: [email protected].