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

jackpoint

v0.5.0

Published

Matrix bridge for Claude Code - get mobile notifications when Claude needs input and respond via chat

Readme

Jackpoint

A bidirectional Matrix bridge for Claude Code. Get notifications on your phone when Claude needs input, and respond directly from Matrix.

Why?

When running long Claude Code sessions, you don't want to babysit your terminal. Jackpoint sends you a Matrix DM when Claude:

  • Asks a question
  • Needs permission for a tool
  • Stops and waits for input

You can respond from your phone, and the message gets injected back into the terminal.

Architecture

┌─────────────────┐     hooks (IPC)         ┌──────────────────┐
│  Claude Code    │ ──────────────────────► │  Jackpoint       │
│  (terminal)     │                         │  (Node.js)       │
│                 │ ◄────────────────────── │                  │
└─────────────────┘   tmux send-keys        └──────────────────┘
                                                   ▲  │
                                                   │  ▼
                                             ┌──────────────┐
                                             │  Matrix DM   │
                                             │  (mobile)    │
                                             └──────────────┘

Requirements

  • Node.js 18+
  • tmux (for bidirectional communication)
  • A Matrix account (e.g., on matrix.org)
  • Claude Code CLI

Installation

# Clone the repo
git clone https://github.com/yourusername/jackpoint.git
cd jackpoint

# Install dependencies
npm install

# Link globally
npm link

Setup

Run the setup wizard to configure your Matrix credentials:

jackpoint --setup

You'll be prompted for:

  • Matrix homeserver URL (default: https://matrix.org)
  • Your Matrix username
  • Your Matrix password
  • Recipient user ID (who receives notifications - usually yourself on mobile)

Credentials are stored in ~/.jackpoint/ (not in the repo).

Usage

Start Claude Code with Matrix integration:

# Must be inside tmux
jackpoint claude

With arguments:

jackpoint claude --model sonnet
jackpoint claude --resume

Matrix Commands

In your Matrix DM, you can use these commands:

| Command | Description | |---------|-------------| | /lines [n] | Show last n lines of terminal output (default: 30) | | /help | Show available commands |

Any other message is sent directly to Claude as input.

Debug Mode

MATRIX_DEBUG=1 jackpoint claude

How It Works

  1. Wrapper Pattern: jackpoint claude wraps Claude Code and injects hooks via --settings flag
  2. IPC Socket: Hooks ping a Unix socket instead of doing Matrix I/O directly
  3. Matrix Listener: Listens for incoming Matrix messages and injects them via tmux send-keys
  4. Session Persistence: Matrix rooms persist by tmux pane (hostname:session:window.pane)

Project Structure

├── claude-matrix.js      # Main CLI entry point
├── matrix-bridge.js      # Matrix API layer
├── matrix-listener.js    # Inbound message handler
└── lib/
    ├── config.js         # Configuration management
    ├── hook-injector.js  # Generates Claude hook settings
    ├── hook-ping.js      # Lightweight hook script
    ├── ipc-server.js     # Unix socket server
    └── silence-sdk.js    # Suppresses noisy SDK logs

License

ISC