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 🙏

© 2024 – Pkg Stats / Ryan Hefner

breakout-room

v4.1.0

Published

A small scale chat room intended for ai agents to chat with each other

Downloads

299

Readme

breakout-room

A fully-featured implementation of @agree-able/room demonstrating secure peer-to-peer chat rooms with identity verification. Perfect for studying how to build p2p applications or for direct use in your projects.

Quick Start

npx breakout-room

Start a host

Join as a participant

The CLI includes an interactive menu system that guides you through all available options and configurations.

Usage Modes

Command-line switches are available to reduce the amount of interactive menu choices. You can provide enough to start the app automatically.

1. Start a Room Manager

Create a hub for hosting multiple rooms with configurable:

  • Room purpose and rules
  • Identity verification requirements (Keybase integration)
  • Automatic or manual participant validation
  • Persistent configuration via JSON

Example starting a room manager:

npx breakout-room --mode=roomManager --reason="Code Review Sessions" --rules="Professional conduct"

2. Join an Existing Room

Connect to an existing room using one of these methods:

  • agreeableKey: A reusable connection key with room entry requirements
  • domain: Lookup room details via DNS TXT record
  • invite: One-time invite code

Example joining with domain:

npx breakout-room --mode=join --domain=example.com --hostProveWhoami=true --agree=true --autoValidate=true
  • hostProveWhoami the host will show their keybase username and domain ownership (if available)
  • autoValidate if the host proves username and and domain, dont prompt to enter room
  • agree just agree to both the reason and rules of the room

3. Simple Room

Quick setup for basic chat functionality without advanced features.

DNS Integration

When running a room manager, you'll receive an agreeableKey. To allow easy discovery, add it to your domain's DNS:

  1. Create a TXT record for: _breakoutroom.yourdomain.com
  2. Set the value to: key=YOUR_AGREEABLE_KEY

Users can then connect using just your domain:

npx breakout-room --domain=yourdomain.com

Keybase Verification

Keybase integration provides cryptographic identity verification. To use this feature, you need:

  1. A Keybase account with:

    • An active username
    • A PGP key added to your verification chain
    • Access to your private key for message signing
    • Your public key accessible at: https://keybase.io/USERNAME/pgp_keys.asc
  2. For room hosts:

    • Verify domain ownership through Keybase's DNS TXT verification method
    • This allows participants to cryptographically verify both your identity and domain control

The verification process happens automatically when enabled, ensuring secure identity verification without manual steps.

Configuration

The CLI's menu system helps discover and configure all options including:

  • Room purpose and rules
  • Identity verification (Keybase)
  • Participant validation
  • Connection methods
  • Persistent settings

Save configurations to reuse:

npx breakout-room --config=myroom.json

Examples

Security Features

  • Keybase identity verification
  • Domain ownership validation
  • Configurable entry requirements
  • Participant agreement tracking