Skip to main content

Projects and sessions

A project is a directory, normally a Git repository. It provides the home for sessions, shared commands and documentation, checkout-local scheduled tasks and notes, and project-local settings.

A session is one managed terminal session. It has its own shell process, working directory, transcript, status, agent identity, and Git context. A session can belong to a project or remain unassigned.

Projects organize durable intent; sessions represent running work. Closing the window does not flatten those into a list of commands. Saggar records enough workspace state to restore the arrangement while keeping live process work in the terminal layer. On relaunch a plain shell gets a fresh process with its old scrollback replayed dimmed above a ── restored ── divider, while a supported agent resumes its conversation instead.

A session ends in one of three ways: you close it, its shell exits cleanly and Saggar closes it on the next beat, or timed tidy closes it after hours of quiet. A failed exit stays open until you look. Closed sessions from a project live on in its Activity tab beside scheduled runs and hook deliveries, kept to the last 10 per project by default. Unassigned sessions leave no entry.

See Projects and sessions for the controls and Project storage for the files involved.