Building a Multi-User Agentic Operating System

Simon Scrapesgo watch the original →

A team-based agentic OS architecture using a three-tier storage model (Notion/Drive, GitHub, and Postgres) to manage shared context, enforce access control, and prevent vendor lock-in.

The Three-Tier Storage Architecture

The system separates data based on who maintains it and its technical requirements to ensure non-technical team members can contribute without breaking agentic workflows. The architecture relies on three distinct layers:

  • Tier 1 (Human-Maintained): Notion or Google Drive serves as the source of truth for global rules (claude.md), brand context, and shared project files. This allows non-technical users to edit content in a familiar markdown interface.
  • Tier 2 (Agent-Maintained): Claude Code manages technical files like skills, settings, and system instructions. These are stored in GitHub to ensure version control and backup, keeping technical clutter away from the team-facing interface.
  • Tier 3 (Version Control): GitHub acts as the master backup for all files, including those synced from Tier 1. This ensures that even if a cloud provider changes, the entire OS remains portable.

Access Control and Memory Isolation

To prevent data leaks while maintaining a shared brain, access must be synchronized across the three tiers. The author recommends mirroring team membership across Notion, GitHub, and the memory database. For memory, the system uses a Postgres database (e.g., Supabase) with Row-Level Security (RLS) to ensure that users can only query memories associated with the clients or departments they are authorized to access.

Individual users maintain a claude.local.md file on their local machines to store personal overrides. These files are git-ignored to keep private preferences out of the shared repository. Outputs generated by the agent are pushed back to Notion for visibility, while the underlying logic remains version-controlled in GitHub.

  • #ai
  • #dev-tooling
  • #architecture

summary by google/gemini-3.1-flash-lite. probably wrong about something. check the source.