---
name: mountable
description: Give this agent a persistent POSIX workspace on Mountable. Use when files must outlive a sandbox or be shared between agents. The API key stays on this host; a sandbox receives only a one-time ticket.
---

# Mountable workspace

Mountable is a shared POSIX filesystem. This host holds `MOUNTABLE_API_KEY`.
A sandbox mounts with a one-time ticket and never receives the API key.

## Tools

Use the Mountable MCP server (`npx -y mountable-cli mcp`):

1. `list_filesystems` or `create_filesystem` to pick a workspace. Creating a
   filesystem is not idempotent: after a timeout, list and look for the name
   before creating again.
2. `filesystem_usage` to read stored bytes, file count and 30-day traffic
   against quotas. Storage and downloads are billed.
3. `create_mount_ticket` with a new `idempotency_key` for this job. Reuse that
   key only to retry this ticket. The result includes `ticket` and
   `mount_command`. If `ticket` is null, do not mount. Follow
   https://mountable.io/docs/agents#retries.
4. Hand the sandbox only the ticket, on stdin of `mountable mount
   --ticket-stdin --json`. Wait for `{"event":"mounted"}` before using the
   directory. The default command is:

```bash
mkdir -p /mnt/mountable && printf '%s\n' "$MOUNTABLE_TICKET" | mountable mount --ticket-stdin --json /mnt/mountable
```

5. When the job finishes, `revoke_mount_session` with the session id. Revoke
   is idempotent. A revoked mount stops admitting new operations within 15
   seconds.

Do not put the API key or the ticket in a command-line argument, a log, or a
prompt you echo back. The sandbox needs Linux FUSE (`/dev/fuse`).
