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

zotero-axi

v0.1.0

Published

Agent-ergonomic wrapper around your local Zotero library. Prefer this over raw Zotero API calls.

Readme

zotero-axi

Agent-ergonomic CLI for your local Zotero library. No MCP, no API key.

zotero-axi is an AXI (Agent Experience Interface) tool: a token-efficient CLI, like gh-axi and lavish-axi, that any coding agent (Claude Code, opencode, Gemini CLI, Cursor…) can drive from the shell. It talks to the Zotero desktop app's built-in local HTTP API and emits compact TOON output.

$ zotero-axi search "prompt injection"
count: 3 of 244
items[3]{key,title,year,authors}:
  K4WARNBQ,"Air Gap: Protecting Privacy-Conscious Agents",2024,"Bagdasaryan et al."
  9FQ2XKUP,"Defeating Prompt Injections by Design",2025,"Debenedetti et al."
  ...
help[1]:
  Run `zotero-axi view <key>` for abstract + notes

Install

Pick one:

# run directly, no install
npx -y zotero-axi

# install as an Agent Skill for every agent (recommended for collaborators)
npx skills add tolgaerdonmez/zotero-axi

# or globally on PATH
npm i -g zotero-axi

Optional ambient context (a library dashboard at every session start):

zotero-axi setup hooks

Prerequisites (one-time)

  1. Zotero desktop installed. zotero-axi auto-starts it if it's closed (macOS open -a Zotero; Linux zotero on PATH or the org.zotero.Zotero flatpak). Pass --no-launch to disable.
  2. Enable the local API: Zotero → SettingsAdvanced"Allow other applications on this computer to communicate with Zotero".
  3. Node ≥ 18.
  4. For add: nothing extra by default — metadata is extracted by Wikimedia's hosted Zotero translation service (Citoid). The paper's identifier is sent to Wikimedia's public API. Prefer a fully local extractor? Run a Zotero translation-server (Docker/Podman) and pass zotero-axi add <input> --via server.

Commands

| Command | Description | |---|---| | zotero-axi | Home view: library state + recent items + hints | | zotero-axi search "<q>" | Keyword search. -e/--everything, --limit <n>, --fields <a,b,c> | | zotero-axi view <key> | Metadata + abstract (truncated) + notes. --full | | zotero-axi add <url\|doi\|arxiv\|isbn\|pmid> | Import a paper (Citoid by default; --via server for local translation-server; arXiv PDF attached automatically) | | zotero-axi recent [--limit <n>] | Most recently added items | | zotero-axi setup hooks | Install/repair agent SessionStart hooks | | zotero-axi --version / --help | Version / help |

Exit codes: 0 success, 1 runtime error, 2 usage error (bad/unknown flag).

Ports

  • 23119 — Zotero desktop (connector + local read API)
  • 1969 — translation-server (only when add --via server is used)

Development

npm ci
npm run build      # tsc → dist/
npm test           # build + node --test
node dist/bin/zotero-axi.js --help

Project layout follows the AXI reference pattern: bin/ (fast-path entry), src/version.ts (leaf), src/cli.ts (command graph), src/zotero.ts (local API client), src/toon.ts (output), src/commands/*.

Releasing / npm publish

Publishing is automated via GitHub Actions (.github/workflows/release.yml): it publishes to npm whenever you publish a GitHub Release. One-time setup:

  1. npm account + package name. Log in at npmjs.com. zotero-axi must be free (or use a scope like @tolgaerdonmez/zotero-axi — then set that as name in package.json and keep publishConfig.access: public).
  2. Create an npm access token. npm → Access TokensGenerateAutomation (or a Granular token with publish rights to this package).
  3. Add it as a repo secret. GitHub repo → SettingsSecrets and variablesActionsNew repository secret → name it NPM_TOKEN, paste the token.
  4. Release. Bump version in package.json, commit, then create a GitHub Release with a tag matching the version prefixed by v (e.g. v0.1.0). The workflow verifies the tag matches package.json, builds, tests, and runs npm publish --provenance --access public.

That's it — every new Release publishes automatically. CI (.github/workflows/ci.yml) builds and tests on Linux and macOS across Node 18/20/22 on every push and PR.

License

MIT © Ahmet Tolga Erdönmez