diff --git a/README.md b/README.md index 6ce9a75..3541c03 100644 --- a/README.md +++ b/README.md @@ -85,11 +85,64 @@ $EDITOR .env ## Architecture -

- fstack architecture -

- -`fstack` treats your Mac as the control plane and a remote Linux box as the runtime. Claude Code orchestrates; Codex/opencode handle heavy lifting; Docker sandboxes risky work; sidecars review cheaply; hooks enforce safety at every tool call. +`fstack` splits agent work between a Mac control plane and a remote Linux runtime. The Mac stays where the human works, while the server owns long-running sessions, containers, cheap sidecar calls, browser automation, and messaging integrations. + +```mermaid +flowchart LR + subgraph Mac["Mac control plane"] + IDE["IDE + terminal"] + Claude["Claude Code"] + Codex["Codex backend/debug"] + Browser["Local browser"] + end + + subgraph Link["Connection layer"] + SSHFS["SSHFS"] + Systemd["systemd"] + Tunnels["SSH tunnels"] + end + + subgraph Linux["Remote Linux runtime"] + Tmux["tmux sessions"] + Docker["Docker containers"] + CDP["Chrome CDP"] + Messaging["WhatsApp + Gmail"] + end + + subgraph Surfaces["Agent surfaces"] + Skills["60+ skills"] + Hooks["17 safety hooks"] + Memory["MEMORY.md"] + Slash["slash commands"] + end + + subgraph Sidecars["Stateless sidecars"] + Groq["Groq"] + Nvidia["NVIDIA"] + Gemini["Gemini"] + end + + IDE --> Claude + Claude --> Codex + Browser --> Claude + Claude --> SSHFS + Claude --> Systemd + Claude --> Tunnels + SSHFS --> Tmux + Systemd --> Tmux + Tunnels --> Tmux + Tmux --> Docker + Tmux --> CDP + Tmux --> Messaging + Claude --> Skills + Hooks --> Claude + Memory --> Claude + Slash --> Claude + Skills --> Tmux + Tmux --> Groq + Tmux --> Nvidia + Tmux --> Gemini +``` Read the deep dive: [`docs/architecture.md`](docs/architecture.md)