Mod
Browse the docs · The parts of Mod
docs / start

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.

State that outlives the process

A session is an append-only log of every message, tool call and result. Kill the machine and the agent resumes from it.

sessions
Sync across machines

The same sessions and documents on every device and VM, offline first. Nothing to copy, nothing to reconcile.

sessions · documents
Run anywhere

Where 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.

workers
Permissions per session

A session is the unit of access. Share one thread without the project, and grant running commands separately from editing documents.

sessions · workers
Documents and files for agent state

Documents 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 · sources
One tool set for every harness

Claude Code, Codex, Cursor or your own agent get the same tools, and every write is attributed and can be undone.

tools

The 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.

Mod decides

Fixed in the system. Every person, agent, app and device can count on it.

You decide

What you build, bring or configure on top.

PartMod decidesYou decide
Worldthe tree · rootOne tree per person. Everything has a place in it.How you arrange it.
Projectsthe tree · folders with membersA project is a folder with members, and the unit you share.Which folders become projects.
Documentsthe tree · documentsMerge per character, live on every device, keep their history.What they say and which app draws them.
Sourcesthe tree · folders with filesCode stays in git, placed beside its documents. Crossing into it is always a command.Your repositories, branches and machines.
Version controlhistoryDocuments keep every change on the log. Code keeps it in git.When to name a version, and your git host.
Sessionsrunning work · processesA session is an append-only log, and the unit of work and of access.The agent, model and instructions in it.
Harnessesrunning work · driversAny harness writes to the same session log, with the same tools.Which harness each session runs.
Inferencerunning work · computePay by subscription, your own key or Mod's router. Keys never reach the log.Which way each session pays, and the model.
WorkersschedulerWhere work runs is never part of an address.Your Mac, a VM or the cloud.
VMsisolationOne VM per session, booted from an environment you version like code.The environment, and where it runs.
Toolssystem callsOne tool set for every agent, and writes you can undo.Tools your packages add.
Appsinterface · programsAn app is a view over typed records, and its source is documents.The view, the record shape, the skill.
Viewinterface · displayAgents read and change what a person is looking at, on any surface.How your surface draws it.
Layoutsinterface · arrangementLayouts are data a person and an agent both change. Closing one deletes nothing.Your spaces and panes.
Packagesextending · distributionA package declares what it reads and writes, and gets only that.Apps, record types, tools, skills and harnesses.
SkillsconfigurationSkills are documents, chosen per turn.What your agents should know.
Identityaccess · whoPeople, agents and devices each have an identity. Every change names its author.Which agents and devices act for you.
Authenticationaccess · proving whoSign in once. Each device syncs with its own short-lived ticket.Which devices stay signed in.
Authorisationaccess · what each may doAccess per project or session. Sessions are private until shared.Who is in, and what each agent may do.
Tasksdocument typeA task is a typed record, one object everywhere.Your workflow.
Commentsdocument typeA comment is a thread anchored to what it is about.When agents answer.