#Projects

A Memory Engine project is a convention for memories from one repository. It is not a separate server object and it does not require repository configuration. A project is a tree path plus the access grants that control who can use that path.

Use me init from a repository to configure machine-local capture and harness policy for that directory. Use Harness Integrations for the installation and policy model.

#Choose A Project Tree

The main decision is whether project knowledge is shared or private.

Goal Project tree Typical access
Team-shared repository knowledge /share/projects/<project> Members with write access under /share/projects
Shared visibility, subgroup writes /share/<group>/<project> Team reads /share; subgroup receives write access
Group-private repository knowledge /<group>/<project> Only the group receives access
Personal repository knowledge ~/projects/<project> Your home-tree access
CI imports A shared project tree Service account receives write access at that tree

When quick setup enables capture, it suggests /share/projects/<repository>. Choose ~/projects/<repository> at the prompt when captures should remain private. Use me init --verbose to choose a different tree or configure capture separately from MCP and CLI routing.

Project trees are full paths. For /share/projects/acme-api, common child nodes include:

  • /share/projects/acme-api/agent_sessions
  • /share/projects/acme-api/git_history
  • /share/projects/acme-api/docs

No additional repository slug is appended to a tree you explicitly choose.

#Team-Shared Projects

/share/projects/<project> is the usual destination for repository knowledge the whole space should be able to read and contribute to.

Default spaces commonly provision a default group with read access to /share and write access to /share/projects. That is a convention of the default space setup, not a guarantee for every custom space. Check your effective access before relying on it:

me access mine --effective
me tree /share/projects --levels 2

For a repository named acme-api, run me init and accept or enter:

/share/projects/acme-api

The same full tree can be used for one-off imports:

me import git --tree /share/projects/acme-api
me import docs . --tree /share/projects/acme-api

#Subgroup-Writable Projects

Use a subgroup path when everyone may read a project but only selected members should write it. A space admin creates and manages the group; a path owner grants the group's access:

me group create payments
me group add payments [email protected]
me group add payments [email protected]
me access grant payments /share/payments w

Then configure the repository to use a child tree such as /share/payments/acme-billing. A grant at /share/payments covers every project below it. Grant the individual project path when access should be scoped to one repository only.

#Private Group And Personal Projects

Do not place a private group project under /share when the wider space should not read it. Instead, create a separate tree and grant only that group:

me group create group-x
me group add group-x [email protected]
me group add group-x [email protected]
me access grant group-x /group-x w

Configure a project below that tree, for example /group-x/secret-project.

For personal notes and private captures, use ~/projects/<project>. A home tree is private by default, subject to any access you explicitly grant to others.

#CI Imports

Use me ci install from a GitHub repository to create an import workflow for git history and Markdown documentation:

me ci install

CI runs with a service-account key. Service accounts do not have a home tree, so their destination must be a shared or otherwise explicitly granted project tree. When me ci install creates credentials, it grants write access at the selected tree. See me ci for workflow and credential details.

#Change A Project Later

Rerun me init in the repository to update its quick configuration, or use me init --verbose to choose a different capture tree while preserving precise control of the other surfaces. Existing memories stay at their original paths; changing future capture or import destinations does not move them.

Useful checks:

me doctor
me whoami
me access mine --effective

See also Harness Integrations, me init, me access, and me group.