DEPLOYMENTS

launchd on macOS, systemd on Linux. Gateway daemon, schedule daemon, keep-alive, logs.

10 / 14·ops·v0.2.81

Topologies alpi is designed to support. Each section is a reference shape — pick the closest one to what you want, read the trade-offs, adapt. For the primitives each shape leans on see PROFILES.md (identity + isolation) and ALP.md (the wire protocol).

Licence reminder up front: personal / non-production use by individuals is always free under BSL 1.1. Production deployment inside a legal entity (company, team, org) requires a commercial licence from Satoshi Ltd. — see the LICENSE file and contact info@satoshi-ltd.com for arrangements. The shapes below are what's technically possible; which of them you can deploy commercially without a licence is covered in the licence itself.

1. Laptop only

The baseline. One profile, one machine, TUI for chat, optional gateway for messaging.

┌─────────────────────────────────────┐
│ laptop                              │
│                                     │
│   alpi (TUI)                        │
│     │                               │
│     ├─ ~/.alpi/  (default profile)  │
│     ├─ gateway daemon (optional)    │
│     │    └─ Telegram / IMAP / Gmail │
│     └─ schedule daemon              │
└─────────────────────────────────────┘

2. Laptop + home server

Heavy work (schedules, long research, cron jobs) runs on a home server; interactive chat stays on the laptop. Linked via ALP over Tailscale (or over Unix sockets if you're on the same machine, but that'd just be two profiles — see topology 3).

┌──────────────────┐                ┌──────────────────────┐
│ laptop           │                │ home server          │
│                  │   ALP.2 over   │                      │
│  alpi (TUI)      │───Tailscale───▶│  alpi gateway + alp  │
│  ~/.alpi/        │                │  ~/.alpi/            │
│  peers: home     │                │  peers: laptop       │
│                  │◀───────────────│  (reaches back only  │
│                  │   link.ask     │   for link.ask)      │
└──────────────────┘                └──────────────────────┘

3. One machine, many profiles

Same machine, multiple profiles with different roles, linked intra-profile via ALP.1 (Unix sockets). This is the "army of alpis" starter kit on a single host.

┌────────────────────────────────────────────────────┐
│ single machine                                     │
│                                                    │
│  ~/.alpi/profiles/assistant/  ← daily driver       │
│  ~/.alpi/profiles/researcher/ ← deep-research role │
│  ~/.alpi/profiles/cron/       ← scheduled jobs     │
│                                                    │
│  intra-machine ALP = Unix-domain sockets           │
│      (~/.alpi/profiles/<name>/alp/alp.sock)        │
│                                                    │
│  assistant  ──@researcher──▶  researcher           │
│  assistant  ──@cron──────▶    cron                 │
│  researcher ──@cron──────▶    cron                 │
└────────────────────────────────────────────────────┘

4. Multi-device personal

Your alpis follow you across devices (laptop + desktop + phone) over Tailscale. Each device runs its own profile with its own identity; all mutual peers.

┌──────────────┐       ┌──────────────────┐       ┌──────────────┐
│ laptop       │       │ phone (Termux /  │       │ home desktop │
│ alpi         │◀──────│  iSH)            │──────▶│ alpi         │
│              │       │  alpi (minimal)  │       │              │
└──────┬───────┘       └────────┬─────────┘       └──────┬───────┘
       │                        │                        │
       └────────── ALP.2 over Tailscale ──────────────────┘
                 (every device pinned to every other)

5. Family / small team

Multiple humans, each with their own alpi, optionally sharing a room. Hub-anchored.

┌──────────────┐       ┌──────────────┐       ┌──────────────┐
│ Jane's alpi  │       │ Raj's alpi   │       │ Mia's alpi   │
│ (laptop)     │       │ (laptop)     │       │ (laptop)     │
└──────┬───────┘       └──────┬───────┘       └──────┬───────┘
       │                      │                      │
       └──────────────────────┴──────────────────────┘
                              │
                   ┌──────────▼───────────┐
                   │ home-server alpi     │
                   │ (the room hub)       │
                   │                      │
                   │ room: "household"    │
                   │   members: Jane,     │
                   │            Raj, Mia  │
                   └──────────────────────┘

6. Enterprise — "an army of alpis"

Per-employee profiles, mesh linked via ALP.2 over Tailscale or a VPN. Shared services (research-bot, tools-bot) as pinned peers with narrow capabilities. Audit trail centralised.

┌──────────────────────────────────────────────────────────────┐
│ corporate Tailscale network                                  │
│                                                              │
│  ┌──────┐  ┌──────┐  ┌──────┐  ┌──────┐  ┌──────┐            │
│  │Jane  │  │Raj   │  │Mia   │  │Léa   │  │... N │            │
│  │alpi  │  │alpi  │  │alpi  │  │alpi  │  │      │            │
│  └──┬───┘  └──┬───┘  └──┬───┘  └──┬───┘  └──┬───┘            │
│     │         │         │         │         │                │
│     └─────────┴─────────┴─────────┴─────────┘                │
│                       │                                      │
│              ┌────────┴─────────┐                            │
│              │                  │                            │
│    ┌─────────▼──────┐    ┌──────▼─────────┐                  │
│    │ research-bot   │    │ tools-bot      │                  │
│    │ (shared, RO)   │    │ (HR queries,   │                  │
│    │                │    │  calendar, …)  │                  │
│    └────────────────┘    └────────────────┘                  │
│                       │                                      │
│              ┌────────▼──────────┐                           │
│              │ audit + log hub   │                           │
│              │ (aggregates       │                           │
│              │  agent.log,       │                           │
│              │  approval.log)    │                           │
│              └───────────────────┘                           │
└──────────────────────────────────────────────────────────────┘

What alpi does not try to solve at enterprise scale

Deliberately out of scope, so users don't wait for features that aren't coming:

Choosing your shape

You are…Start withUpgrade path
A single user on one machine(1) Laptop only→ (4) Multi-device when you get a second device.
A user with a NAS / home server(2) Laptop + home server→ (3) add specialised roles on the home server.
A user wanting role-based alpis(3) One machine, many profiles→ (5) if the household wants in.
A family / small team(5) Family / small team→ (6) when it stops being a household.
A company(6) Enterprise (requires commercial licence)