inis-strands-agents
Native inis.run sandbox provider for Strands Agents' strands.sandbox surface. Gives Strands its standard sandbox_bash and sandbox_file_editor tools backed by a real, isolated inis.run session instead of the local host.
Verified against strands-agents==1.50.2.
Install
pip install inis-strands-agents
Quickstart: attached (recommended)
One inis.run session for the whole conversation, owned by your app:
from inis import AsyncClient
from strands import Agent
from inis_strands_agents import InisSandbox
client = AsyncClient()
session = await client.sessions.create(egress_default="deny")
sandbox = InisSandbox.wrap(session)
agent = Agent(model="...", sandbox=sandbox)
await agent.invoke_async("list files in /workspace")
await agent.invoke_async("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
from strands import Agent
from inis_strands_agents import InisSandbox
async with await InisSandbox.create(egress_default="deny") as sandbox:
agent = Agent(model="...", sandbox=sandbox)
await agent.invoke_async("...")
# session destroyed on exit
Either way, Agent(sandbox=...) registers sandbox_bash and
sandbox_file_editor automatically — no separate tool wiring needed.
Session create/destroy, egress, pause/resume, and fork stay
host-controlled.
What it does
execute_streaming(shell) — distinct stdout/stderr chunks, then a finalExecutionResultexecute_code_streaming— inherited fromPosixShellSandbox- Binary-safe
read_file/write_file/remove_file/list_files, routed to inis.run's native/filesendpoints - 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) - Cancellation (asyncio task cancellation) — closes the underlying stream and kills the remote command
Notes
PTY isn't implemented: strands.sandbox's shell/file contract has no equivalent. ExecutionResult.output_files is always empty, same as every other shell-based Sandbox — read a produced file with read_file instead.
Development
pip install -e ".[dev]"
pip install -e ../python # inis core SDK, editable
pytest
Links
- Docs: docs.inis.run
- Source: github.com/inis-run/sdk/tree/main/strands-agents-python
- Homepage: inis.run
Built and run in the EU. Your code and data never leave Europe.
License
MIT — see LICENSE.
Metadata
Release files for inis-strands-agents 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| inis_strands_agents-0.1.1.tar.gz | 12.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| inis_strands_agents-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.4 kB
Release files / inis_strands_agents-0.1.1.tar.gz
| Download URL | inis_strands_agents-0.1.1.tar.gz |
|---|---|
| Size | 12.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
66263e9c2db80f63b21007fffe6e6a607fff2ad0ab1ab4fd4a8306c6e8c61eae
|
|
BLAKE2b-256 checksum How to use checksums |
c420edc5bcce59686d2528ad83039a3c53e6caedff027063a9120ea947813568
|
| 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 Aug 8, 2026.
Transparency logRelease files / inis_strands_agents-0.1.1-py3-none-any.whl
| Download URL | inis_strands_agents-0.1.1-py3-none-any.whl |
|---|---|
| Size | 9.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9852cb8e742e47de197a70afeff95d9cf0be14db3182e8e88f5c2b1f90cde62c
|
|
BLAKE2b-256 checksum How to use checksums |
6c240ad37db93c6c3403ef007a6f55360d304561fdc64d50a3f5f391dad780fd
|
| 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 Aug 8, 2026.
Transparency log