Skip to main content
Airstore presents your sources and tools as a filesystem. You can mount it locally for development or in cloud sandboxes for production.

Local mounting

Mount Airstore to a directory on your machine:
airstore mount ~/airstore
Now browse it like any folder:
ls ~/airstore/sources/
# gmail  github  gdrive

ls ~/airstore/tools/
# github  linear  slack

cat ~/airstore/sources/gmail/inbox/001-meeting.eml

How mounting works

Airstore uses FUSE (Filesystem in Userspace) to present a virtual filesystem:
  1. You mount to a directory (e.g., ~/airstore)
  2. File operations (read, list) go through the FUSE layer
  3. FUSE forwards requests to the Airstore gateway
  4. Gateway returns cached data from materialized views
  5. Results appear as normal files
The filesystem is virtual—files don’t exist on disk. They’re fetched on demand from the gateway.

Mount options

# Mount to a specific path
airstore mount /path/to/mount

# Mount in foreground (useful for debugging)
airstore mount ~/airstore --foreground

# Mount with specific sources only
airstore mount ~/airstore --sources=gmail,github

Unmounting

airstore unmount ~/airstore

# Or use the system command
umount ~/airstore        # Linux
diskutil unmount ~/airstore  # macOS

Persistent mounting

To mount automatically on boot:
# Create a launch agent
cat > ~/Library/LaunchAgents/com.airstore.mount.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.airstore.mount</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/airstore</string>
        <string>mount</string>
        <string>/Users/you/airstore</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>
EOF

# Load it
launchctl load ~/Library/LaunchAgents/com.airstore.mount.plist

Cloud mounting

Mount Airstore in cloud sandboxes (Modal, E2B, Daytona) using token-based auth:
# Generate a mount token
airstore token create --name="modal-sandbox"

# In your cloud environment
airstore mount /airstore --token=ast_xxxxxxxxxxxx
The same sources and tools are available in the cloud as locally.

Multiple mounts

You can mount the same Airstore account from multiple machines:
  • All mounts share the same sources and smart folders
  • Changes sync across mounts periodically
  • Each mount can have different permissions
# On your laptop
airstore mount ~/airstore

# On a cloud VM
airstore mount /airstore --token=ast_xxxxxxxxxxxx

# Both see the same data

Troubleshooting

Mount fails with “FUSE not found” Install FUSE for your platform:
# macOS
brew install macfuse

# Ubuntu/Debian
sudo apt install fuse3

# Fedora
sudo dnf install fuse3
Mount point is not empty The mount directory must be empty:
mkdir -p ~/airstore
airstore mount ~/airstore
Permission denied On Linux, you may need to be in the fuse group:
sudo usermod -aG fuse $USER
# Log out and back in

Next steps