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

@my-jenie/ai-tools

v0.2.1

Published

Skill library to make code based on user stories or bugs specs

Readme

Jenie AI tools

=============================
       _            _      
      | |          (_)     
      | | ___ _ __  _  ___ 
  _   | |/ _ \ '_ \| |/ _ \
 | |__| |  __/ | | | |  __/
  \____/ \___|_| |_|_|\___|

=============================

jenie is a proto skill library focused to work with small / medium development tasks, considering:

  • Identify available tasks (user stories or bugs) and validate consistency using INVEST and 3C practices
  • Implement validated tasks using TDD practices

Keep it simple, use jenie in any case you need to implement a small / medium feature or fix a bug

Run jenie with no arguments at any time to see the command list.

Available skills

  • prepare-for-wishes — loads global guidelines, analyzes the project's tech stack and conventions, then asks what to do
  • list-tasks — paginates available tasks with descriptions
  • analyze-task — validates a task against INVEST + 3C, checks correctness, assesses doability
  • implement-task — verifies repo + validation recency, creates a feature branch, runs TDD, implements, lints, commits

About Jenie's conscience

Like I said, jenie's main goal is to work with not huge development taks, but is designed to follow Senior developer practices based on:

  • Precision — respond to exactly what's asked: one clarifying question when the request is ambiguous, no unsolicited alternatives, no unrequested features, no speculative execution.
  • Efficiency — cap context usage: ls/grep before reading, skip files already in context, batch independent reads/writes/commits, keep output concise.
  • Safety — verify before acting: never assume a file or dependency exists, cite architectural claims as file:line, ask explicit confirmation before destructive commands (rm -rf, force-push) or new dependencies, never commit secrets.
  • Formatting — no preamble or filler, structured markdown output, every response tagged with [Active Agent: Role | Task: #ID].

When these conflict, priority is safety > precision > formatting > efficiency.

Supported languages

prepare-for-wishes recognizes a project's tech stack by looking for these build/manifest files:

  • JavaScript / TypeScriptpackage.json
  • RustCargo.toml
  • Pythonpyproject.toml
  • RubyGemfile
  • Gogo.mod
  • C / C++CMakeLists.txt

Any other stack still gets a basic analysis, but without dedicated framework/tooling detection.

If the developer already has codebase-memory-mcp configured as an MCP server, prepare-for-wishes prefers it automatically for a faster, richer analysis (158 languages, call graphs, hotspots) — this is optional and not a new requirement; the manifest-based detection above is the fallback when it isn't present.

Requirements

  • Node.js >= 18
  • OpenCode and/or Claude Code — the Claude Code installer shells out to the claude CLI, so it must be on your PATH
  • Local folder for the tasks to be implemented, by default, jenie will look for the docs folder

Installation

npm install -g @my-jenie/ai-tools

Project structure

<project_root>/
├── docs/
│   ├── user-stories/           # user story task files
│   └── bugs/                   # bug task files
└── .jenie/
    ├── technical-context.md        # generated by prepare-for-wishes
    └── .validation-registry.json   # analyze-task validation results

OpenCode

cd my-project
jenie install --opencode    # repository level (current directory)

OpenCode installs are always repository level — there's no --global option, since OpenCode looks for a config file per project.

The installer:

  1. Finds the nearest opencode.json (or .jsonc), walking up from the current directory — creates one when none exists, and converts an existing .jsonc to .json.
  2. Registers the plugin path in the config's plugin array (no-op if already present).

Restart OpenCode afterwards — plugins are loaded at startup.

How the commands appear: /jenie (entry point, defaults to prepare-for-wishes), /jenie prepare-for-wishes, /jenie list-tasks, /jenie analyze-task, /jenie implement-task.

Claude Code

cd my-project
jenie install --claude-code             # repository level (current directory)
jenie install --claude-code --global    # global (user scope, all projects)

Without --global, the installer works at repository level: it writes extraKnownMarketplaces and enabledPlugins into ./.claude/settings.json. Commit that file and teammates get prompted to install the plugin automatically when they open the project. With --global, the plugin is installed at user scope for all projects and the current directory doesn't matter.

The installer:

  1. Ensures .claude-plugin/plugin.json and .claude-plugin/marketplace.json exist in the package — created if missing; an existing marketplace.json gets the jenie entry merged in without touching other entries.
  2. Registers the package directory as a plugin marketplace and installs jenie@ai-tools through the claude CLI.
  3. Removes any legacy .claude/skills/jenie install left by older versions (only after the plugin install succeeds).

Restart Claude Code afterwards (exit and run claude again) — plugins are discovered at startup.

How the commands appear: the command picker lists skills by their short name with the plugin as a label — /prepare-for-wishes (jenie), /list-tasks (jenie), /analyze-task (jenie), /implement-task (jenie). The namespaced form /jenie:<skill-name> also works when typed, but Claude Code only displays it when another plugin defines a skill with the same name.

Alternatively, without npm or the jenie CLI (requires the .claude-plugin/ manifests to be committed to the repo):

claude plugin marketplace add jersson/jenie-ai-tools
claude plugin install jenie@ai-tools

Uninstall

jenie uninstall --opencode                # repository level (current directory)
jenie uninstall --claude-code             # repository level (current directory)
jenie uninstall --claude-code --global    # global (user scope)

The Claude Code variant uninstalls the plugin, removes the marketplace registration, and cleans up legacy installs.

Version

jenie --version    # or jenie -v