Skip to main content
Agents leave notes, logs and outputs in the campaign’s shared workspace, $PILOOP_HOME/projects/<id>/workspace. The archive moves the finished parts of it into the CAS, a content-addressed store:
piloop restore brings files back. It never overwrites a file that is there:
piloop restore arch idea#12 restores one idea’s files, and piloop restore arch everything.

What is archived, and when

An archiving removes nothing. The daemon removes the local copies 7 days later, or sooner, oldest first, while the disk has less than [storage] min_free_gb free. It removes only a file that still holds what was stored. [plugins.archive] in $PILOOP_HOME/config.toml selects the archive’s provider: local by default.

The CAS

One CAS serves every campaign of a PILOOP_HOME. It holds the archived files, the agents’ sessions and the workers’ jobs. A blob is addressed by the BLAKE3 hash of its content, so a file that appears in many places is stored once. Nothing is ever deleted from it. [plugins.cas] in $PILOOP_HOME/config.toml selects where the blobs go. The default, disk, keeps them in $PILOOP_HOME/store. cached keeps a local cache over a remote store, such as a bucket:
S3 finds its credentials as boto3 does. gcs needs the gcs extra: uv tool install --reinstall 'piloop[gcs]'. A store whose blobs went to one remote refuses to open over another. The configuration reference lists each provider’s keys.