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

vitrus

v0.2.7

Published

TypeScript client for interfacing with the Vitrus SDK

Readme

Vitrus

latest version install size NPM downloads weekly

LinkedIn cover - 1 (4) A TypeScript client for multi Agent-World-Actor orchestration, with easy-to-use spatial perception Workflows. For detailed documentation and more examples access Vitrus Docs.

💡 Tip: If anything takes more than 2 minutes to setup, ask in our Discord channel.

Installation

# Using npm
npm install vitrus

# Using bun
bun add vitrus

Communication

Agent–actor traffic (commands, responses, broadcasts, events) uses Websockets as the core transport. The client connects to AI agents over WebSocket once for handshake (API key, world ID).

Authentication

Get an API Key

import Vitrus from "vitrus";

// Initialize the client with all options
const vitrus = new Vitrus({
  apiKey: process.env["VITRUS_API_KEY"],
});

Workflows

// running a basic workflow
const result = await vitrus.workflow("hello-world", {
  prompt: "hello world!",
});

console.log(result);

Workflows are processed in server-side GPUs (e.g. Nvidia A100), and are custom per server.

Available Workflows

We are continously updating the available workflows, and keeping them up to date with state-of-the-art (SOTA) AI models. For the latest list of workflows, you can execute:

const workflows = vitrus.list_workflows();
console.log(workflows);

Worlds and Actors

Create a world at app.vitrus.ai.

import Vitrus from "vitrus";

// Initialize the client
const vitrus = new Vitrus({
  apiKey: "your-api-key",
 // baseUrl: "ws://<dao-server>:<port>" defines an alternate server
});

Actors actions

import Vitrus from "vitrus";

const vitrus = new Vitrus({
  apiKey: "<your-api-key>",
  world: "<selected-world-id>",
});

const actor = await vitrus.actor("forest", {
  droid: "r2d2",
  weapon: "that little electric thing!",
  purpose: `find Luke to give him the princess' hologram message about the death star` 
});

actor.on("walk", (args: any) => {
  console.log("received", args);
  return "I roll";
});

actor.broadcast("status" , { alive: true });

Agents

On the Agent side, once connected to, the actor can be treated as "functions".

import Vitrus from "vitrus";

const vitrus = new Vitrus({
  apiKey: "<your-api-key>",
  world: "<world-id>", //must match actor's world
});

const actor = await vitrus.actor("forest");

const resp = await actor.run("walk", {
  direction: "front",
});

Actor → Agent events

Ad-hoc events let an actor notify agents about local state changes.

// actor side
actor.event("voice_activity", { data: true });

// agent side
actor.listen("voice_activity", (args) => {
  console.log("voice activity:", args);
});

How Vitrus works internally

Vitrus workflows, worlds, actors and agents runs on top of Distributed Actor Orchestration (DAO). A lightweight cloud system that enables the cross-communication of agents-world-actors.