# berjilberjil/myos architecture

> Architecture diagram of the GitHub repository berjilberjil/myos, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/berjilberjil/myos
- Repository: https://github.com/berjilberjil/myos

## Overview

MyOS is a personal life operating system spanning native Mac and iOS clients and a SvelteKit API. Users record daily information, manage life domains, and consult AI features; the clients also expose activity tracking and fitness, nutrition, planning, events, and media features. The sampled server routes show authenticated AI workflows, shared state, and macro-data persistence. The tree documents additional domain endpoints, but their wiring is not sampled, so those links are omitted. The README mostly describes the SvelteKit scaffold rather than product behavior.

Main entry points: [`apps/api/src/lib/server/ai.ts`](https://github.com/berjilberjil/myos/blob/main/apps/api/src/lib/server/ai.ts) (Model resolution), [`apps/api/src/routes/api/macro/+server.ts`](https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/macro/%2Bserver.ts) (Macro dashboard), [`apps/mac/Sources/MyOS/MyOSApp.swift`](https://github.com/berjilberjil/myos/blob/main/apps/mac/Sources/MyOS/MyOSApp.swift) (Mac app), [`apps/ios/Sources/MyOS/MyOSApp.swift`](https://github.com/berjilberjil/myos/blob/main/apps/ios/Sources/MyOS/MyOSApp.swift) (iOS app)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_clients["Native clients"]
  node_mac["Mac app<br/>[MyOSApp.swift]"]
  node_ios["iOS app<br/>[MyOSApp.swift]"]
  node_api_client["API client<br/>[APIClient.swift]"]
  node_share["Share extension"]
end

subgraph group_life["Life management"]
  node_quick_log["Quick log parsing<br/>[+server.ts]"]
  node_image_read["Image reading<br/>[+server.ts]"]
  node_weekly_plan["Weekly plans<br/>[+server.ts]"]
  node_macro["Macro dashboard<br/>[+server.ts]"]
  node_news["Current news<br/>[+server.ts]"]
end

subgraph group_intelligence["AI and insights"]
  node_chat["Mentor chat<br/>[+server.ts]"]
  node_memory["Memory extraction<br/>[+server.ts]"]
  node_suggest["Action suggestions<br/>[+server.ts]"]
end

subgraph group_server["API and persistence"]
  node_ai_models["Model resolution<br/>[ai.ts]"]
  node_model_catalog["Model catalog<br/>[modelCatalog.ts]"]
  node_state_api["State API<br/>[+server.ts]"]
  node_db[("Database access<br/>[db.ts]")]
  node_media_api["Media endpoints<br/>[+server.ts]"]
  node_storage["Private media storage<br/>[storage.ts]"]
end

subgraph group_activity["Activity tracking"]
  node_activity_engine["Activity analytics"]
end

node_user(("User"))
node_ai_provider(("AI provider"))
node_fred(("FRED data"))
node_google_search(("Google Search"))
node_r2[("Cloudflare R2")]

node_user -->|"uses"| node_mac
node_user -->|"uses"| node_ios
node_mac -->|"API access"| node_api_client
node_ios -->|"shares links"| node_share
node_share -->|"queues video"| node_ios
node_chat -->|"resolves model"| node_ai_models
node_memory -->|"resolves model"| node_ai_models
node_suggest -->|"resolves model"| node_ai_models
node_quick_log -->|"resolves model"| node_ai_models
node_image_read -->|"resolves model"| node_ai_models
node_weekly_plan -->|"resolves model"| node_ai_models
node_macro -->|"resolves model"| node_ai_models
node_news -->|"resolves model"| node_ai_models
node_ai_models -->|"uses catalog"| node_model_catalog
node_chat -->|"generates reply"| node_ai_provider
node_memory -->|"extracts memories"| node_ai_provider
node_suggest -->|"generates actions"| node_ai_provider
node_quick_log -->|"structures log"| node_ai_provider
node_image_read -->|"reads images"| node_ai_provider
node_weekly_plan -->|"generates plan"| node_ai_provider
node_macro -->|"reads and writes"| node_db
node_macro -->|"loads metrics"| node_fred
node_macro -->|"estimates metrics"| node_ai_provider
node_news -->|"grounds search"| node_google_search
node_state_api -->|"reads state"| node_db
node_media_api -->|"media operations"| node_storage
node_storage -->|"stores objects"| node_r2
node_activity_engine -->|"provides analytics"| node_mac

click node_mac "https://github.com/berjilberjil/myos/blob/main/apps/mac/Sources/MyOS/MyOSApp.swift"
click node_ios "https://github.com/berjilberjil/myos/blob/main/apps/ios/Sources/MyOS/MyOSApp.swift"
click node_api_client "https://github.com/berjilberjil/myos/blob/main/apps/mac/Sources/MyOS/Support/APIClient.swift"
click node_quick_log "https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/parse/%2Bserver.ts"
click node_image_read "https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/parse-image/%2Bserver.ts"
click node_weekly_plan "https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/plan/%2Bserver.ts"
click node_macro "https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/macro/%2Bserver.ts"
click node_news "https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/news/%2Bserver.ts"
click node_activity_engine "https://github.com/berjilberjil/myos/blob/main/apps/mac/Sources/MyOS/Support/Activity/ActivityEngine.swift"
click node_share "https://github.com/berjilberjil/myos/blob/main/apps/ios/Sources/Share/ShareViewController.swift"
click node_chat "https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/chat/%2Bserver.ts"
click node_memory "https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/memory/%2Bserver.ts"
click node_suggest "https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/suggest/%2Bserver.ts"
click node_ai_models "https://github.com/berjilberjil/myos/blob/main/apps/api/src/lib/server/ai.ts"
click node_model_catalog "https://github.com/berjilberjil/myos/blob/main/apps/api/src/lib/server/modelCatalog.ts"
click node_state_api "https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/state/%2Bserver.ts"
click node_db "https://github.com/berjilberjil/myos/blob/main/apps/api/src/lib/server/db.ts"
click node_media_api "https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/event-media/%2Bserver.ts"
click node_storage "https://github.com/berjilberjil/myos/blob/main/apps/api/src/lib/server/storage.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_mac,node_ios,node_api_client,node_share,node_user toneBlue
class node_quick_log,node_image_read,node_weekly_plan,node_macro,node_news,node_r2 toneAmber
class node_chat,node_memory,node_suggest toneMint
class node_ai_models,node_model_catalog,node_state_api,node_db,node_media_api,node_storage toneRose
class node_activity_engine,node_ai_provider,node_fred,node_google_search toneIndigo
```

## Components

### Native clients

- [Mac app](https://github.com/berjilberjil/myos/blob/main/apps/mac/Sources/MyOS/MyOSApp.swift): `apps/mac/Sources/MyOS/MyOSApp.swift`
- [iOS app](https://github.com/berjilberjil/myos/blob/main/apps/ios/Sources/MyOS/MyOSApp.swift): `apps/ios/Sources/MyOS/MyOSApp.swift`
- [API client](https://github.com/berjilberjil/myos/blob/main/apps/mac/Sources/MyOS/Support/APIClient.swift): `apps/mac/Sources/MyOS/Support/APIClient.swift`
- [Share extension](https://github.com/berjilberjil/myos/blob/main/apps/ios/Sources/Share/ShareViewController.swift): `apps/ios/Sources/Share/ShareViewController.swift`

### Life management

- [Quick log parsing](https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/parse/%2Bserver.ts): `apps/api/src/routes/api/parse/+server.ts`
- [Image reading](https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/parse-image/%2Bserver.ts): `apps/api/src/routes/api/parse-image/+server.ts`
- [Weekly plans](https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/plan/%2Bserver.ts): `apps/api/src/routes/api/plan/+server.ts`
- [Macro dashboard](https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/macro/%2Bserver.ts): `apps/api/src/routes/api/macro/+server.ts`
- [Current news](https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/news/%2Bserver.ts): `apps/api/src/routes/api/news/+server.ts`

### AI and insights

- [Mentor chat](https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/chat/%2Bserver.ts): `apps/api/src/routes/api/chat/+server.ts`
- [Memory extraction](https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/memory/%2Bserver.ts): `apps/api/src/routes/api/memory/+server.ts`
- [Action suggestions](https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/suggest/%2Bserver.ts): `apps/api/src/routes/api/suggest/+server.ts`

### API and persistence

- [Model resolution](https://github.com/berjilberjil/myos/blob/main/apps/api/src/lib/server/ai.ts): `apps/api/src/lib/server/ai.ts`
- [Model catalog](https://github.com/berjilberjil/myos/blob/main/apps/api/src/lib/server/modelCatalog.ts): `apps/api/src/lib/server/modelCatalog.ts`
- [State API](https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/state/%2Bserver.ts): `apps/api/src/routes/api/state/+server.ts`
- [Database access](https://github.com/berjilberjil/myos/blob/main/apps/api/src/lib/server/db.ts): `apps/api/src/lib/server/db.ts`
- [Media endpoints](https://github.com/berjilberjil/myos/blob/main/apps/api/src/routes/api/event-media/%2Bserver.ts): `apps/api/src/routes/api/event-media/+server.ts`
- [Private media storage](https://github.com/berjilberjil/myos/blob/main/apps/api/src/lib/server/storage.ts): `apps/api/src/lib/server/storage.ts`

### Activity tracking

- [Activity analytics](https://github.com/berjilberjil/myos/blob/main/apps/mac/Sources/MyOS/Support/Activity/ActivityEngine.swift): `apps/mac/Sources/MyOS/Support/Activity/ActivityEngine.swift`

### Other components

- **User**
- **AI provider**
- **FRED data**
- **Google Search**
- **Cloudflare R2**

## Connections

- User → Mac app: uses
- User → iOS app: uses
- Mac app → API client: API access
- iOS app → Share extension: shares links
- Share extension → iOS app: queues video
- Mentor chat → Model resolution: resolves model
- Memory extraction → Model resolution: resolves model
- Action suggestions → Model resolution: resolves model
- Quick log parsing → Model resolution: resolves model
- Image reading → Model resolution: resolves model
- Weekly plans → Model resolution: resolves model
- Macro dashboard → Model resolution: resolves model
- Current news → Model resolution: resolves model
- Model resolution → Model catalog: uses catalog
- Mentor chat → AI provider: generates reply
- Memory extraction → AI provider: extracts memories
- Action suggestions → AI provider: generates actions
- Quick log parsing → AI provider: structures log
- Image reading → AI provider: reads images
- Weekly plans → AI provider: generates plan
- Macro dashboard → Database access: reads and writes
- Macro dashboard → FRED data: loads metrics
- Macro dashboard → AI provider: estimates metrics
- Current news → Google Search: grounds search
- State API → Database access: reads state
- Media endpoints → Private media storage: media operations
- Private media storage → Cloudflare R2: stores objects
- Activity analytics → Mac app: provides analytics
