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

@rexipt/ai-employee

v0.2.0

Published

AI-powered business intelligence CLI for ecommerce operators

Readme

@rexipt/ai-employee

AI-powered business intelligence CLI for ecommerce operators.

📖 First time setup? See the Complete Setup Guide for detailed instructions, especially for Shopify integration which requires specific configuration steps.

Install (Recommended)

This project assumes:

  • Node.js 20+
  • npm 11+

Install Node.js and npm from:

  • https://nodejs.org
npm i -g @rexipt/ai-employee

Binary Names

The package exposes two binaries:

  • rexipt-ai
  • rai (short alias)

Examples:

# after global install
rexipt-ai d
rexipt-ai ra

# short alias
rai d
rai ra

Advanced (Optional)

# run without global install
npx @rexipt/ai-employee <command>

Developer Setup (Local Repo)

npm install
# shorthand also works:
npm i
npm run build

Quickstart

# 1) Initialize config
rexipt-ai init

# 2) Connect Shopify (recommended OAuth code flow)
rexipt-ai shopify oauth-connect

# 3) Run diagnostics
rexipt-ai doctor

# 4) Run all enabled skills once
rexipt-ai run-all

# 5) Start continuous scheduler in daemon mode
rexipt-ai start --daemon

# 6) Inspect runtime and logs
rexipt-ai status
rexipt-ai logs --limit 20

# 7) Stop daemon
rexipt-ai stop

⚠️ Shopify Setup - Important Steps

Before shopify oauth-connect will work, you must configure your Shopify app:

  1. Create app in Shopify Dev Dashboard (not legacy custom apps)
  2. Add redirect URL: http://127.0.0.1:3456/callback
  3. Enable Protected Customer Data Access - required for order/customer data
  4. Release and install the app to your store

Without step 3, you'll get 403: Protected customer data errors.

👉 See SETUP_GUIDE.md for detailed step-by-step instructions.

AI in This Release

  • dailyBriefing: multi-source performance synthesis (Shopify, Ads, Klaviyo) with validation.
  • anomalyDetection: baseline-aware anomaly detection with severity + recommended actions.
  • customerSegmentation: high-value / at-risk / churned segment generation.
  • action queue + approval flow for human-in-the-loop decisions.

Secrets and Configuration

Run init first. It auto-creates the config file at:

~/.rexipt/ai-employee/config.json

Users do not need to create this file manually.

Recommended enterprise workflow:

  • Run init once to generate baseline config.
  • After that, manage secrets in .env.local (preferred) instead of editing encrypted values in config.json.
  • Use rexipt-ai config --validate after changes.
  • For Shopify, preferred setup is rexipt-ai shopify oauth-connect (token generated then encrypted/stored).

If you must reset broken/rotated encrypted values, use:

rexipt-ai config --list-secrets
rexipt-ai config --reset-secret llm.apiKey integrations.shopify.accessToken
rexipt-ai config set-secret llm.apiKey LLM_API_KEY

Or with npm aliases:

npm run cfg:list-secrets
npm run cfg:list-keys
npm run cfg:set -- integrations.shopify.storeUrl your-store.myshopify.com
npm run cfg:reset-secret -- llm.apiKey
npm run cfg:set-secret -- llm.apiKey LLM_API_KEY

storeUrl is not in secret paths because it is not encrypted. Set it with:

rexipt-ai config set integrations.shopify.storeUrl your-store.myshopify.com

List all editable keys (secret keys are marked):

rexipt-ai config --list-keys

Set an entire object (JSON value):

rexipt-ai config set integrations.shopify '{"enabled":true,"storeUrl":"your-store.myshopify.com","accessToken":"","apiVersion":"2024-01"}'

Overwriting with init is also valid, but it re-runs the full setup flow:

rexipt-ai init
# choose overwrite = yes

Supported secret paths:

  • llm.apiKey
  • integrations.shopify.accessToken
  • integrations.googleAds.customerId
  • integrations.googleAds.loginCustomerId
  • integrations.googleAds.developerToken
  • integrations.googleAds.accessToken
  • integrations.googleAds.refreshToken
  • integrations.googleAds.clientId
  • integrations.googleAds.clientSecret
  • integrations.metaAds.adAccountId
  • integrations.metaAds.accessToken
  • integrations.klaviyo.apiKey
  • integrations.tiktokAds.advertiserId
  • integrations.tiktokAds.accessToken
  • integrations.tiktokShop.appKey
  • integrations.tiktokShop.appSecret
  • integrations.tiktokShop.accessToken
  • integrations.tiktokShop.shopId
  • notifications.slack.webhookUrl
  • notifications.telegram.botToken
  • notifications.telegram.chatId

Example:

{
  "integrations": {
    "shopify": {
      "enabled": true,
      "storeUrl": "your-store.myshopify.com",
      "accessToken": "shpat_xxx",
      "apiVersion": "2024-01"
    }
  }
}

Sensitive values are encrypted at rest when config is saved.

Main Commands

  • init (i) - initialize config
  • doctor (d) - configuration and runtime diagnostics
  • start (s) - run scheduler (--once or --daemon)
  • stop (x) - stop daemon process
  • run (r) - run one skill: run <skillId>
  • run-all (ra) - run all enabled skills once
  • logs (l) - query run history
  • backfill (bf) - compute/update baseline metrics
  • shopify oauth-connect (shop oc) - generate token via browser OAuth code flow (recommended)
  • shopify connect (shop c) - generate short-lived token from client credentials
  • actions (a) - action queue workflow (list/approve/reject)
  • status (st) - overall status

Short Command Examples

rexipt-ai r dailyBriefing
rexipt-ai ra
rexipt-ai d
rexipt-ai l --limit 5
rexipt-ai a ls --status pending

Environment Variables

You can override config values with environment variables from:

  • .env
  • .env.local (loaded after .env, so it overrides .env)

In the directory where you run the project.

If the same setting exists in both config.json and env, env wins at runtime.

Examples:

  • REXIPT_ORG_NAME
  • LLM_PROVIDER, LLM_MODEL, LLM_BASE_URL, LLM_API_KEY
  • SHOPIFY_ENABLED, SHOPIFY_STORE_URL, SHOPIFY_ACCESS_TOKEN
  • GOOGLE_ADS_ENABLED, GOOGLE_ADS_CUSTOMER_ID, GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_ACCESS_TOKEN, GOOGLE_ADS_REFRESH_TOKEN
  • META_ADS_ENABLED, META_ADS_ACCOUNT_ID, META_ADS_ACCESS_TOKEN
  • KLAVIYO_ENABLED, KLAVIYO_API_KEY
  • SLACK_ENABLED, SLACK_WEBHOOK_URL, SLACK_CHANNEL, SLACK_ALERTS_CHANNEL

Example:

# .env.local
SHOPIFY_ENABLED=true
SHOPIFY_STORE_URL=your-store.myshopify.com
SHOPIFY_ACCESS_TOKEN=shpat_xxx

Release

npm run release:prepare
npm run release:dry-run
# npm run release:publish

See RELEASE_CHECKLIST.md for full release steps.