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

forward-nexus

v2.3.0

Published

Forward Nexus, the CLI for the open agent ecosystem

Readme

Forward Nexus

Forward Nexus is the CLI for the open agent ecosystem.

Supports OpenCode, Claude Code, Codex, Cursor, and 41 more.

Forward Nexus installs and manages reusable AI agent customizations without forcing you to manually copy files into each agent's folder.

What It Installs

| Item | What it is | Typical destination | | ----------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------ | | Skills | Reusable task-specific instructions packaged as SKILL.md directories | Agent skill folders such as .claude/skills/ or .github/skills/ | | Instruction files | Repository-wide guidance such as .instructions.md files | .github/instructions/ | | Custom agents | Repository-provided agent/chatmode definitions | .github/agents/ |

If you are new to the ecosystem, start with a skill install. That gives you the quickest end-to-end confirmation that your agent is picking up installed customizations.

Install

Forward Nexus requires Node.js 22 or newer.

# Try it without a global install
npx forward-nexus --help

# Or install it once and use the command directly
npm install -g forward-nexus
forward-nexus --help

Quick Start

# 1. Preview what a source repo offers
npx forward-nexus add vercel-labs/agent-skills --list

# 2. Install one skill
npx forward-nexus add vercel-labs/agent-skills --skill deploy-to-vercel

# 3. Confirm what is installed in the current project
npx forward-nexus list

To install repository instruction files or custom agents instead of skills:

npx forward-nexus add ./repo-with-customizations --instruction project-standards
npx forward-nexus add ./repo-with-customizations --custom-agent reviewer

Instruction files and custom agents are always project-scoped. They can also pull in linked skills, instructions, or custom agents declared in frontmatter. In non-interactive runs, any linked skills default to the universal project target unless you pass --agent.

Source formats

<source> accepts several forms:

| Form | Example | Installs | | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | | GitHub/GitLab/Bitbucket shorthand | owner/repo, owner/repo/path, owner/repo@skill | A repo (optionally a subpath or single named skill) | | Repo, directory, or file URL | https://github.com/owner/repo, .../tree/<ref>/<path>, .../blob/<ref>/<path>/SKILL.md, https://raw.githubusercontent.com/owner/repo/<ref>/<path>/SKILL.md | The repo, the directory's skills, or the single skill a blob/raw URL points at | | Hosted single file | https://your-host/<name>/SKILL.md | One hosted skill (just that SKILL.md; ship resources/ via a repo or well-known endpoint) | | Well-known endpoint | https://your-host (serving /.well-known/agent-skills/index.json) | Every skill the endpoint publishes | | Local path | ./repo, ./repo/path, ./path/to/SKILL.md | A local directory's skills, or a single local SKILL.md |

Choosing what to install

When you run add <source> without naming items (no --skill/--instruction/--custom-agent), Forward Nexus shows a single grouped, searchable picker covering everything it found in the repo — skills, instruction files (including a top-level AGENTS.md), and custom agents — grouped under section headers. Type to filter, space to toggle, enter to confirm. --yes only assumes default answers — it does not pick what to install. To install everything without the picker, pass --all (it installs every skill, instruction, and custom agent the source offers, across every agent target — skills only when combined with --global); running non-interactively with several items and no --all errors instead of installing everything. A source offering a single item is installed without prompting. --global installs only skills, since instructions and custom agents are project-scoped.

Common Workflows

| Goal | Command | More detail | | ---------------------------------------------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | Browse installable items in a repo | npx forward-nexus add <source> --list | Getting started | | Install one or more skills | npx forward-nexus add <source> --skill <name> | Command reference | | Install repo instructions or custom agents | npx forward-nexus add <source> --instruction <name> | Customizations guide | | See what is installed | npx forward-nexus list | Command reference | | Search for skills | npx forward-nexus find typescript | Command reference | | Inspect a skill before installing | npx forward-nexus info <source> [item] | Command reference | | Check which items have updates available | npx forward-nexus outdated | Command reference | | Update tracked items | npx forward-nexus update | Command reference | | Check project drift before changing files | npx forward-nexus sync | Sync guide | | Orient at session start (agents) in one call | npx forward-nexus context --toon | Command reference | | Restore tracked items from lockfile | npx forward-nexus restore | Command reference | | Sync node_modules skills and regenerate IDE files | npx forward-nexus sync-modules | Command reference | | See which agents are supported and where they install | npx forward-nexus agents | Command reference | | Add an agent target to everything already installed | npx forward-nexus agents add <agent> | Command reference | | Drop an agent target from everything installed | npx forward-nexus agents remove <agent> | Command reference | | Diagnose environment or auth issues | npx forward-nexus doctor | Troubleshooting | | Install shell completions | npx forward-nexus completion zsh | Full command reference | | Remove something you installed | npx forward-nexus remove <item> | Command reference | | Set a persistent default (agent, version policy, color, …) | npx forward-nexus config set <key> <value> | Command reference |

