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

lena-ai

v1.0.0

Published

AI orchestrator for Claude Code. Routes tasks to specialists or coordinates multi-agent workflows.

Readme

LENA: AI Orchestrator

You know that moment when you ask your AI for something small and it suddenly wants a committee? Or you ask for something huge and one tired generalist tries to do it all? That's the friction this skill is for.

L.E.N.A. stands for Logical Execution & Navigation Assistant. LENA is a Claude Code skill that behaves more like a principal engineer who's picky about how work gets done. Before LENA touches your task, LENA sorts it: quick solo work stays quick. Anything that's really a project gets broken up and handed to specialists who actually fit the job.

You spend less energy babysitting the process. You still get answers you can trust.


What actually happens

LENA runs a simple gate before every request:

Single task + one domain + clear requirements
  → Direct execution (no agents, no ceremony)

Multiple steps OR multiple domains OR fuzzy requirements OR "build / refactor / fix the whole thing"
  → Orchestrated mode (split the work → route it → stitch it back together)

When it's just direct work

Straight paths don't need a parade. LENA handles them alone: fix the bug, write the helper, explain the file, sketch the test. Fast, quiet, done.

Examples: patch a known issue, draft a function, walk through code, generate tests.

When LENA brings in backup

Bigger work gets decomposed on purpose. Each chunk goes to whoever's built for that kind of problem. Context gets passed along so you're not re-explaining yourself three times.

Examples: auth end-to-end, a real refactor, chasing a production failure across layers.


Who LENA can call

LENA groups work into categories (architecture, implementation, debugging, and so on), then picks agents that fit. Most tasks only need a couple of lanes ... not the whole roster. The runtime may not expose every agent type; LENA maps to what's actually available.

| Category | What it's for | Agents (typical) | |----------|---------------|-------------------| | Architecture | System design, tradeoffs | architect-reviewer | | Implementation | Writing and changing code | backend-developer, frontend-developer, fullstack-developer, refactoring-specialist | | Debugging | Root cause analysis | debugger, error-detective | | Code Review | Quality and correctness | code-reviewer | | Performance | Optimization (incl. dev workflow / build loop) | dx-optimizer ... plus database agents when the problem is queries or schema | | Testing | Test generation | test-automator | | Security | Vulnerabilities, hardening, best practices | code-reviewer with an explicit security brief | | Database | Schema, queries, data layer | database-administrator, database-optimizer, postgres-pro | | DevOps | Deployment, infrastructure | cloud-architect, kubernetes-specialist | | Documentation | Explanations and docs | documentation-engineer, technical-writer | | ML / AI (when relevant) | LLM systems, RAG, tuning | llm-architect |


Adding custom agents

Same idea in both products: a markdown file, YAML frontmatter, body = specialist prompt. The stable id is usually the name field. What changes is the folder, precedence rules, and the exact parameter name on the delegate / task tool (Cursor often shows subagent_type; Claude Code matches on the agent name ... check what your build lists).

Cursor (subagent_type + .cursor/agents)

Where files live

