Documentation Index
Fetch the complete documentation index at: https://docs.mirage.strukto.ai/llms.txt
Use this file to discover all available pages before exploring further.
Installation
Install Mirage:
If you are not using uv:
For resources with extra dependencies, install the matching extra:
Create a Workspace
Start with the RAM resource so you can try Mirage without credentials.
import asyncio
from mirage import MountMode, Workspace
from mirage.resource.ram import RAMResource
async def main() -> None:
ws = Workspace({"/data": RAMResource()}, mode=MountMode.WRITE)
await ws.execute('echo "hello mirage" | tee /data/hello.txt')
result = await ws.execute("cat /data/hello.txt")
print(await result.stdout_str())
await ws.close()
asyncio.run(main())
Run Commands
Once a resource is mounted, you can use Mirage like a shell over your
virtual filesystem:
import asyncio
from mirage import MountMode, Workspace
from mirage.resource.ram import RAMResource
async def main() -> None:
ws = Workspace({"/data": RAMResource()}, mode=MountMode.WRITE)
await ws.execute('echo \'{"name": "alice"}\' | tee /data/user.json')
result = await ws.execute("ls /data/")
print(await result.stdout_str())
result = await ws.execute("cat /data/hello.txt")
print(await result.stdout_str())
result = await ws.execute('jq ".name" /data/user.json')
print(await result.stdout_str())
result = await ws.execute("grep hello /data/hello.txt")
print(await result.stdout_str())
await ws.close()
asyncio.run(main())
Next Steps