The parts of Mod
Mod's core is an open-source layer for people building agents. It holds your agent's state, syncs it across machines, starts the machine the work needs, and decides what each agent may touch. Your agent code does not care where it runs: a laptop, a VM that cold-starts for one task, or the cloud.
You write the agent. Mod handles the parts every agent ends up rebuilding.
A session is an append-only log of every message, tool call and result. Kill the machine and the agent resumes from it.
sessionsThe same sessions and documents on every device and VM, offline first. Nothing to copy, nothing to reconcile.
sessions · documentsWhere work runs is never part of an address. A worker claims a call wherever it runs, and a VM cold-starts with the session's state already there.
workersA session is the unit of access. Share one thread without the project, and grant running commands separately from editing documents.
sessions · workersDocuments merge per character, so several agents and a person can write one plan at once. Code stays in git, with every crossing an explicit command.
documents · sourcesClaude Code, Codex, Cursor or your own agent get the same tools, and every write is attributed and can be undone.
toolsThe contract
Each part below says what Mod decides and what is left to you. Read the green column as the contract: those rules do not bend per app or per agent, and code that works around them will lose work or leak access. The blue column is where you build.
Fixed in the system. Every person, agent, app and device can count on it.
What you build, bring or configure on top.
| Part | Mod decides | You decide |
|---|---|---|
| Worldthe tree · root | One tree per person. Everything has a place in it. | How you arrange it. |
| Projectsthe tree · folders with members | A project is a folder with members, and the unit you share. | Which folders become projects. |
| Documentsthe tree · documents | Merge per character, live on every device, keep their history. | What they say and which app draws them. |
| Sourcesthe tree · folders with files | Code stays in git, placed beside its documents. Crossing into it is always a command. | Your repositories, branches and machines. |
| Version controlhistory | Documents keep every change on the log. Code keeps it in git. | When to name a version, and your git host. |
| Sessionsrunning work · processes | A session is an append-only log, and the unit of work and of access. | The agent, model and instructions in it. |
| Harnessesrunning work · drivers | Any harness writes to the same session log, with the same tools. | Which harness each session runs. |
| Inferencerunning work · compute | Pay by subscription, your own key or Mod's router. Keys never reach the log. | Which way each session pays, and the model. |
| Workersscheduler | Where work runs is never part of an address. | Your Mac, a VM or the cloud. |
| VMsisolation | One VM per session, booted from an environment you version like code. | The environment, and where it runs. |
| Toolssystem calls | One tool set for every agent, and writes you can undo. | Tools your packages add. |
| Appsinterface · programs | An app is a view over typed records, and its source is documents. | The view, the record shape, the skill. |
| Viewinterface · display | Agents read and change what a person is looking at, on any surface. | How your surface draws it. |
| Layoutsinterface · arrangement | Layouts are data a person and an agent both change. Closing one deletes nothing. | Your spaces and panes. |
| Packagesextending · distribution | A package declares what it reads and writes, and gets only that. | Apps, record types, tools, skills and harnesses. |
| Skillsconfiguration | Skills are documents, chosen per turn. | What your agents should know. |
| Identityaccess · who | People, agents and devices each have an identity. Every change names its author. | Which agents and devices act for you. |
| Authenticationaccess · proving who | Sign in once. Each device syncs with its own short-lived ticket. | Which devices stay signed in. |
| Authorisationaccess · what each may do | Access per project or session. Sessions are private until shared. | Who is in, and what each agent may do. |
| Tasksdocument type | A task is a typed record, one object everywhere. | Your workflow. |
| Commentsdocument type | A comment is a thread anchored to what it is about. | When agents answer. |