Global Flags

These flags work on every command, including list and init:

| Flag | Short | What it does | | ------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --quiet | -q | Hides the banner and diagnostic progress/status, and runs non-interactively. Primary data is still printed: read commands like list, find, info, agents, outdated, doctor, config get/list, completion, and the read-only add <source> --list browse still emit their result on stdout (clig.dev: --quiet never swallows the data you asked for). Mutating commands (add, init, update, sync, …) are silent on success. On failure the rendered output is written to stderr with a non-zero exit code, so failures are never silent. --json output is never suppressed. | | --verbose | — | Print extra sub-steps as the command runs | | --debug | -d | Everything --verbose shows, plus the full error stack trace to stderr on failure (also via DEBUG=forward-nexus:*) | | --no-color | — | Disable ANSI color | | --cwd <dir> | -C | Run as if started in <dir> (place after the command, like every flag) |

Mutating commands (add, remove, update, sync, restore, sync-modules, …) additionally accept -y, --yes (assume default answers, run non-interactively) and -n, --dry-run (preview what would change without writing; alias --plan).

[!NOTE] Scope Differences for --global / -g:

  • In configuration commands (config), --global / -g targets user-wide configuration (e.g., ~/.config/forward-nexus/config.json), and --local targets project-scoped configuration (e.g., ./.forward-nexus.json).
  • In skill/customization commands (add, remove, list, update, outdated), --global / -g targets globally installed skills (e.g., ~/.agents/skills/), while --project (or the default) targets project-scoped skills (e.g., ./.agents/skills/). Customizations (instructions and custom agents) are always project-scoped.
# Run update quietly (errors only) from another directory
npx forward-nexus update --quiet -C /path/to/project

# Show verbose output
npx forward-nexus sync --verbose

Common add Options

| Option | Use it when | | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | -s, --skill <skill> | You want specific skills instead of an interactive selection (repeat or comma-separate for multiple: --skill a --skill b or --skill a,b) | | --instruction <file> | You want standalone repository instruction files (repeat or comma-separate for multiple) | | --custom-agent <file> | You want standalone repository custom agent files (repeat or comma-separate for multiple) | | -a, --agent <agent> | Target specific agents (e.g., claude-code, codex). See Available Agents (repeat or comma-separate for multiple: --agent a --agent b or --agent a,b) | | -g, --global | You want skills available across projects instead of only in the current repo | | -y, --yes | You are running non-interactively (assume default answers). Pair with --all or --skill/--instruction/--custom-agent to choose what installs | | --all | You want every item the repo offers, no prompts — every skill, instruction, and custom agent (skills only when combined with --global). Installs to every agent unless you also pass --agent to target specific ones | | -f, --force | You need to overwrite untracked files already sitting at an install path | | --version-policy <exact\|patch\|minor> | You want to pin how future updates bump this item (default minor; also settable as a persistent default via config) | | --copy | You want independent copies in each agent directory instead of symlinks from the canonical store. Symlinking is the default only when an install spans multiple agent directories; a single target directory is always copied (there is nothing to share) | | --include-prerelease | You want update to consider prerelease tags for this item, not just stable releases | | --full-depth | The source nests more skills beneath a root SKILL.md; search every subdirectory instead of stopping at the root skill |

--instruction and --custom-agent can install linked dependencies alongside the item you selected. See the Customizations guide when you want the exact frontmatter rules.

Automation and Planning

Forward Nexus now supports machine-readable output and plan mode across the main mutating workflows.

