---
title: Portability
description: Agents as transferable artifacts — URLs, QR codes, USB, and offline files
tags: [portability, distribution, offline]
dependencies: [encryption, zero-infra]
---

# Portability

An agent should be easy to transfer across mediums without breaking.

## Principles

- URL as artifact: a shareable link can carry encrypted config state.
- Medium-independent transfer: link, QR, file, removable storage.
- No mandatory account wall before first use.
- Zero migration friction between hosts.
- Zero platform coupling beyond a standards-compliant browser.

## Distribution patterns

### Hyperlink

```
https://agent.example.com/#<encrypted-config>
```

### QR code

```js
const link = `https://agent.example.com/#${base64(encrypt(config, key))}`;
QRCode.toCanvas(document.getElementById('qr'), link);
```

### Static files

```sh
cp -r agent/ /mnt/usb/
zip -r agent.zip agent/
scp -r agent/ edge-device:/var/www/
```

### Paper backup

Printed QR codes provide durable offline storage for compact payloads.

## What portable excludes

- mandatory server-side state
- forced sign-in for bootstrap
- platform-specific app install requirements
- runtime code dependencies that cannot be bundled

## For agents

1. Encode full transferable state where feasible
2. Offer QR export/import for human-friendly transfer
3. Test startup from a clean `file://` environment
4. Support file-based export/import for restricted environments
5. Assume recipient has only a browser
