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

@devotel-orbit/cli

v0.1.0

Published

devotel — the official Orbit by Devotel developer CLI. Auth, send SMS, manage numbers, tail real-time logs/DLRs, and drive the sandbox from your terminal. Typed against the platform's /openapi.json.

Readme

devotel — Orbit by Devotel developer CLI

A first-party command-line tool for scripting sends, managing numbers, and tailing real-time logs/DLRs from your terminal. Typed against the Orbit platform's /openapi.json.

Docs: https://docs.orbit.devotel.io

Install

npm install -g @devotel-orbit/cli

The package installs a single devotel binary.

5-minute first SMS

# 1. Log in with an API key (Dashboard → Developers → API keys)
devotel auth login --token dv_live_xxx

# 2. Grab a sandbox number to send from
devotel sandbox numbers

# 3. Send
devotel send sms --to +15551234567 --body "Hello from Orbit"

# 4. Watch it land in real time
devotel logs tail

Commands

| Command | Description | | ------------------ | ------------------------------------------------------ | | auth login | Store a credential (--token, --url, --profile) | | auth logout | Remove a stored credential | | auth whoami | Show the active profile (token redacted) | | send sms | Send an SMS (--to, --body, --from) | | numbers list | List provisioned phone numbers | | sandbox numbers | List sandbox numbers | | logs tail | Stream real-time request logs / DLRs (Ctrl-C to stop) | | listen | Forward live webhooks to a local URL (--forward-to) | | migrate twilio | Port a Twilio account's config into Orbit (--account-sid, --auth-token, --entities, --conversation-days, --run) | | migrate status | Check a migration job's progress (<jobId>) |

Add --json to any read command for machine-readable output.

Migrating from Twilio

devotel migrate twilio drives the same one-click-migration wizard the dashboard's Import screen uses, from your terminal or a CI pipeline. It reads config from your Twilio account (never your live traffic) and brings it onto Orbit:

# 1. Preview — always a dry run first, nothing is written yet
devotel migrate twilio --account-sid ACxxxxxxxx --auth-token your_auth_token

# 2. Happy with the preview? Commit it
devotel migrate twilio --account-sid ACxxxxxxxx --auth-token your_auth_token --run

# 3. Watch it land
devotel migrate status imp_xxxxxxxx

By default it ports phone_numbers, messaging_services, templates, and contacts — pass --entities phone_numbers,contacts to narrow it, or --conversation-days 30 to shrink the contact/message lookback window. Your Twilio Auth Token is exchanged server-side for a short-lived encrypted envelope and is never written to ~/.devotel/config.json. This migrates configuration and metadata only — it does not move live traffic; outbound voice/SMS keeps exiting through Devotel's own wholesale network both before and after you run it. See the Twilio migration guide for the full concept mapping (SMS, voice/TwiML, webhooks, Verify).

Local webhook forwarding

Build and debug webhook handlers on your machine without deploying or standing up a public tunnel. devotel listen tails your tenant's live events and POSTs each one to your local server, signed exactly like a production webhook:

devotel listen --forward-to localhost:3000/webhook
Forwarding Orbit webhooks → http://localhost:3000/webhook
Webhook signing secret: whsec_8f3c…
Listening for new events… press Ctrl-C to stop.
message.delivered  1719345600123-0 → http://localhost:3000/webhook  [200]

Each forwarded request carries an X-Devotel-Signature: t=<ts>,v1=<hmac> header. Verify it locally with the printed signing secret exactly as you would a live webhook:

import { Orbit } from "@devotel-orbit/node";

const event = Orbit.webhooks.constructEvent(
  rawBody,
  req.headers["x-devotel-signature"],
  process.env.ORBIT_WEBHOOK_SECRET, // the whsec_… printed by `devotel listen`
);

Flags:

  • --forward-to <url> — local target (a bare host:port/path defaults to http://).
  • --types <csv> — only forward these event types, e.g. message.delivered,message.failed.
  • --secret <whsec_…> — reuse a fixed signing secret (or set $DEVOTEL_WEBHOOK_SECRET) instead of a fresh per-session one.
  • --replay — also forward the events already buffered before you started, then keep tailing.

Credentials & profiles

Credentials are stored at ~/.devotel/config.json (0600), overridable via $DEVOTEL_CONFIG_HOME. Use --profile <name> (or $DEVOTEL_PROFILE) to keep separate prod / staging credentials. dv_… keys are sent as X-API-Key; session JWTs are sent as Authorization: Bearer.

Keeping types in sync

The CLI ships hand-maintained types so the published bundle has zero codegen-time dependencies. To diff them against a live spec when routes change:

DEVOTEL_OPENAPI_URL=https://api.orbit.devotel.io/openapi.json \
  pnpm --filter @devotel-orbit/cli codegen

Outbound routing

The CLI only ever calls the first-party Orbit API. Outbound SMS submitted via devotel send sms is terminated server-side through the Devotel wholesale softswitch (invariant #45) — the CLI never speaks to upstream carriers directly.

License

MIT. See LICENSE.