Mount Airstore in cloud environments like Modal, E2B, Daytona, or any remote VM.
Token-based authentication
Generate a mount token for cloud use:
airstore token create --name="modal-sandbox"
Token created: ast_xxxxxxxxxxxxxxxxxxxx
Use this token to mount in cloud environments:
airstore mount /airstore --token=ast_xxxxxxxxxxxxxxxxxxxx
Warning: Store this token securely. It cannot be retrieved later.
Mount in cloud
Use the token to mount without interactive login:
airstore mount /airstore --token=ast_xxxxxxxxxxxxxxxxxxxx
Modal
import modal
app = modal.App("airstore-agent")
@app.function(
secrets=[modal.Secret.from_name("airstore-token")],
image=modal.Image.debian_slim().run_commands([
"curl -sSL https://airstore.dev/install.sh | sh",
"apt-get update && apt-get install -y fuse3"
])
)
def run_agent():
import subprocess
import os
# Mount Airstore
subprocess.run([
"airstore", "mount", "/airstore",
f"--token={os.environ['AIRSTORE_TOKEN']}"
])
# Run Claude Code
subprocess.run(["claude", "Review the PRs"], cwd="/airstore")
E2B
import { Sandbox } from '@e2b/sdk';
const sandbox = await Sandbox.create();
// Install Airstore
await sandbox.process.start({
cmd: 'curl -sSL https://airstore.dev/install.sh | sh'
});
// Mount with token
await sandbox.process.start({
cmd: `airstore mount /airstore --token=${process.env.AIRSTORE_TOKEN}`
});
// Run agent
await sandbox.process.start({
cmd: 'cd /airstore && claude "Analyze the emails"'
});
Daytona
# daytona.yaml
image: ubuntu:22.04
setup:
- curl -sSL https://airstore.dev/install.sh | sh
- apt-get update && apt-get install -y fuse3
- airstore mount /airstore --token=$AIRSTORE_TOKEN
Docker
FROM ubuntu:22.04
# Install dependencies
RUN apt-get update && apt-get install -y \
curl \
fuse3 \
&& rm -rf /var/lib/apt/lists/*
# Install Airstore
RUN curl -sSL https://airstore.dev/install.sh | sh
# Mount script
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
#!/bin/bash
# entrypoint.sh
# Mount Airstore
airstore mount /airstore --token=$AIRSTORE_TOKEN
# Run your agent
exec "$@"
docker run -e AIRSTORE_TOKEN=ast_xxx --privileged myagent
Docker requires --privileged or --cap-add SYS_ADMIN --device /dev/fuse for FUSE mounts.
Token management
List tokens
Name Created Last used
modal-sandbox 2024-01-15 10:00 2024-01-15 14:30
e2b-dev 2024-01-10 09:00 2024-01-14 16:45
Revoke a token
airstore token revoke modal-sandbox
Token permissions
Create tokens with limited permissions:
# Read-only token
airstore token create --name="readonly" --readonly
# Specific sources only
airstore token create --name="gmail-only" --sources=gmail
# Time-limited token
airstore token create --name="temp" --expires="24h"
Shared filesystem
Multiple cloud instances can mount the same Airstore:
- All instances see the same sources and smart folders
- Changes sync across instances periodically
- Each instance can have different token permissions
Environment variables
Set the token via environment variable:
export AIRSTORE_TOKEN=ast_xxxxxxxxxxxxxxxxxxxx
airstore mount /airstore
See Environment Variables for all options.
Next steps