| Scope | Path | Notes | |-------|------|--------| | Project | .cursor/agents/*.md | Current repo only; wins if the same name exists in user scope | | User | ~/.cursor/agents/*.md | Available in every project |

You don't put subagent_type in the file. That's the Task / Agent tool argument when something delegates. The string must match an agent Cursor actually registered.

---
name: my-api-hardening
description: Use for auth, input validation, and OWASP-style API reviews.
model: inherit
readonly: false
---

Your system prompt for this specialist goes here.

Nail the description ... that's how the parent decides to hand work off. Other keys (model, readonly, is_background, etc.) are in Cursor's docs.

Docs: Subagents (Cursor).

Claude Code (.claude/agents)

Where files live (higher priority wins when the same name collides)

| Scope | Path | Notes | |-------|------|--------| | Managed / org | Per your admin | Highest precedence if your org uses managed agents | | CLI (session only) | claude --agents '{ ... }' | JSON map of agents; same fields as file frontmatter; not saved to disk | | Project | .claude/agents/*.md | Walks up from the cwd; good to commit for the team | | User | ~/.claude/agents/*.md | Personal agents in every project | | Plugin | Plugin's agents/ | Lowest precedence; ships with plugins like LENA |

--add-dir adds file access only ... those extra roots are not scanned for agents.

Minimum frontmatter (name and description are required in Claude Code; body = system prompt)

---
name: my-api-hardening
description: Use for auth, input validation, and OWASP-style API reviews.
tools: Read, Glob, Grep
---

Your system prompt for this specialist goes here.

Common optional keys include tools, disallowedTools, model, permissionMode, skills (preload skill content into that agent), mcpServers, hooks, maxTurns, and more ... see docs. Plugin-defined agents ignore some sensitive keys (hooks, mcpServers, permissionMode) for security; copy the file into .claude/agents/ or ~/.claude/agents/ if you need those.

After you add or edit a file: restart the session or run /agents so Claude Code reloads the list.

Docs: Subagents (Claude Code).


Install

Claude Code (recommended)

claude plugin add justjammin/lena

With the plugin, Claude Code runs a SessionStart hook that loads the LENA skill into hidden context on every new session, so routing rules apply from the first message until you say stop lena, exit lena, or lena off. You can still type /lena for the explicit LENA active line.

npx

npx lena-ai

Manual

mkdir -p ~/.claude/skills/lena
curl -o ~/.claude/skills/lena/SKILL.md \
  https://raw.githubusercontent.com/justjammin/lena/main/skills/lena/SKILL.md

Manual install is skill only (no SessionStart hook). Use /lena each thread if you want LENA behavior.


Usage

Plugin: LENA is already primed when the session opens; /lena is optional (good for the ritual line).

Skill-only: type /lena in your prompt:

/lena

On the first /lena in a thread, LENA answers with something like: LENA active. What are we building? After that, same thread keeps LENA routing on every message until stop lena, exit lena, or lena off. With the plugin, the next new session primes LENA again via the hook; with skill-only, use /lena again in the new chat.

Two quick examples

Small and clear (LENA won't over-orchestrate):

/lena
> Fix the N+1 query in the user dashboard

→ LENA handles it directly

Big and messy (LENA will line up the right people):

/lena
> Build a complete JWT auth system with refresh tokens, tests, and documentation

→ Rough flow:
  1. architect-reviewer ... system shape and contracts
  2. backend-developer ... auth + refresh tokens
  3. test-automator ... tests
  4. documentation-engineer ... API docs

Rules LENA tries to live by

  1. Correct beats clever. Always.
  2. If it's vague, LENA asks once. Not twenty questions. One sharp one.
  3. No scope creep from LENA's side. LENA builds what you asked.
  4. No half-finished "proof of concept" when you needed something real.
  5. LENA explains when it helps. Not because the template said to.

Where it runs

| Environment | Install | |-------------|---------| | Claude Code | claude plugin add justjammin/lena && claude plugin install lena | | Codex | Clone repo → /plugins → Search "lena" → Install | | Gemini CLI | gemini extensions install https://github.com/justjammin/lena | | Cursor | npx skills add justjammin/lena -a cursor | | Windsurf | npx skills add justjammin/lena -a windsurf | | Copilot | npx skills add justjammin/lena -a github-copilot | | Cline | npx skills add justjammin/lena -a cline | | Any other | npx skills add justjammin/lena |


npx skills supports 40+ agents:

npx skills add justjammin/lena           # auto-detect agent
npx skills add justjammin/lena -a amp
npx skills add justjammin/lena -a augment
npx skills add justjammin/lena -a goose
npx skills add justjammin/lena -a kiro-cli
npx skills add justjammin/lena -a roo
# ... and many more

## License

MIT. [justjammin](https://github.com/justjammin).