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 falls back to E2B's own e2b.app, and the failure is a connection to somebody else's fleet.

Params passed to a single call beat a client's params, which beat the environment. That is E2B's own rule and this package keeps it.

Why this one is a wrapper, when the TypeScript one is a copy

The TypeScript client cannot talk to Impello at all. Its validateApiKey runs inside the ApiClient constructor, is not exported, has no off switch, and accepts only e2b_. So @impello/sdk had to be a copy.

Python has no e2b_ pattern anywhere. It takes an imp_ key today. So the only thing missing is where to send the request, and that is all this package supplies.

It supplies it through ClientFactory._resolve_api_params, which is E2B's own seam for binding defaults. That means one method is overridden rather than the twelve descriptors on Sandbox, and e2b itself is untouched: importing impello does not retarget a plain e2b call in the same process, and it never writes to os.environ. A test holds that.

This package will be replaced

A permanent wrapper is the worst outcome. pip show impello prints e2b, and the client sends a publisher: e2b header to our own servers. So the wrapper ships now and the full clone lands before we take payments, with e2b/api/client/ regenerated from our own spec.

See docs/decisions/sdk-self-contained.md.

Develop

python -m venv .venv
./.venv/bin/pip install -e . pytest
./.venv/bin/python -m pytest

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

impello-0.2.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

impello-0.2.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file impello-0.2.0.tar.gz.

File metadata

  • Download URL: impello-0.2.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for impello-0.2.0.tar.gz
Algorithm Hash digest
SHA256 99632f352f27b0bf1f1b1ff32c383b530f72874488dc9d50de5edc07688d09e4
MD5 697ec285523c67544b33a05d95a5b047
BLAKE2b-256 931a5b3b49ab4a79897896dabd7ee5a769ec3e6335a78db9d98c46e22e9eb741

See more details on using hashes here.

Provenance

The following attestation bundles were made for impello-0.2.0.tar.gz:

Publisher: publish-sdk-python.yml on 21-Dreams/impello

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file impello-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: impello-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for impello-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 76d7997861731d348f954e3ddcf0e89f283a3882def4788ff2a8c5d82e6c3866
MD5 3ed4fdd74ee8e212ee0490d10cdbd8e6
BLAKE2b-256 4d5f4476b63012483361ac4049243668868bb5cdcd6f4a646de3ef687f739b41

See more details on using hashes here.

Provenance

The following attestation bundles were made for impello-0.2.0-py3-none-any.whl:

Publisher: publish-sdk-python.yml on 21-Dreams/impello

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

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