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

@loom-agent/sdk

v1.1.0

Published

Public developer SDK for the Loom agent platform: define agents, tools, skills, and run them locally or remotely through stable contracts.

Readme

@loom-agent/sdk

Public developer SDK for Loom V1.0 — Unified Agent Platform.

Loom is a durable agent platform: define agents, tools, and skills through stable public contracts, run them locally or remotely, observe them through the Control Plane, and extend the runtime with providers/tools/skills/bots.

The SDK is a thin, stable facade over the existing durable Loom runtime. It does not introduce a second runtime: createLoomApp composes StateStore, AgentLoop, the tool/skill runtimes, the adaptive orchestrator, the daemon, and the control plane exactly as the CLI already does.

Install

npm install @loom-agent/sdk

Requires Node.js >= 18.18 (LTS recommended).

Quick start

import {
  defineAgent,
  defineTool,
  defineSkill,
  createLoomApp,
} from "@loom-agent/sdk";

const coder = defineAgent({id: "coder", role: "coder", provider: "mock"});

const app = createLoomApp({
  name: "coding-team",
  agents: [coder],
  provider: {id: "mock"},
});

const result = await app.run({goal: "Write a hello world function"});
console.log(result.status, result.result);

Embedded runtime (no CLI)

const app = await createLoomApp({agents: [coder], provider: {id: "mock"}});
const result = await app.run({goal: "..."});
await app.stop();

Daemon / background mode

const app = createLoomApp({agents: [coder], provider: {id: "mock"}});
const {daemonId, controlUrl} = await app.start(); // durable job execution + control plane
// ... later
await app.stop();

Extension registry

app.registerProvider(myProvider);
app.registerTool(defineTool({name: "ping", description: "ping", execute: async () => "pong"}));
app.registerSkill(defineSkill({name: "review", description: "code review"}));
app.registerBotAdapter(defineBot({id: "discord", agent: "assistant", transport}));

SDK tools run through the existing ToolExecutor, so they inherit permissions, approval, idempotency, tracing, result limits, and workspace policy — they cannot bypass the runtime's guardrails.

Events

const off = app.onEvent((event) => console.log(event.type, event.agentId));

API client

import {LoomClient} from "@loom-agent/sdk/client";
const loom = new LoomClient({baseUrl: "http://127.0.0.1:4777"});
const {sessionToken, csrfToken} = await loom.login(operatorToken);
const jobs = await loom.jobs.list();
await loom.approvals.approve(approvalId);

Compatibility policy

| API group | Stability | Promise | | --- | --- | --- | | defineAgent, defineTool, defineSkill, defineBot, createLoomApp, core contracts | Stable | Backward compatible within 1.x | | /api/v1 Control API | Stable | No breaking changes within 1.x; /api/v2 only on major bump | | Events (LoomEvent) | Stable | eventVersion included; new event types are additive | | WorldAdapter, advanced route extensions | Experimental | May change within minor versions |

Breaking changes to stable public API require a major release. Experimental APIs are clearly marked and may evolve within minor releases.

What Loom is NOT (V1.0)

Loom V1.0 is a stable single-controller platform. It does not include multi-controller HA, distributed consensus, distributed storage, full mesh networking, NAT traversal (STUN/TURN/ICE), arbitrary P2P, or universal exactly-once external side effects. It guarantees durable logical identities, replay-safe supported operations, idempotent tool-ledger behavior, and a lease/fencing authority for remote work.