
For backup instructions, see [How to Back Up Your Data](/how-to/cloud-backup/). For privacy implications, see [Privacy Model](/concepts/privacy/).

## Storage locations

Daneel uses two browser storage mechanisms:

### Chrome Storage (`chrome.storage.local`)

Stores settings, credentials, and lightweight metadata.

| Key | Content |
|-----|---------|
| `selectedProvider` | Active LLM provider name |
| `selectedModelId` | Active WebGPU model ID |
| `selectedEmbeddingModelId` | Active embedding model ID |
| `claudeApiKeyEncrypted` | AES-256-GCM encrypted Claude API key |
| `claudeModelId` | Selected Claude model |
| `ollamaBaseUrl` | Ollama server URL |
| `daneel:mcp:servers` | Registered MCP server list |
| `daneel:mcp:disabled` | Disabled MCP server IDs |
| `daneel:mcp:catalog` | Cached MCP tool manifests |
| `daneel:credential:{url}` | MCP server credentials |
| `daneel:agents` | Agent definitions |
| `daneel:docker:config` | Docker Companion configuration |
| `daneel:cloud:azure-sas` | Azure Blob Storage SAS URL |
| `daneel:cloud:s3-config` | S3 credentials (JSON) |
| Widget preferences | Theme, color style, position, panel width |
| License data | JWT token, plan tier, feature flags |
| Telemetry preferences | Analytics opt-in/out |

### IndexedDB

Stores vector embeddings and large datasets, partitioned by domain or vault.

| Store | Partitioning | Content |
|-------|-------------|---------|
| `embeddings:{hostname}` | Per domain | Site page chunks + vector embeddings |
| `vault:{vaultId}` | Per vault | Document chunks + vector embeddings |
| Knowledge graph data | Per vault | Entities, relationships, graph structure |

### CacheStorage

Model files downloaded from HuggingFace are cached in the browser's CacheStorage. These persist across sessions and enable offline use after first download. Daneel uses two separate named caches:

| Cache name | Populated by | Contents |
|------------|--------------|----------|
| `transformers-cache` | transformers.js runtime | ONNX shards, tokenizer files, configuration JSON for LLM and embedding models, plus tokenizer files for GLiNER |
| `daneel-ner-models` | NER worker | GLiNER ONNX binaries, fetched directly outside the transformers.js pipeline |

To see how much disk each cached model uses and to reclaim space, see [How to Reclaim Disk Space from Local Models](/how-to/models-storage/).

## Free vs. paid limits

| Feature | Free | Paid |
|---------|------|------|
| Page Chat | Unlimited | Unlimited |
| Site Search | Unlimited | Unlimited |
| Vaults | 1 | Unlimited |
| Documents per vault | 5 | 50 |
| Max file size | 1 MB | 10 MB |
| Max characters per document | 50,000 | 500,000 |
| Max chunks per document | 100 | 1,000 |
| MCP servers | Unlimited | Unlimited |
| Agents | Unlimited | Unlimited |
| Knowledge Graph | Yes | Yes |
| Cloud backup | Yes | Yes |

## License

One-time payment via Stripe. After purchase, you receive a `DAN-XXXX-XXXX-XXXX` license key. The license is verified via a signed JWT with a 7-day TTL and offline caching — you don't need to be online continuously.

## Data portability

All data can be exported as a portable `.zip` file via **Settings > Data Backup**. Cloud backup to Azure Blob Storage or S3-compatible storage is also available. See [How to Back Up Your Data](/how-to/cloud-backup/).

**Excluded from exports** (for security): API keys, cloud storage credentials (SAS URLs, S3 secrets).
