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

@inis-run/strands-agents

v0.1.1

Published

inis.run sandbox provider for Strands Agents

Readme

@inis-run/strands-agents

inis.run sandbox provider for Strands Agents' Sandbox surface (@strands-agents/sdk). Gives Strands its standard sandbox_bash and sandbox_file_editor tools backed by a real, isolated inis.run session instead of the local host.

npm License: MIT Node

Verified against @strands-agents/sdk==1.11.2. AbortSignal cancellation here can only preempt at a chunk boundary (Session.execStream has no cancellation parameter of its own) — the companion Python package doesn't share this limitation, because asyncio task cancellation preempts regardless.

Install

npm install @inis-run/strands-agents @strands-agents/sdk @inis-run/sdk

Quickstart: attached (recommended)

One inis.run session for the whole conversation, owned by your app:

import { Client } from "@inis-run/sdk";
import { Agent } from "@strands-agents/sdk";
import { InisSandbox } from "@inis-run/strands-agents";

const client = new Client();
const session = await client.sessions.create({ egress: { mode: "deny" } });
const sandbox = InisSandbox.wrap(session);

const agent = new Agent({ model, sandbox });
await agent.invoke("list files in /workspace");
await agent.invoke("now write hello.txt");
await session.destroy(); // this app owns the session; the adapter never will

Owned: the adapter creates and destroys the session for you

import { Agent } from "@strands-agents/sdk";
import { InisSandbox } from "@inis-run/strands-agents";

const sandbox = await InisSandbox.create(undefined, { egress: { mode: "deny" } });
try {
  const agent = new Agent({ model, sandbox });
  await agent.invoke("...");
} finally {
  await sandbox.close();
}

InisSandbox.create()'s opts is CreateSessionOptions from the core @inis-run/sdk (plus an optional workspaceRoot), so connections — inline Connections, scoped credential leases bound to a specific external API origin — works the same way:

const sandbox = await InisSandbox.create(undefined, {
  connections: [
    {
      name: "stripe",
      origin: "https://api.stripe.com",
      authentication: { type: "bearer", secret: process.env.STRIPE_KEY! },
      allow: { methods: ["GET"], paths: ["/v1/customers"] },
    },
  ],
});

Either way, new Agent({ sandbox }) registers sandbox_bash and sandbox_file_editor automatically — no separate tool wiring needed. Session create/destroy, egress, connections, pause/resume, and fork stay host-controlled.

What it does

  • executeStreaming (shell) — distinct stdout/stderr chunks, then a final ExecutionResult
  • executeCodeStreaming — inherited from PosixShellSandbox
  • Binary-safe readFile/writeFile/removeFile/listFiles, routed to inis.run's native /files endpoints
  • Per-call timeout — genuinely kills the remote process on expiry
  • Per-call env — via a validated shell prefix (inis.run's exec API fixes env at session creation)
  • AbortSignal cancellation — real, but only at a chunk boundary, see above

Notes

PTY isn't implemented: no equivalent in the Sandbox shell/file contract. ExecutionResult.outputFiles is always empty, same as every other shell-based Sandbox — read a produced file with readFile instead.

Development

npm install
npm run build   # core @inis-run/sdk must be built first: (cd ../typescript && npm ci && npm run build)
npx tsc --noEmit
npm test

Links

Built and run in the EU. Your code and data never leave Europe.

License

MIT — see LICENSE.