Skip to main content

impello

The Python SDK for Impello sandboxes.

Install

pip install impello

Use

from impello import Sandbox

sandbox = Sandbox.create()
result = sandbox.commands.run("echo hello")

print(result.stdout)

sandbox.pause()

Set your key in the environment, or pass it to each call:

export IMPELLO_API_KEY=imp_...
Sandbox.list(api_key="imp_...")

For a process that talks to more than one account or more than one fleet, bind the settings to a client instead:

from impello import Impello

client = Impello(api_key="imp_...")
sandbox = client.Sandbox.create()

Settings

Every setting reads an IMPELLO_ name first, then the matching E2B_ name.

Variable Default What it does
IMPELLO_API_KEY none The key. Starts with imp_
IMPELLO_DOMAIN sandbox.impello.ai The domain the API and the sandboxes sit on
IMPELLO_API_URL https://api.<domain> The API address. Set this to reach a self-hosted API
IMPELLO_SANDBOX_URL derived from the domain The address a sandbox is reached at
IMPELLO_DEBUG false Talk to http://localhost:3000

The E2B_ fallback is the migration, not politeness. Callers already export E2B_API_KEY, E2B_API_URL and E2B_DOMAIN. Rename when it suits you. Nothing breaks if you never do.

Only the domain has a default. Without one the SDK resolves E2B's own e2b.app, and the failure is a connection to somebody else's fleet, authenticated with a key that host has never seen.

Params passed to a single call beat a client's params, which beat the environment.

This is a copy of E2B's client, not a wrapper around it

impello used to depend on e2b and bind a few defaults underneath it. That worked. It was replaced because of what it said: pip show impello listed e2b as a requirement, and every request carried a publisher: e2b header to our own fleet. Both are things a customer and our own logs can read, and @impello/sdk had already stopped saying them.

So this package is now E2B's MIT-licensed Python client, vendored. The copyright notice stays (LICENSE). It is sandbox scope only — template, volume and secret management are not shipped, matching @impello/sdk. Four tests in tests/test_no_e2b_dependency.py hold the claim: no declared dependency on e2b, no import of it anywhere in the package, publisher: impello on the wire, and no shipped module pointing a customer at e2b.dev.

src/impello/api/client is generated, not written. make generate-api rebuilds it from the API spec in the infra repo. Both tools in that pipeline are pinned, and the pins matter — the Makefile says why.

We do not follow upstream. See docs/decisions/fork-independence.md.

Keys

A key starts with imp_. Keys minted before 2026-08-30 started with e2b_ and no client can make one work — the server compares the whole prefix before it hashes anything. This SDK recognises an old key and says so, rather than letting it become a bare 401:

>>> Sandbox.create(api_key="e2b_...")
AuthenticationException: This key starts with "e2b_" and was minted before
Impello moved to its own key prefix on 2026-08-30. ...

Develop

uv sync
make test
make lint

Metadata

Release files for impello 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for impello 0.3.0
File Size Uploaded Provenance
impello-0.3.0.tar.gz 184.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for impello 0.3.0
File Interpreter ABI Platform
impello-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 514.1 kB

Release files / impello-0.3.0.tar.gz

Download URL impello-0.3.0.tar.gz
Size 184.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e72eb7564d3bff029e5e5c5e3651b33eb786d08f24c9809ea45fd100a1a0e18c
BLAKE2b-256 checksum
How to use checksums
d2941b3af19852b036ed1516dc8519be5e56ae67a9a490a037a0d6ebcdec2db7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.

Transparency log

Release files / impello-0.3.0-py3-none-any.whl

Download URL impello-0.3.0-py3-none-any.whl
Size 329.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
04db46fae9cadc85a1ab180d7c84c7378d0232b7386bfdc0bffe3e04f48eb9bc
BLAKE2b-256 checksum
How to use checksums
23145cf76534d089c7b7b10714e4b3c7df7aaa284890b424cd1631671f7d5f26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.

Transparency log

Security for impello 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for impello-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page