Skip to main content
Everything seri loads comes from one of two places. Your profile root, which applies to every project, and a project directory, which applies to one repository.

Project

seri walks up from the directory you started it in and takes the first ancestor that has .seri/<kind>/. Project entries beat profile entries of the same name. These are committable, which is the point. A repository can carry the agents, skills and rules its contributors should have.
Hooks are the exception. A project’s hooks are found, listed and left dormant until you read them and run /hooks trust, because a hook is a program rather than text.

Profile root

~/.seri/ by default, ~/.seri/<name>/ under --profile <name>. A named profile never falls back to the default root.

Outside every profile

The ripgrep cache is shared because it is a build artifact rather than anything about you. Deleting it is always safe.
On Windows the installer resolves its target from %USERPROFILE% while seri resolves your data directory from $HOME. If you have set HOME to something else, the binary and your data live under two different .seri directories.

Directories seri does not read

.cursor/agents/, .claude/agents/, .cursor/skills/, .cursor/hooks/ and every other harness’s directory. The file formats are compatible, so copying files across works. Loading another toolset’s artifacts automatically is a surprise rather than a convenience, so migrating means copying them in.