--json implies non-interactive: every command that supports it accepts --json with no -y and never prompts, in any shell. The one exception is opening a pull request — sync --push --json and sync --both --json still require -y to confirm, and exit 2 without it, so a PR is never opened unattended. Every --json command emits the same envelope — { schemaVersion, command, ok, exitCode, errorCode, stdout, stderr, data } — with the command-specific result under data and errorCode naming the failure kind (null on success, e.g. auth/network/usage/conflict on failure) so automation can branch without scraping stderr. See docs/commands.md for the full contract.

AI agents: prefer --toon. Every command that accepts --json also accepts --toon, which emits the identical envelope serialized in TOON — a lossless re-encoding at roughly 40% fewer tokens. --toon is the recommended machine format for agents; --json remains the compatibility fallback. The two are mutually exclusive (passing both exits 2), and --toon flips non-interactive mode just like --json. See docs/commands.md for the TOON contract.

# Preview an install without writing files
npx forward-nexus add vercel-labs/agent-skills --skill deploy-to-vercel -y --dry-run
npx forward-nexus add vercel-labs/agent-skills --skill deploy-to-vercel -y -n    # -n is short for --dry-run

# Get JSON output for automation-friendly installs (no -y needed)
npx forward-nexus add vercel-labs/agent-skills --skill deploy-to-vercel --json

# Agents: the same envelope in TOON — ~40% fewer tokens (preferred)
npx forward-nexus add vercel-labs/agent-skills --skill deploy-to-vercel --toon

# Preview tracked updates before applying them
npx forward-nexus update -p -y --dry-run

# Preview project sync pulls and pushes before mutating files or GitHub
npx forward-nexus sync --both --dry-run

Current automation-facing commands with --json and --dry-run / --plan / -n support:

  • add (also: a, install, i)
  • remove (also: rm, r)
  • outdated (also: check) — read-only, exits 0 always
  • update (also: upgrade, up)
  • sync
  • restore (compatibility alias: experimental_install)
  • sync-modules (also: generate-ide; compatibility alias: experimental_sync)
  • migrate
  • init

outdated --json, find --json (requires a query), info --json, sync --json, list --json, doctor --json, and agents --json are read-only. As with every --json command, none requires -y.

Exit codes:

  • 0 success (also returned when an interactive prompt is dismissed with Escape or declined)
  • 1 command failure — a well-formed request that matched nothing (every named item is unknown), an authentication failure, a safety refusal, or a runtime error. For the all-unknown case, add/remove/update list the unmatched names under notFound in --json (the same field the partial case 5 uses)
  • 2 usage error — unknown command or flag, invalid option value, missing required argument
  • 4 conflict — an install collision blocked completion (e.g. an untracked file already occupies the target path; re-run with --force to overwrite)
  • 5 partial success — a multi-item operation where some named items matched and others did not (e.g. add --skill real,ghost, remove real ghost, update real ghost); the matches are applied, the misses are reported (and listed under notFound in --json). outdated is read-only and always exits 0, reporting misses as a warning instead
  • 130 aborted — an interactive prompt aborted with Ctrl+C (128+SIGINT, the shell convention), so &&-chains stop after an abort; Escape and declined confirmations stay 0

There is no dedicated auth exit code (3 is intentionally unused): a credential failure surfaces as 1 with actionable re-auth guidance in the error message, because git and the registry return the same response for a private repo you can't access as for a missing one.

Scripts that only branch on success vs failure can treat any non-zero code as a failure; the distinct codes let automation tell a usage mistake and a conflict apart.

Learn More

Contributing

Setup, the day-to-day commands, test conventions, the changeset policy, and the review process are documented in CONTRIBUTING.md.

Available Agents

Run npx forward-nexus agents to print this list from the CLI (add --json for machine-readable output) without leaving your terminal.

