| src | ||
| Makefile | ||
| README.md | ||
Vibespaces
Catchy baseline: Keep AI helper files out of Git, not out of reach.
vibes is a small POSIX sh CLI that mounts out-of-repo vibes.* helper
directories into your working tree using bindfs, while ensuring they are
globally ignored by Git. It keeps AI artifacts close to your repo without ever
showing up in git status.
Why
AI workflows often generate local-only files that you don’t want in history:
vibes.artefacts/(session outputs)vibes.examples/(examples)vibes.reference/(reference code)vibes.tasks/(task lists)vibes.tmp/(temporary files)
vibes keeps them in an external project store and mounts them into the repo on
demand. You can use them normally while your Git status stays clean.
Features
- Mounts
vibes.*directories via FUSE (bindfs). - Enforces a safe global ignore rule before mounting.
- Uses a shared storage root per project.
- POSIX
shscript (no bashisms).
How It Works
Directories live at $VIBES_ROOT/<project-name>/ and are bind-mounted into the
repo via FUSE (bindfs). The tool refuses to run unless your global Git ignore
covers vibes.*, preventing accidental commits.
Installation
make install-system
Installs vibes to /usr/local/bin. You may need sudo depending on your system.
Local install:
make install-local
Configuration
VIBES_ROOT: storage root (default:~/.local/share/vibespaces)VIBES_VERBOSE: set to0to reduce output (default:1)
Example:
export VIBES_ROOT="$HOME/.local/share/vibespaces"
export VIBES_VERBOSE=1
Usage
From a repo root:
vibes fix-ignore
vibes init
vibes attach
vibes detach
What each command does:
fix-ignoreaddsvibes.*/*andvibes.*/to your global Git ignore file.initcreates the external helper directories for the project.attachmounts the helpers into the working tree.detachunmounts them when you are done.
Safety Notes
attachanddetachrefuse to run unless global ignore coversvibes.*.- Unmount before deleting a repo directory that contains mount points.
Troubleshooting
- “Required command not found: bindfs”: install
bindfs. - “Target does not look like a git repo”: run from a repo root or pass a path.
- Unmount fails: retry, or ensure no process is using files under
vibes.*.
Contributing
PRs and issues are welcome. Suggested areas: configurable helper lists, portable mount detection, and CI checks (shellcheck + formatting).
License
MIT (or your preferred license).