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

@futuvara/connect

v0.3.3

Published

Connect a coding agent to a Futuvara project: adds the Futuvara MCP server, installs every Futuvara skill and applies the project config.

Readme

@futuvara/connect

The one Futuvara installer. It gives this machine every Futuvara skill and the end-of-turn check (once — every project and worktree then has them), and connects a repository to one Futuvara project. Run it inside the project's repository, once per repository:

export FUTUVARA_KEY_LUXURY_FRONTIERS_PLATFORM=<key from Futuvara > Coding agent access>
npx @futuvara/connect --project Luxury-Frontiers-Platform --agent claude-code

One key variable per project, so several projects work on one machine: FUTUVARA_KEY_ + the project name upper-cased, every run of other characters as _ (Futuvara-Platform → FUTUVARA_KEY_FUTUVARA_PLATFORM). Put the export line in your shell profile so your agent sees it too. The old plain FUTUVARA_KEY alone is not enough: the repository's agent config reads the project variable, so the installer stops with a [FAIL] and the exact export line. Futuvara › Coding agent access shows both lines filled in when a key is made.

What it does, in order:

  1. Preflight — before anything is written: Node 20+, git, bash (Git Bash on Windows) and a real Python 3 (not the Microsoft Store stub) for the project config, gh (a warning only — agents need it for pull requests) and the key. Each line is [ ok ] or [FAIL] with the fix; any [FAIL] exits 1 with nothing installed. The key is then checked against the server before any file is touched.
  2. MCP server — per repository. Inside a git repository the futuvara server goes into the repository's own, committed config (table below), reading the project's variable. Outside a git repository nothing is connected: "run again inside the project's repo to connect it". Nothing goes into the agent's user config; a machine-wide futuvara entry left by 0.3.0 in ~/.claude.json or ~/.cursor/mcp.json is removed (only that entry), and the output says so.
  3. Skills — once per machine (--scope user, the default): list_skills, then get_skill for each, over the MCP server (the set lives in sdk/futu-skills/ in the Futuvara repo, published to the knowledge base on each deploy), written in plugin layout to a fixed temp folder and installed with npx skills add <folder> -s '*' -a <agent> -y --copy -g: ~/.claude/skills for Claude Code, ~/.agents/skills for Cursor, Codex, Copilot and the other agents that read .agents/skills; the shared lib/ the scripts source goes beside them. --scope project installs into this folder instead (.claude/skills or .agents/skills), as before 0.3.1.
  4. Config — bash <skills>/futu-setup/futu-setup.sh apply (with FUTU_SETUP_SCOPE=user by default): the end-of-turn check in ~/.claude/settings.json, pointing at the installed futu-setup/references/stop-check.sh, so it runs in every project and does nothing where .futu/ci.sh is absent; inside a git repository also the docs/ skeleton, the AGENTS.md rules block, .futu/ (ESLint futu rules and scanners), eslint.config.mjs wiring and .github/workflows/futu.yml. Skip it with --no-config.
  5. Verify — every skill the server lists is where it was installed, the end-of-turn check is in the settings it was written to (Claude Code), the repository's futuvara entry reads the project's variable, and that variable is set. A [FAIL] exits 1 with the exact fix.
  6. Jean — when the Jean desktop app is installed, every run (not only installs) makes sure claude:futuvara (or codex: / cursor:) is in Jean's default MCP servers: Jean hands each session its own server list and ignores .mcp.json. --check only reports it.

Staying current. Each install writes the live version to <skills dir>/.futuvara-version. A re-run reads the live version with one list_skills call: when the marker matches and verify passes it prints [ ok ] skills up to date (vX) and finishes in seconds — no download, no restart; when the platform has a newer version it reinstalls and says "Updated the skills to vX". Agents run npx -y @futuvara/connect@latest … at the start of every build pack, so every machine stays current. --check on an older install reports [FAIL] skills out of date and writes nothing.

Is this machine set up? Add --check: preflight + verify only, nothing installed, exit 0 or 1.

Unattended (agents, CI, scripts). It always exits on its own: no child process reads stdin (stdio: ignore), each runs with CI=1, npm_config_yes=true and GIT_TERMINAL_PROMPT=0 and a time limit (npx skills 5 min, futu-setup 3 min), and every server call times out after 60 s. npx is started as node npx-cli.js — no shell. Windows: run it from Git Bash. 0.3.0 could hang there from a folder outside any git repository (such as the home folder): Git Bash hands Node the working folder as C:/…, and futu-setup's walk up to / never ended, because the parent of C: is C:. Fixed in 0.3.1 (plugin 0.17.6).

| --agent | Skills land in (default) | MCP server, per repository | | --- | --- | --- | | claude-code | ~/.claude/skills | merges .mcp.json with Authorization: Bearer ${FUTUVARA_KEY_<PROJECT>} | | cursor | ~/.agents/skills | merges .cursor/mcp.json with Authorization: Bearer ${env:FUTUVARA_KEY_<PROJECT>} | | codex | ~/.agents/skills | prints a .codex/config.toml snippet using bearer_token_env_var = "FUTUVARA_KEY_<PROJECT>" | | copilot | ~/.agents/skills (-a github-copilot) | prints the repo-settings JSON with Authorization: Bearer $COPILOT_MCP_FUTUVARA_KEY; add the key as the Agents secret COPILOT_MCP_FUTUVARA_KEY | | other | -a <agent> | prints the server URL and header |

--url points at another Futuvara host (default https://www.futuvara.com). Needs Node 20 or later. Tests: npm test.

The old futuvara-context skill (0.1.x) is retired in favour of futu-mcp-context, futu-mcp-progress and futu-mcp-signoff; remove an old copy with npx skills remove futuvara-context.

Releasing: bump version in package.json and merge to main. The publish-connect.yml workflow tests and publishes it through npm trusted publishing — no token. The first version was published by hand, because npm cannot trust a publisher for a package that does not exist yet.