Dear Bloop Team,
I propose that Bloop relocates its project-specific files from the root .bloop/ folder to .config/bloop/. This would hugely reduce clutter in the project's root directory.
A great example for this is the Mill build tool. By default, Mill uses:
Crucially, Mill's output location is flexible; a user can set the MILL_OUTPUT_DIR environment variable to redirect build artifacts to a location like .local/state/mill/, separating volatile state from project configuration.
Bloop could adopt a similar model. This change would make project directories cleaner and follows a proven, well-regarded XDG pattern.
Suggested Migration Path
To ensure a smooth transition for existing projects, Bloop could perform a one-time automatic migration.
-
on the first run in a project, Bloop would check for a .bloop directory in the root. If found, it would automatically move the entire .bloop directory to the new .config/bloop location
-
for all new projects, Bloop would simply use the .config/bloop/ path by default
Further Reading
-
the .config Initiative: The source and discussion for the project-local .config standard
-
Scala and the XDG Standard: An article discussing the broader benefits of applying these directory standards within the Scala ecosystem

Dear Bloop Team,
I propose that Bloop relocates its project-specific files from the root
.bloop/folder to.config/bloop/. This would hugely reduce clutter in the project's root directory.A great example for this is the Mill build tool. By default, Mill uses:
.config/for its settingsout/for its build outputCrucially, Mill's output location is flexible; a user can set the
MILL_OUTPUT_DIRenvironment variable to redirect build artifacts to a location like.local/state/mill/, separating volatile state from project configuration.Bloop could adopt a similar model. This change would make project directories cleaner and follows a proven, well-regarded XDG pattern.
Suggested Migration Path
To ensure a smooth transition for existing projects, Bloop could perform a one-time automatic migration.
on the first run in a project, Bloop would check for a .bloop directory in the root. If found, it would automatically move the entire .bloop directory to the new .config/bloop location
for all new projects, Bloop would simply use the
.config/bloop/path by defaultFurther Reading
the
.configInitiative: The source and discussion for the project-local.configstandardScala and the XDG Standard: An article discussing the broader benefits of applying these directory standards within the Scala ecosystem