Skip to content

Overview

AutoMobile persists state across sessions using SQLite for metadata and the filesystem for larger payloads.

flowchart TB
    subgraph Runtime["Runtime Data"]
        NavGraph["🗺️ Navigation Graph"]
        Sessions["📱 Device Sessions"]
        Config["⚙️ Configuration"]
    end

    subgraph Storage["Persistent Storage"]
        SQLite["🗄️ SQLite
~/.auto-mobile/auto-mobile.db"] Snapshots["📸 Snapshots
~/.automobile/snapshots/"] Migrations["🔄 Migrations
src/db/migrations/"] end NavGraph --> SQLite Sessions --> SQLite Config --> SQLite SQLite -.->|"schema updates"| Migrations SQLite -.->|"metadata"| Snapshots classDef runtime fill:#FF3300,stroke-width:0px,color:white; classDef storage fill:#525FE1,stroke-width:0px,color:white; class NavGraph,Sessions,Config runtime; class SQLite,Snapshots,Migrations storage;

Storage Locations

Path Purpose
~/.auto-mobile/auto-mobile.db SQLite database for metadata
~/.automobile/snapshots/ Device state snapshot payloads
~/.auto-mobile/*.sock Unix sockets for configuration

Topics

Document Description
Database Migrations Schema management with Kysely
Device Snapshots Capture and restore device state
Appearance Sync Host/device appearance configuration

Database Schema

The SQLite database stores:

  • Navigation graph - Screens, edges, and fingerprints
  • Device sessions - Active device connections
  • Snapshot metadata - Index of captured snapshots
  • Configuration - Feature flags and settings

Migration System

Migrations run automatically on server startup:

flowchart LR
    Start["Server Start"] --> Check["Check Schema"];
    Check --> Run["Run Pending
Migrations"]; Run --> Ready["Ready"]; classDef step fill:#525FE1,stroke-width:0px,color:white; class Start,Check,Run,Ready step;

See Database Migrations for details on adding new migrations.

Snapshot Storage

Device snapshots use a hybrid approach:

Snapshot Type Metadata Payload
VM Snapshot SQLite Emulator AVD directory
ADB Snapshot SQLite ~/.automobile/snapshots/

See Device Snapshots for capture/restore workflows.