Shipping production-ready Twitch integrations faster

The TypeScript-first Twitch connectivity toolkit

velho wraps authentication, Helix REST, EventSub, and chat utilities into one cohesive toolkit. Build verified, resilient Twitch experiences without stitching together brittle SDKs.

Developer-first features

Opinionated utilities for Twitch integrations with cohesive ergonomics, predictable types, and guardrails for production workloads.

Authentication

Complete OAuth 2.0 flows

Authorization code exchange, client credentials, and refresh token flows with automatic caching and CLI setup tool.

Helix client

Typed REST requests

Get, post, and patch Helix endpoints while parsing rate-limit headers and validating responses with Zod.

Chat & EventSub

Realtime hooks

Join chat, send messages, and handle WebSocket EventSub notifications with a resilient reconnect strategy.

CLI Tool

Interactive OAuth setup

One-command setup tool that handles the entire OAuth flow and saves credentials automatically to your .env file.

Everything you need in one toolkit

Compose the modules you need or use them together—each piece is designed to stay out of your way.

Sample workflow

Authenticate, fetch, and react in minutes

Authenticate your app, query Helix, and listen to EventSub notifications without leaving TypeScript.

CLI setup tool Token caching Schema validation Resilient WebSockets Rate-limit awareness
import {
  HelixClient,
  TwitchAuth,
  EventSubWebSocketClient
} from "velho";

const auth = new TwitchAuth({
  clientId: process.env.TWITCH_CLIENT_ID!,
  clientSecret: process.env.TWITCH_CLIENT_SECRET!,
});

const helix = new HelixClient({ clientId: auth.clientId, auth });
const { data } = await helix.get("/streams", { query: { first: 5 } });

const ws = new EventSubWebSocketClient({ autoReconnect: true });
ws.on("notification", ({ subscription, event }) => {
  console.log(subscription.type, event);
});

Built for teams shipping Twitch-native products

Bring your entire integration workflow under a single dependency. velho handles the repetitive scaffolding so you can focus on features.

Secure defaults

EventSub webhook helpers verify signatures with constant-time comparison and respond to challenges automatically.

Bring your fetch

Inject any fetch-compatible implementation to instrument requests or target alternative runtimes.

Observability ready

All clients expose structured events so you can instrument logs, metrics, or traces without custom plumbing.

Why velho

Type safety without ceremony

Composable modules layer Zod validation on top of Twitch APIs, pairing runtime guarantees with first-class TypeScript support.

"velho" keeps your integration code concise and verifiable, even as Twitch expands its API surface.

Get started now

Install via npm, drop in your Twitch credentials, and explore the guided docs to wire up your first integration.