# arisros/dotfiles architecture

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

- Interactive diagram: https://gitdiagram.com/arisros/dotfiles
- Repository: https://github.com/arisros/dotfiles

## Overview

This repository is a cross-machine dotfiles and workstation setup. The main workflow is to run the installer, link configurations into the home directory, and use the configured shell, editors, and desktop tools. Optional local modules and plugins extend machine-specific setup; secrets are configured separately through sandi. The graph follows the README and file tree; implementation details for several subsystems were not sampled, so their internal wiring is omitted.

Main entry points: [`install.sh`](https://github.com/arisros/dotfiles/blob/main/install.sh) (Installer), [`__scripts__/sandi-setup.sh`](https://github.com/arisros/dotfiles/blob/main/__scripts__/sandi-setup.sh) (Secret setup), [`__scripts__/rpdash.py`](https://github.com/arisros/dotfiles/blob/main/__scripts__/rpdash.py) (RunPod dashboard), [`__macos__`](https://github.com/arisros/dotfiles/tree/main/__macos__) (macOS setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Machine setup"]
  node_installer["Installer<br/>[install.sh]"]
  node_macos["macOS setup"]
  node_brew["Package lists"]
end

subgraph group_shell["Shell and secrets"]
  node_shellconfig["Zsh configuration"]
  node_gitconfig["Git and SSH"]
  node_sshconfig["SSH configuration"]
  node_sandi["Secret setup<br/>[sandi-setup.sh]"]
end

subgraph group_workstation["Workstation tools"]
  node_nvim["Neovim"]
  node_desktop["Desktop configuration"]
  node_sketchybar["Status bar"]
  node_tmux["Terminal multiplexer"]
  node_rpdash["RunPod dashboard<br/>[rpdash.py]"]
end

subgraph group_assistants["Developer assistants"]
  node_opencode["OpenCode configuration<br/>[opencode]"]
end

node_user(("User"))
node_home["Home environment"]
node_localmodules["Local modules"]
node_plugins["Local plugins"]
node_passstore[("Password store")]
node_runpoduser(("Dashboard user"))
node_runpod["RunPod GraphQL API"]

node_user -->|"runs"| node_installer
node_installer -->|"stows configs"| node_home
node_installer -->|"runs setup"| node_sandi
node_macos -->|"configures"| node_home
node_brew -->|"supports setup"| node_home
node_shellconfig -->|"configures"| node_home
node_gitconfig -->|"configures"| node_home
node_sshconfig -->|"configures"| node_home
node_nvim -->|"configures"| node_home
node_desktop -->|"configures"| node_home
node_sketchybar -->|"configures"| node_home
node_tmux -->|"configures"| node_home
node_opencode -->|"configures"| node_home
node_localmodules -.->|"optional config"| node_home
node_plugins -.->|"optional setup"| node_localmodules
node_sandi -.->|"checks remote setting"| node_localmodules
node_sandi -.->|"sets up"| node_passstore
node_runpoduser -->|"runs"| node_rpdash
node_rpdash -->|"queries"| node_runpod

click node_installer "https://github.com/arisros/dotfiles/blob/main/install.sh"
click node_macos "https://github.com/arisros/dotfiles/tree/main/__macos__"
click node_brew "https://github.com/arisros/dotfiles/tree/main/__brew__"
click node_shellconfig "https://github.com/arisros/dotfiles/tree/main/zsh"
click node_gitconfig "https://github.com/arisros/dotfiles/tree/main/git"
click node_sshconfig "https://github.com/arisros/dotfiles/tree/main/ssh"
click node_sandi "https://github.com/arisros/dotfiles/blob/main/__scripts__/sandi-setup.sh"
click node_nvim "https://github.com/arisros/dotfiles/tree/main/nvim"
click node_desktop "https://github.com/arisros/dotfiles/tree/main/aerospace"
click node_sketchybar "https://github.com/arisros/dotfiles/tree/main/sketchybar"
click node_tmux "https://github.com/arisros/dotfiles/tree/main/tmux"
click node_opencode "https://github.com/arisros/dotfiles/tree/main/opencode/.config/opencode"
click node_rpdash "https://github.com/arisros/dotfiles/blob/main/__scripts__/rpdash.py"

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_installer,node_macos,node_brew,node_user,node_runpoduser toneBlue
class node_shellconfig,node_gitconfig,node_sshconfig,node_sandi,node_passstore toneAmber
class node_nvim,node_desktop,node_sketchybar,node_tmux,node_rpdash,node_runpod toneMint
class node_opencode toneRose
class node_home,node_localmodules,node_plugins toneIndigo
```

## Components

### Machine setup

- [Installer](https://github.com/arisros/dotfiles/blob/main/install.sh): `install.sh`
- [macOS setup](https://github.com/arisros/dotfiles/tree/main/__macos__): `__macos__`
- [Package lists](https://github.com/arisros/dotfiles/tree/main/__brew__): `__brew__`

### Shell and secrets

- [Zsh configuration](https://github.com/arisros/dotfiles/tree/main/zsh): `zsh`
- [Git and SSH](https://github.com/arisros/dotfiles/tree/main/git): `git`
- [SSH configuration](https://github.com/arisros/dotfiles/tree/main/ssh): `ssh`
- [Secret setup](https://github.com/arisros/dotfiles/blob/main/__scripts__/sandi-setup.sh): `__scripts__/sandi-setup.sh`

### Workstation tools

- [Neovim](https://github.com/arisros/dotfiles/tree/main/nvim): `nvim`
- [Desktop configuration](https://github.com/arisros/dotfiles/tree/main/aerospace): `aerospace`
- [Status bar](https://github.com/arisros/dotfiles/tree/main/sketchybar): `sketchybar`
- [Terminal multiplexer](https://github.com/arisros/dotfiles/tree/main/tmux): `tmux`
- [RunPod dashboard](https://github.com/arisros/dotfiles/blob/main/__scripts__/rpdash.py): `__scripts__/rpdash.py`

### Developer assistants

- [OpenCode configuration](https://github.com/arisros/dotfiles/tree/main/opencode/.config/opencode): `opencode/.config/opencode`

### Other components

- **User**
- **Home environment**
- **Local modules**
- **Local plugins**
- **Password store**
- **Dashboard user**
- **RunPod GraphQL API**

## Connections

- User → Installer: runs
- Installer → Home environment: stows configs
- Installer → Secret setup: runs setup
- macOS setup → Home environment: configures
- Package lists → Home environment: supports setup
- Zsh configuration → Home environment: configures
- Git and SSH → Home environment: configures
- SSH configuration → Home environment: configures
- Neovim → Home environment: configures
- Desktop configuration → Home environment: configures
- Status bar → Home environment: configures
- Terminal multiplexer → Home environment: configures
- OpenCode configuration → Home environment: configures
- Local modules → Home environment: optional config
- Local plugins → Local modules: optional setup
- Secret setup → Local modules: checks remote setting
- Secret setup → Password store: sets up
- Dashboard user → RunPod dashboard: runs
- RunPod dashboard → RunPod GraphQL API: queries
