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

condensationai

v0.2.0

Published

Condensation SDK for sandbox infrastructure and the shared Codegraff wallet

Readme

condensationai

JavaScript and TypeScript SDK for Condensation. The package ships ESM, CommonJS, and TypeScript declarations with no runtime dependencies. Requires Node.js 20+.

Install

npm install condensationai

Sign in at https://workspaces.condensation.ai/account using Codegraff and create a sandbox API key. Set CONDENSATION_API_KEY in your server environment. Never embed it in browser code or commit it to Git.

import { Condensation } from 'condensationai';

const client = new Condensation();
const wallet = await client.wallet();
console.log(wallet.purchasedMicroUsd / 1_000_000);

const sandbox = await client.create({ language: 'python', autoStopMinutes: 5 });
try {
  const result = await client.run(sandbox.id, 'python -c "print(1 + 1)"');
  console.log(result.result);
} finally {
  await client.delete(sandbox.id);
}

The same example works in JavaScript. CommonJS: const { Condensation } = require('condensationai').

Billing and access

Purchased credits use the existing Codegraff balance, shared with nanohub and Condensation. This first SDK release routes sandboxes through Codegraff's existing gateway and uses that gateway's resource rates, not the Condensation fleet rates on the pricing page. Condensation monthly bonuses do not fund this gateway path; Build checkout remains disabled until that integration is ready. Inspect the sandbox meter and configure a small auto-stop window. Stopped sandboxes can still incur storage charges; delete them when finished.

SDK keys can read their owner's wallet and manage that account's sandboxes. They cannot access inference, GitHub credentials, chat sessions, billing mutations, or admin endpoints. They see the owner's Codegraff sandboxes too. The configured monthly key budget is checked by the gateway at request admission; concurrent or already-running work can exceed a budget. The shared account balance remains the funding source.

API

  • wallet(), list(), get(id), create(options)
  • run(id, command, options), runAsync(id, command, options)
  • execution(id, execId), cancelExecution(id, execId)
  • uploadBase64(id, path, contentBase64), downloadBase64(id, path)
  • meter(id), stop(id), start(id), delete(id)

File operations reflect the gateway API. Its current download implementation is text-oriented; arbitrary binary round trips are not guaranteed.

new Condensation({ apiKey, baseUrl, timeoutMs, fetch }) supports explicit configuration and injected fetch for tests. The default base URL is https://api.condensation.ai; the default timeout is 120 seconds.

Requests never follow redirects or retry automatically. On a failed create, command, or deletion, inspect state before repeating it: the server may have completed the operation. CondensationError.status carries the HTTP status (zero for a transport failure), and .details carries the API error body.

Source contract: api/openapi.json in the Condensation repository.

Own-fleet preview (0.2.0)

Use client.fleet for Condensation's own Cube infrastructure. The original client.create API still uses the existing gateway provider and its pricing.

Own-fleet machines have 2 vCPU and 2000 MiB memory. Rates are $0.03/vCPU-hour plus $0.01/GiB-hour, with ephemeral storage included. Leases are 60–1800 seconds. Creation requires a UUID request ID, reserves purchased account credits, and is never automatically retried. Preserve the same request ID after an uncertain response. Confirm a terminal state after deletion to verify cleanup and settlement.

The fleet supports pricing, list, get, create, command execution, base64 file upload/download (1 MB), and permanent deletion. Python and shell are available. See https://workspaces.condensation.ai/docs/fleet for examples and MCP setup.

The Python distribution includes the condensation-mcp stdio command. Configure CONDENSATION_API_KEY with an account-scoped key from the account page.