| Agent | --agent | Project Path | Global Path | |-------|-----------|--------------|-------------| | Amp, Kimi Code CLI, Replit, Universal | amp, kimi-cli, replit, universal | .agents/skills/ | ~/.config/agents/skills/ | | Antigravity | antigravity | .agents/skills/ | ~/.gemini/antigravity/skills/ | | Augment | augment | .agents/skills/ | ~/.augment/skills/ | | IBM Bob | bob | .bob/skills/ | ~/.bob/skills/ | | Claude Code | claude-code | .claude/skills/ | ~/.claude/skills/ | | OpenClaw | openclaw | .agents/skills/ | ~/.openclaw/skills/ | | Cline, Warp | cline, warp | .agents/skills/ | ~/.agents/skills/ | | CodeBuddy | codebuddy | .codebuddy/skills/ | ~/.codebuddy/skills/ | | Codex | codex | .agents/skills/ | ~/.codex/skills/ | | Command Code | command-code | .agents/skills/ | ~/.commandcode/skills/ | | Continue | continue | .continue/skills/ | ~/.continue/skills/ | | Cortex Code | cortex | .cortex/skills/ | ~/.snowflake/cortex/skills/ | | Crush | crush | .agents/skills/ | ~/.config/crush/skills/ | | Cursor | cursor | .agents/skills/ | ~/.cursor/skills/ | | Deep Agents | deepagents | .agents/skills/ | ~/.deepagents/agent/skills/ | | Droid | droid | .factory/skills/ | ~/.factory/skills/ | | Firebender | firebender | .agents/skills/ | ~/.firebender/skills/ | | Gemini CLI | gemini-cli | .agents/skills/ | ~/.gemini/skills/ | | GitHub Copilot | github-copilot | .agents/skills/ | ~/.copilot/skills/ | | Goose | goose | .agents/skills/ | ~/.config/goose/skills/ | | Junie | junie | .junie/skills/ | ~/.junie/skills/ | | iFlow CLI | iflow-cli | .iflow/skills/ | ~/.iflow/skills/ | | Kilo Code | kilo | .agents/skills/ | ~/.kilocode/skills/ | | Kiro CLI | kiro-cli | .kiro/skills/ | ~/.kiro/skills/ | | Kode | kode | .kode/skills/ | ~/.kode/skills/ | | MCPJam | mcpjam | .agents/skills/ | ~/.mcpjam/skills/ | | Mistral Vibe | mistral-vibe | .agents/skills/ | ~/.vibe/skills/ | | Mux | mux | .agents/skills/ | ~/.mux/skills/ | | OpenCode | opencode | .agents/skills/ | ~/.config/opencode/skills/ | | OpenHands | openhands | .agents/skills/ | ~/.openhands/skills/ | | Pi | pi | .agents/skills/ | ~/.pi/agent/skills/ | | Qoder | qoder | .qoder/skills/ | ~/.qoder/skills/ | | Qwen Code | qwen-code | .qwen/skills/ | ~/.qwen/skills/ | | Roo Code | roo | .agents/skills/ | ~/.roo/skills/ | | Trae | trae | .trae/skills/ | ~/.trae/skills/ | | Trae CN | trae-cn | .trae/skills/ | ~/.trae-cn/skills/ | | Windsurf | windsurf | .agents/skills/ | ~/.codeium/windsurf/skills/ | | Zencoder | zencoder | .agents/skills/ | ~/.zencoder/skills/ | | Neovate | neovate | .neovate/skills/ | ~/.neovate/skills/ | | Pochi | pochi | .agents/skills/ | ~/.pochi/skills/ | | AdaL | adal | .adal/skills/ | ~/.adal/skills/ |

[!NOTE] Kiro CLI users: After installing skills, manually add them to your custom agent's resources in .kiro/agents/<agent>.json:

{
  "resources": ["skill://.kiro/skills/**/SKILL.md"]
}

Discovery Paths Reference

  • Root directory (if it contains SKILL.md)
  • skills/
  • skills/.curated/
  • skills/.experimental/
  • skills/.system/
  • .agents/skills/
  • .claude/skills/
  • .cline/skills/
  • .codebuddy/skills/
  • .codex/skills/
  • .commandcode/skills/
  • .continue/skills/
  • .github/skills/
  • .goose/skills/
  • .iflow/skills/
  • .junie/skills/
  • .kilocode/skills/
  • .kiro/skills/
  • .mux/skills/
  • .neovate/skills/
  • .opencode/skills/
  • .openhands/skills/
  • .pi/skills/
  • .qoder/skills/
  • .roo/skills/
  • .trae/skills/
  • .windsurf/skills/
  • .zencoder/skills/

Related Links