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

familiar-cli

v1.3.0

Published

CLI for managing familiar accounts, keys, and local tunnels (early development)

Readme

familiar-cli

Early development. This is an MVP release. Expect breaking changes.

Command-line tool for setting up and managing familiar — a hosted tool router with memory.

Install

npm install -g familiar-cli

Onboarding

1. Create an account

Run this once to create your familiar account and get an API token:

familiar init

This stores the token globally and prints your next steps.

You can also import an existing token:

familiar init --token fam_your_token

2. Add your token to the project

In your project root, add the token to .dev.vars:

FAMILIAR_TOKEN=fam_your_token

.dev.vars should be gitignored. All subsequent CLI commands read the token from this file.

3. Set your AI provider key

familiar uses OpenRouter for model calls. Each integration needs its own key.

Get a key at openrouter.ai/keys, then from your project root:

familiar set-key sk-or-v1-your_openrouter_key

4. Sync your tools

Create a familiar.tools.json file in your project root:

[
  {
    "tool_name": "spreadsheet.update_row",
    "description": "Update a row in the spreadsheet",
    "input_schema": {
      "type": "object",
      "properties": {
        "row_id": { "type": "string" },
        "values": { "type": "object" }
      },
      "required": ["row_id", "values"]
    },
    "status": "active"
  }
]

Then sync from your project root:

familiar tools sync

Run this again whenever your tool definitions change.

5. Start the tunnel

familiar is hosted and cannot reach localhost directly. Run this in a second terminal while developing:

familiar portal --port 8787

This starts a Cloudflare tunnel, registers the URL with familiar, and keeps it alive. Press Ctrl-C to stop — it clears the URL automatically.

Requires cloudflared.

Commands

familiar init

Create a familiar account and issue the first API token. Stores the token globally.

This calls POST /api/v1/accounts and saves the returned token to ~/.familiar/config.json.

familiar login

Open the familiar dashboard in your browser, already logged in.

familiar login

Reads the token from ~/.familiar/config.json, creates a one-time browser login code, and opens the dashboard.

familiar set-key <key>

Set the OpenRouter AI provider key for the current project integration. Reads FAMILIAR_TOKEN from .dev.vars in the current directory.

familiar set-url <url>

Set the executor base URL that familiar will call when tools run. Use this when your executor is already deployed (e.g., on Vercel, Railway, or your own server) instead of using familiar portal.

familiar set-url https://my-app.vercel.app

To clear the URL later:

familiar set-url ""

familiar tools sync [--file <path>]

Sync tools from a JSON file. Defaults to familiar.tools.json in the current directory. Use --file to point to a different path.

familiar portal --port <port>

Start a local tunnel to the given port, register it with familiar, and keep it alive. Re-registers automatically if the tunnel restarts.

familiar account show / familiar whoami

Show the account details for the current token.

Authentication

The CLI uses API tokens for all operations. Tokens are long-lived machine credentials.

Token sources (checked in order):

  1. --token <token> flag (explicit override)
  2. FAMILIAR_TOKEN in .dev.vars (project-level)
  3. ~/.familiar/config.json (global, set by familiar init)

Web dashboard users can find their full API token on the dashboard and import it with familiar init --token <token>.

Options

| Option | Description | |---|---| | --host <url> | familiar API base URL. Defaults to the hosted instance. | | --token <token> | Use a token directly instead of reading from .dev.vars or the global config. | | --file <path> | Path to tools JSON file (for tools sync). | | --port <port> | Local port to tunnel (for portal). |