AImarketplace
Plugins

env

A machine rebuilt from its dotfiles, not one where things pile up. Plus disk space, measured and given back

Carries
skills

this project

uze env@ai

this machine

uze install env@ai -m

Everything goes through the dotfiles

Installing or configuring anything means writing it into the chezmoi source, then letting chezmoi apply do it. apt install, npm i -g or curl | sh are fine to try something out; the task is done only when a clean machine would get the same thing from an apply.

sync reads your setup before touching it: where the source lives, how it is organized, what its own AGENTS.md decided. Your conventions win over the skill's. Then it puts the change where that kind of change belongs:

ChangeGoes to
OS packagethe existing package list
runtimethe version manager's config
tool with an installera guarded run_once_ script
app on the host machinethe host's script
config filechezmoi add, a template when it varies per machine
caches, credentialsnowhere

"Is it in sync?"

Four questions, not one:

  1. Machine vs source: chezmoi status
  2. Source vs committed: git status in the source
  3. Committed vs pushed
  4. Installed vs provisioned: what is on the machine that nothing installs

Before every apply it reads the diff for removals: a PATH line an installer appended to your shell rc disappears on the next apply unless it moves into the source.

Disk space

reclaim measures, frees what rebuilds itself, and leaves the rest to you.

reclaim scan                          # measure: Linux, WSL disks, Windows host
reclaim prune docker|caches|build     # only what regenerates
reclaim compact                       # prints the WSL compaction, never runs it

Worktrees, volumes, models and VM images are listed for you to decide one by one. Compaction is printed, not run: wsl --shutdown would stop the agent running it.

Skills

reclaim

model + user

Find what is filling a machine's disks and give the space back - measure the Linux side, the WSL virtual disks and the Windows host in one pass, prune what regenerates (docker build cache and unused images, package-manager caches, cargo target/ and node_modules/), put everything that needs a decision in front of the person, and finish with the exact commands that shrink a WSL disk on the host. Use whenever someone asks what is taking up space, why a disk (C:, the home dir, the WSL distro) is full or almost full, to free or clean up disk space, to prune docker or old builds, or whether and how to compact, shrink or optimize a WSL vhdx. Machine-scoped - applies in any project, or in none. Not for deleting a project's source or a user's documents, not for provisioning (that is `sync`), and not for a one-off `du` on a single directory.

Needs Linux with python3, du, find and df. Under WSL2 it also measures the Windows host through powershell.exe and prints the host-side compaction; elsewhere those sections are simply absent. docker, git and each package manager are used only if present.

Scripts reclaim

Read reclaim/SKILL.md

sync

model + user

Keep a machine and its dotfiles repo the same thing - install and configure through the dotfiles source directory, never by hand. Use whenever someone asks to install or set up anything on their machine (a CLI, a package, a runtime, a font, a desktop app - "instala o X", "poe o Y na maquina", "set this up"), whenever a config file in the home directory needs changing, and whenever they ask whether the environment is in sync, what drifted, or why a fresh machine would not come out the same. Also use right after something was installed by hand, to write it back before it is forgotten. Machine-scoped - applies in any project, or in none. Not for installing a dependency of the project you are in (that belongs in its own package manifest), not for committing the dotfiles repo once the change is written (that is the git plugin's `commit`), and not for a one-off command run to inspect the machine.

Needs chezmoi 2.x with its source directory under version control. Any platform chezmoi runs on - the package managers, script names and numbering are read from the source directory being managed, never assumed by this skill.

Read sync/SKILL.md

On this page