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

clankerlog

v0.23.0

Published

CLI entrypoint for privacy-friendly ClankerLog coding-agent activity clanks.

Readme

ClankerLog CLI

Privacy-friendly command-line clanks for coding-agent activity.

clankerlog.ai

No code. No prompts. No secrets. Just clanks.

Contents

Quick Start

This is the easiest path: install the CLI, save your API key, allow one project, preview the payload, then run setup to connect ClankerLog to the coding agents already present on your machine.

npm install -g clankerlog
clankerlog login
cd /path/to/project
clankerlog init

Preview the payload without sending it:

clankerlog ping --dry-run --agent codex --model gpt-5.5

Connect detected coding-agent hooks:

clankerlog setup

Setup prints the integrations it detected, asks before writing in an interactive terminal, installs the matching hooks, and prints the uninstall command for each installed hook. Then run /hooks in Codex if command approval is required. That is the whole golden path. The CLI infers stack tags from project files when you do not pass --stack, and clankerlog init defaults the public project name to the folder name.

Project Setup

Projects are denied by default. Run one of these from a project folder before it can send clanks:

clankerlog init

Use allow when you only want to add the current folder to the allow-list and skip the project-local .clankerlog.json setup:

clankerlog allow

To track every project without allowing each folder manually, enable automatic project tracking once:

clankerlog allow --all

This sets autoTrackProjects in the global config. Explicitly allowed projects still keep their configured display names; every other project uses its .clankerlog.json display name when present, otherwise the folder name.

You can override the public project name when needed. The same --name option also works with allow.

clankerlog init --name my-public-project

Add explicit stack tags only if inference is not enough:

clankerlog init --stack typescript,pnpm

Agent Hooks

For day-to-day use, wire ClankerLog into your coding agent's hook system so clanks are sent automatically after agent activity. The recommended path is:

clankerlog setup

setup detects supported agents from PATH, known config/plugin directories, or already-installed ClankerLog hooks. Use --dry-run to preview, --yes for non-interactive installs, --all to install every supported integration, and --include or --exclude to narrow the selection.

You can also pick an agent manually and run its installer.

Codex

Install the Codex Stop hook:

clankerlog integrations install codex

After installing, run /hooks in Codex if command approval is required.

Claude Code

Install the Claude Code Stop hook with the model name ClankerLog should report:

clankerlog integrations install claude --model claude-sonnet-4.5

When using setup, pass the same model with --model for non-interactive Claude installs.

Cursor

Install the Cursor stop hook:

clankerlog integrations install cursor

Hermes

Install the Hermes shell hook:

clankerlog integrations install hermes

Topchester

Install the Topchester Stop hook:

clankerlog integrations install topchester

OpenClaw

Install the global OpenClaw message:sent hook:

clankerlog integrations install openclaw

This writes a managed hook directory at ~/.openclaw/hooks/clankerlog/ with HOOK.md and handler.ts. The generated handler sends clanks only for successful outbound messages, calls clankerlog hook openclaw message-sent, and does not read or forward message content. If OpenClaw does not enable the hook automatically, run:

openclaw hooks enable clankerlog

Opencode

Install the global Opencode session.idle plugin:

clankerlog integrations install opencode

This writes ~/.config/opencode/plugins/clankerlog.ts. Restart Opencode after installing so it loads the plugin.

Pi

Install the Pi agent_end extension:

clankerlog integrations install pi

This writes ~/.pi/agent/extensions/clankerlog.ts. If Pi is already running, run /reload after installing.

Managing Hooks

Supported agent names are codex, claude, cursor, hermes, topchester, opencode, openclaw, and pi.

Preview an install without writing files:

clankerlog integrations install codex --dry-run

Check or remove an installed hook:

clankerlog integrations list
clankerlog integrations status <agent>
clankerlog integrations uninstall <agent>

Hook commands read the agent hook JSON payload from stdin, use the workspace path from the hook payload, and ignore assistant messages, message content, and transcript paths. Hook commands support --dry-run for local payload inspection.

See docs/integrations.md for the fuller manual install runbook, local development commands, and integration notes.

Useful Options

Non-interactive login:

clankerlog login --api-key clk_live_...

Explicit stack tags for a one-off clank:

clankerlog ping --agent codex --model gpt-5.5 --stack typescript,pnpm

Dev or local endpoint:

clankerlog ping \
  --agent codex \
  --model gpt-5.5 \
  --endpoint https://ingest.dev.clankerlog.ai/v1/clanks

Environment overrides:

CLANKERLOG_API_KEY
CLANKERLOG_INGEST_URL
CLANKERLOG_AGENT
CLANKERLOG_MODEL
CLANKERLOG_STACK

Use CLANKERLOG_AGENT for generic integrations that call clankerlog ping directly. Agent-specific hooks like clankerlog hook codex stop infer their default agent name.

Doctor

clankerlog doctor

doctor reports config status, redacted auth status, endpoint, an authenticated API check when an API key is configured, allowed projects, current project allow-list state, and project-local config. It does not send a clank.

Privacy

The CLI sends a small event with project display name, agent name, model name, stack tags, and timestamp. It does not read or send source files, prompts, transcripts, diffs, terminal output, secret-looking environment values, or file contents. Stack detection uses filenames only.

Example payload:

{
  "type": "clank",
  "project": {
    "display_name": "my-project"
  },
  "agent": "codex",
  "model": "gpt-5.5",
  "stack": ["typescript", "pnpm"],
  "timestamp": "2026-05-18T15:30:00.000Z"
}

Projects are denied by default. Run clankerlog init or clankerlog allow inside a folder before clankerlog ping can send from it, or run clankerlog allow --all once to enable automatic tracking for every project.

Development

This repo uses mise for the local toolchain and pnpm for package management.

~/.local/bin/clankerlog-dev is the local development shim; it runs src/cli.ts through this checkout so local testing always uses fresh source instead of the last built bin/clankerlog.js.

mise install
pnpm install
mise run local-ci

Useful scripts:

pnpm run build
pnpm run check
pnpm run test
pnpm run format