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

@misaon/tf-hub

v0.1.3

Published

Command-line client and MCP server for the TF Hub intranet API

Downloads

291

Readme

tf-hub

npm version npm downloads

license ci codecov

The company intranet in your terminal — and in your AI tools.

[!WARNING] tf-hub is in beta. Commands and MCP tool names may still change between minor versions.

tf-hub talks to the TF Hub API: the place where our worklogs, absences, documents, projects and The Game live. Everything the web app can do, you can do here — list your documents, request a vacation, log work, donate bonus XP. And because every command doubles as an MCP tool, your AI agent can do it for you.

Install

Via npm — Node ≥ 22 is all you need; the install is under a megabyte:

npm install -g @misaon/tf-hub

Direct download — grab the build for your platform from the latest release, make it executable and put it on your PATH:

curl -fsSL -o tf-hub https://github.com/misaon/tf-hub/releases/latest/download/tf-hub-darwin-arm64
chmod +x tf-hub && mv tf-hub /usr/local/bin/

Builds are published for macOS (arm64, x64), Linux (x64, arm64) and Windows (x64), with a SHA256SUMS file next to them. macOS quarantines binaries downloaded through a browser — either use curl as above, or clear the flag with xattr -d com.apple.quarantine tf-hub.

Usage

Sign in once; the session is stored locally and refreshes itself:

tf-hub login

Commands are grouped by domain — tf-hub <domain> <action>:

tf-hub me                       # your profile
tf-hub colleagues list          # company directory
tf-hub documents list --mine    # your documents
tf-hub game show 2026-5         # The Game leaderboard for a month
tf-hub absences create --type HOLIDAY --date-from 2026-07-01 --date-to 2026-07-04 \
  --hours 32 --general-description "Vacation"
tf-hub worklogs create --description "API work" --time-spent 90 \
  --started 2026-06-10 --cost-category-id 3

Run tf-hub --help for the full list of domains, tf-hub <domain> --help for its actions, and add --json to any data command for machine-readable output.

MCP

The same operations are available as MCP tools over stdio. Sign in first, then register the server with your AI client — for Claude Code:

claude mcp add tf-hub -- tf-hub mcp-server

Tools carry read-only/destructive annotations, so well-behaved clients auto-approve reads and ask before deletes. If your client caps the number of tools, narrow the surface:

tf-hub mcp-server --toolsets worklogs,absences,me   # only some domains
tf-hub mcp-server --read-only                       # no writes at all

Security

  • Session tokens live in ~/.config/tf-hub/credentials.json with owner-only permissions — the same storage model npm, gcloud and docker use.
  • The browser login page pins all third-party scripts with Subresource Integrity hashes.
  • No telemetry. Outbound traffic is limited to the TF Hub API, Google's token endpoint (session refresh) and the npm registry (an update check at most every five minutes, disable with NO_UPDATE_NOTIFIER=1).

Development

bun install
bun run dev -- whoami   # run locally with args
bun test                # tests
bun run typecheck       # types
bun run lint            # oxlint (quality gate)
bun run fmt             # oxfmt
bun run knip            # unused exports, files and dependencies
bun run build           # bundle to dist/index.mjs
bun run generate        # refresh the OpenAPI spec and regenerate Zod schemas

Architecture notes and conventions live in AGENTS.md.

License

MIT © Ondřej Misák