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

tally-axi

v0.1.0

Published

AXI-compliant CLI for Tally - read forms and submissions, manage webhooks, with token-efficient TOON output over the Tally REST API.

Readme

Tally AXI

An AXI-compliant command line for Tally. Read forms and submissions and manage webhooks through the public Tally REST API with token-efficient TOON output, pre-computed counts, truncation with a --full escape hatch, structured errors, and help[] next steps on every result.

Install

npm install -g tally-axi        # or run on demand: npx -y tally-axi@latest <command>

Requires Node.js 20 or newer.

Configure

Create an API key in Tally settings, then export it:

export TALLY_API_KEY="your_tally_api_key_here"

The key is read from the environment only — never pass it as a command argument. Optional overrides: TALLY_API_BASE_URL (HTTPS-only, default https://api.tally.so) and TALLY_TIMEOUT_MS (100–120000, default 10000).

tally-axi with no arguments shows a live home view (auth state, form count, recent forms) and works without a key, so session-start hooks stay safe.

Commands

| Command | What it does | | --- | --- | | tally-axi | Live home view: auth status, form count, recent forms, next steps | | tally-axi forms list [--limit N] [--page N] | Forms shared with the API key | | tally-axi forms get <formId> [--full] | One form definition (truncated by default) | | tally-axi submissions list <formId> [--limit N] [--page N] | Responses for one form | | tally-axi submissions get <formId> <submissionId> [--full] | One response with answers | | tally-axi submissions delete <formId> <submissionId> --confirm | Permanently delete one response | | tally-axi webhooks list <formId> | Webhooks configured on one form | | tally-axi webhooks create <formId> --url <https-url> --confirm | New FORM_RESPONSE webhook | | tally-axi webhooks delete <webhookId> --confirm | Unsubscribe an endpoint |

Every command also accepts --json (machine-readable JSON instead of TOON) and --help. Tally form creation and editing are not in the public API — create and edit forms at tally.so, then read them here.

Examples

$ tally-axi
bin: ~/.npm-global/bin/tally-axi
description: "Tally forms, submissions, and webhooks for agents - ..."
auth: api-key
forms: 12 shared with this key
recent_forms[5]{id,name,status}: ...
help[4]: ...

$ tally-axi forms list --limit 3
count: 3
totalCount: 12
forms[3]{id,name}: ...
help[2]: ...

$ tally-axi submissions delete frmAbc123 subXyz789 --confirm
deleted:
  id: subXyz789
  form: frmAbc123
help[1]: ...

Safety model

  • Mutations are gated. submissions delete, webhooks create, and webhooks delete refuse to run without --confirm (exit 2) and make zero network calls until it is present.
  • Writes and deletes are never retried. Safe reads retry at most twice on network errors, 429, and 5xx, honoring Retry-After (30s cap).
  • Credentials never leak. The API key stays in the environment; upstream diagnostic bodies are recursively redacted before they reach the terminal; webhook URLs must be HTTPS.
  • Timeouts. Requests abort after TALLY_TIMEOUT_MS (default 10s).

Exit codes

0 success · 2 usage errors (unknown flags, missing --confirm, bad arguments) · 1 runtime and API failures. Errors print structured error / code / help[] on stdout, never stderr, and never prompt.

Agent skill

An installable skill is bundled for agents that support the format:

npx skills add brycehamrick/tally-axi

Development

npm install
npm run build       # tsc -> dist/
npm test            # vitest
npm run typecheck
npm run lint

Run the CLI locally with node bin/tally-axi.js after building. dist/ is committed so clone-and-run and GitHub installs need no build step — after editing src/, run npm run build and commit dist/ in the same change. Network access lives only in src/tally/http.ts; tests inject fakes and never touch the network.

License

MIT