Integrations
How agent sandboxes use AIStor Memory end-to-end — OpenAI Codex / Agents SDK, GitHub Codespaces, Daytona, E2B, Vercel Sandbox, Apple container, OpenShift, OpenSandbox, OpenShell, Devin. What's ready, what's coming, and what's vendor-blocked.
Every agent runtime ships its own ephemeral sandbox: the VM is torn down when the run ends, and everything the agent did dies with it. AIStor Memory gives that sandbox durable memory — one mount of an AIStor Memory Bucket (a cortex) the agent both works in and remembers through, so the work and the knowledge outlive the sandbox and re-mount into the next one.
Memory takes three forms on that one cortex:
- Workspace — active work. The real files the agent edits with the tools it
already uses (
git, editors,sqlite, build tools), surviving teardown because they live in the durable cortex, not in session residue. - Long-term memory — what the agent learned. The memory files agents
look for (
CLAUDE.md,AGENTS.md,MEMORY.md) warmed on mount, writable per-object annotations, read-only object metadata and tags, and server-side search across the whole cortex. - Vault — authority to act. The secrets an approved agent receives, leased into the agent at launch and never written to the mount.
The mount also warms the agent's memory and installs its skill during startup, so the model arrives oriented. Each page below walks an agent sandbox through using AIStor Memory end-to-end.
Status at a glance
Status reflects what you can run today, not aspiration:
- Ready — a working image / Feature / template you can build today from the public CDN binaries, exercised by an automated CI test that mounts and exercises the integration.
- Coming soon — the pieces exist but aren't packaged for self-serve yet.
- Requires vendor partnership — blocked on a change only the runtime vendor can make.
| Runtime | Status | How it ships |
|---|---|---|
| OpenAI Codex / Agents SDK | Ready | Self-hosted sandbox image + mount wrapper; CLI / Agents SDK / Codex SDK CI test |
| GitHub Codespaces | Ready | devcontainer Feature on GHCR (ghcr.io/miniohq/aimem) |
| Daytona | Ready | linux-vm snapshot + sandbox.process mount command |
| E2B | Ready | e2b.Dockerfile template + usage.ts |
| Vercel Sandbox | Ready | @vercel/sandbox SDK upload + sudo FUSE mount (Firecracker microVM) |
| Apple container | Validated (experimental) | arm64 image on macOS; FUSE inside the Linux VM; optional host SMB re-export |
| Red Hat OpenShift | Ready | Deployment + SCC (/dev/fuse + SYS_ADMIN); CI smoke |
| OpenSandbox | Ready | Host-side mount + host-volume bind (no in-sandbox /dev/fuse) |
| OpenShell | Coming soon | filesystem_policy template + host-side reference bring-up |
| Devin | Requires Devin partnership | Needs Devin-side image bundling + a control-plane field |
One clarification on the boundary cases:
- Codex Cloud (the hosted offering) is not supported: its container-snapshot lifecycle is incompatible with a live FUSE daemon. Self-hosted Codex sandboxes are Ready (above).
What every mount needs first
AIStor Memory mounts only a cortex — there is no plain-bucket mode. Before the mount succeeds the runtime must supply, and AIStor Memory verifies at startup:
- an explicit
--endpoint-urlflag (or theendpoint_url:config key) — the mount cannot be verified without one; - real signing credentials (
AIMEM_ACCESS_KEY/AIMEM_SECRET_KEY, optionalAIMEM_SESSION_TOKEN) — anonymous or default-chain mounts are refused; - a target that is already a cortex on a paid-tier AIStor deployment —
create one with
aimem cortex create <name>(see the CLI).
If any precondition fails, AIStor Memory exits before mounting with a specific
message (e.g. '<bucket>' is not a Memory Bucket (cortex)).
Shared mount shape
Every integration ends up running the same invocation inside the sandbox:
the positional cortex + mountpoint plus one --config YAML that carries
every tunable. Credentials stay in the environment (AIMEM_ACCESS_KEY /
AIMEM_SECRET_KEY) — never a flag, never in the YAML. The wrapper writes
the config from the sandbox's env vars, so the mount command carries no
other flags:
# /etc/aimem/mount.yaml — written by the wrapper from the sandbox env
version: "1.0"
endpoint_url: https://aistor.example.com # from $AIMEM_ENDPOINT
local: /var/cache/aimem
agent: auto # from $AIMEM_AGENT
foreground: trueaimem "${AIMEM_CORTEX}" "${AIMEM_MOUNTPOINT:-/workspace}" --config /etc/aimem/mount.yamlThe version: "1.0" key is required and must be a quoted string. For pure
env-var-driven sandboxes that carry no config file, every YAML key is also a
flag or AIMEM_* env var — e.g. the staging directory via --local "${AIMEM_LOCAL}" or the AIMEM_LOCAL env var — but --config is the
canonical form.
Each integration bakes this into a small aimem-mount wrapper that maps
environment variables to those flags, so the runtime only has to inject env
vars — the shape every sandbox already supports. Credentials
(AIMEM_ACCESS_KEY, AIMEM_SECRET_KEY, optional AIMEM_SESSION_TOKEN) are
read from the environment and never baked into an image; they are not config
keys. What changes per runtime is how the binary lands (a baked-in image
asset, a devcontainer Feature, a host-side install) and how env vars are
injected. See Quick start and
Configuration for the full config vocabulary.
The staging directory is required
AIStor Memory stages every open-for-write file on fast local storage and
uploads atomically on close — that's what lets git, editors, sqlite, and
the rest of the agent's tools work over an object store.
(mmap and copy_file_range return ENOSYS, but the kernel falls back
to read+write over that same staging file, so memory-mapped tools
still function.)
The staging directory is required and has no auto-detection. Set it with
the local: key in a --config YAML (canonical), the --local <DIR>
flag, or the AIMEM_LOCAL environment variable — exactly one is
required. Size it for the agent's expected
open-write working set — NVMe is recommended. See the
aimem page for the full write-up.
What AIStor Memory brings to a sandbox
The three forms of memory, as a sandbox sees them:
- Workspace — a durable mount. Sandbox VMs are ephemeral by design; the cortex survives the VM. The agent's working files are real files that persist to AIStor, so you can hand off a session ID and resume the same workspace on the next one.
- Long-term memory, warmed on mount.
CLAUDE.md,.claude/,AGENTS.md,.cursorrules, etc. are warmed onto local disk on mount so the agent's first read is a hit; writable per-object annotations (.aimem/annot/…), read-only object metadata and tags, and server-side search round out durable long-term memory across the whole cortex — all backed by the same cortex the workspace lives in. - Vault — secrets, leased at launch.
aimem secret provisionfetches the granted secrets — from the cortex over the Memory API by default (--cortex), or from a generic HTTP secret store as a bridge (--store-endpoint, e.g. HashiCorp Vault/OpenBao) when they already live there — and injects them into the agent as environment variables at launch. The source credential stays with the launcher and is scrubbed from the agent's environment; aimem persists no secret bytes locally. - The aimem skill, three ways. Every mount teaches the agent how to use all
of the above — no
--flagrequired. (1) A read-time preamble overlay prepends AIStor Memory-usage guidance to instruction files (CLAUDE.md/AGENTS.md/.cursorrules) as they are read from the mount — in memory only, disabled when the mount root is a git repo, opt out withAIMEM_PREAMBLE_OVERLAY=0. (2) On every mount AIStor Memory installs the skill into$HOME/.agents/skills/aimem/(Codex CLI, Cursor, Gemini CLI, Copilot) and$HOME/.claude/skills/aimem/(Claude Code) — offline, create-only, opt out withAIMEM_INSTALL_SKILL=0. (3) For agents whose reasoning runs outside the sandbox,npx skills add minio/skills/aimempulls it from github.com/minio/skills. See the aimem page for the full write-up.
Picking a starting point
If you're operating one of the listed runtimes already, jump to the matching page. The Ready rows — OpenAI Codex / Agents SDK, Codespaces, Daytona, E2B, Vercel Sandbox, OpenShift, OpenSandbox — are self-serve today: an image, a Feature, a template, or a host-mount script that installs the released binaries from the public CDN. Apple container is validated experimentally. OpenShell is close behind. Devin needs a change only its platform team can make.
Memory Bucket API
The AIStor Memory API a cortex speaks — the /_mem/v1 endpoints, the cortex storage contract (hidden, always compressed, encrypted at rest with a KMS, always stamped), and how each aimem verb maps onto the wire API. A paid-tier AIStor feature.
OpenAI Codex / Agents SDK
Give a self-hosted Codex or Agents SDK sandbox durable memory — mount an AIStor Memory Bucket (cortex) at /workspace, the workspace the agent works in and remembers through, so apply_patch edits survive teardown.