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

@going-haywire/farmhand-proxy

v0.1.4

Published

Farmhand — the AI harness for Haywire. A stdio↔HTTP MCP proxy that bridges Claude Code to a running Haywire studio, so studio tools appear mid-session with no reconnect.

Readme

@going-haywire/farmhand-proxy

The Farmhand MCP proxy — a stdio↔HTTP bridge that connects Claude Code (or any MCP client) to a running Haywire studio, so the studio's tools appear mid-session with no reconnect.

This npm package is just the proxy binary. The full beginner experience — onboarding skills that take you from a bare machine to a running studio — ships as the haywire Claude Code plugin, which runs this proxy for you. See the plugin repo.

What it does

Claude Code spawns this over stdio at session start (it always starts, even when no studio is running). Behind it, the proxy dials the Haywire studio's streamable-HTTP /mcp endpoint:

  • Studio down → exposes two sentinel tools: farmhand_studio_status and farmhand_studio_connect (see below).
  • Studio comes up mid-session → the proxy forwards the studio's tools and resources and re-emits list_changed, so they appear with no reconnect.
  • Studio dies → a liveness poll returns the proxy to down-mode and re-emits list_changed again.

Discovery only ever looks inside the current workspace (see below) and only ever guesses one port, the compiled-in default. A studio running under a different project on the same machine — or on a non-default port with no sidecar to read it from — is outside all of that and needs the escape hatch:

  • farmhand_studio_status tells you when this has happened: if something answered but rejected the request with 401, the report says so explicitly and names the port, rather than reporting it identically to "nothing running" — that would leave no way to tell "wrong port" apart from "right port, needs a token I don't have."
  • farmhand_studio_connect(port, token?) points the proxy at that studio for the rest of the session. Nothing is written to disk — set FARMHAND_URL (and read the token yourself into the request) if you want it to persist across restarts instead.

All logs go to stderr; stdout carries only MCP frames.

Usage (as a Claude Code plugin)

You normally don't run this directly — install the plugin and it runs the proxy:

/plugin marketplace add going-haywire/claude-plugin
/plugin install haywire@haywire-marketplace

Configuration (environment variables)

| Variable | Default | Purpose | | --------------------- | ------------------------------ | -------------------------------------------------------------------------- | | FARMHAND_URL | (discovered; see below) | The studio's streamable-HTTP MCP endpoint. Set only to override discovery. | | FARMHAND_TOKEN_PATH | (derived from the workspace) | Explicit path to the bearer-token file. | | HAYWIRE_WORKSPACE | — | Workspace root; token read from <ws>/.haywire/farmhand_token. | | CLAUDE_PROJECT_DIR | (set by Claude Code) | Fallback workspace root when the plugin runs it. | | FARMHAND_POLL_MS | 2000 | Studio discovery / liveness poll interval. |

The endpoint is resolved at each connect attempt, not at startup — the studio may not exist when the proxy launches. Precedence: FARMHAND_URL → the url (or port) in the .haywire/studio.json sidecar the studio writes beside the token → http://127.0.0.1:8124/mcp. That last value only mirrors the default of the studio's network.port setting, which users can change; the sidecar is the authority whenever it exists.

The bearer token is read lazily — the file does not exist until the studio has run once.

License

MIT