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

@sandkasten/sdk

v0.1.0

Published

TypeScript SDK for Sandkasten sandbox runtime

Readme

Sandkasten TypeScript SDK

This package provides a lightweight, promise‑based client for the Sandkasten HTTP API. It is shipped separately from the Go daemon and can be installed via npm/pnpm/yarn.

Installation

# using pnpm (recommended)
pnpm add @sandkasten/sdk

# or with npm
npm install @sandkasten/sdk

Quick start

import { SandboxClient } from "@sandkasten/sdk";

async function main() {
  const client = new SandboxClient({ baseUrl: "http://localhost:8080", apiKey: "sk-test" });
  const session = await client.createSession();
  const execResult = await session.exec("echo hello");
  console.log(execResult.output);
}

All of the SDK types (SessionInfo, ExecResult, etc.) are exported from the package and correspond directly to the JSON objects returned by the daemon. The TypeScript definitions are kept in src/types.ts and are intentionally very small; new fields added to the server should be reflected here as needed. The unit tests included with the repository validate that the client sends the expected requests and decodes responses correctly.

Development

cd sdk
pnpm install       # install dev dependencies
pnpm run build      # compile to `dist/`
pnpm run test       # run the unit tests (vitest)

Type checking is performed by tsc as part of build; the project is configured for strict mode.

Releasing a new version

The monorepo publishes the SDK automatically on a tag push. The GitHub Actions workflow:

  • checks out the repo
  • runs pnpm install, pnpm build and pnpm test in sdk
  • bumps package.json to the tagged version and publishes using pnpm publish

To manually publish locally you can also run:

cd sdk
pnpm version 1.2.3 # or use `npm version` to update package.json
pnpm publish --access public

Make sure you have an NPM_TOKEN environment variable configured or set in the repository secrets so that pnpm publish can authenticate.

Note: the SDK is published as a public package. Use --access public with pnpm if your npm registry defaults to restricted packages.

API compatibility

The TypeScript types mirror the server's API structures. Any changes to the API should be accompanied by:

  1. updating the corresponding TypeScript interfaces in src/types.ts (and exporting them in src/index.ts);
  2. adding or updating unit tests under sdk/tests/ to cover the new behaviour;
  3. incrementing the package version before publishing (the release workflow will set the version from the git tag).

For a deeper guarantee you can run the integration tests against a local daemon (go test ./tests/integration/...) and exercise the client from TypeScript in the same environment, but the existing mocks are usually sufficient for catching mismatches.