Project files
Saggar keeps project-owned configuration in .saggar/ because it describes
the repository rather than one installation of the app. Commands and display
metadata can be reviewed, cloned, and read by people or agents.
Scheduled tasks, the scratchpad, and machine-local state belong in .gitignore.
Machine-local state uses .local. in its filename.
User-global settings, credentials, audit records, and session restoration live
outside the project under ~/.saggar/ or in the login Keychain.
This boundary prevents two common failures: useful project setup disappearing on another Mac, and local state leaking into source control.
See Project storage for the path-by-path table and .gitignore and .saggar for the recommended ignore rule.