Docs
Start with a consumer repository, compose your modules, and review changes before applying them.
Start here
Getting started with Etch
Create a consumer repository, review your first plan, and apply one Git module.
Modules and profiles
Keep capabilities small and compose the configuration your environment needs.
User guide
Build a consumer repository, inspect changes, and apply modules safely.
Migrating from Dotbot
Move links and bootstrap commands into explicit Etch modules.
Developer profile example
Review and adapt a composed profile without copying personal configuration or engine test fixtures.
Configuration and commands
CLI reference
All commands and options, their defaults, selection rules, output and exit behavior.
Configuration reference
Module, profile and defaults syntax, path rules, overrides, ordering and refresh.
Facts and providers
Observe the environment, plan explicit changes, and extend capabilities through providers.
Environment facts
Declare and inspect observations, understand missing values, and refresh changed state.
Conditions
Select modules and actions with platform, presence, boolean and version conditions.
Version facts and comparisons
Observe tool versions and choose configuration with supported comparisons.
Actions and plugins
Directory and link providers
Create directories and link owned sources with explicit conflict and path behavior.
Managed-link cleanup
Remove only broken or retired links whose ownership Etch can prove.
Shell and script actions
Run shell commands and module scripts with checks, output, timeouts and privilege options.
Upstream installers
Download and execute checked upstream installers with TLS, checksums and presence checks.
Upstream asset downloads
Place upstream files without execution, with ownership and integrity checks.
Loading source plugins
Load trusted source bundles explicitly and select their supported provider options.
uv tool reference plugin
Install missing user-level Python CLI tools without changing projects or existing versions.
npm global tools reference plugin
Install missing global registry packages without upgrading existing tools.
WinGet reference plugin
Install missing Windows packages by exact ID without upgrading existing applications.
Homebrew reference plugin
Ensure requested formulae and casks are present without inferred upgrades or removals.
Claude Code native plugin reference
Register native marketplaces and install missing user plugins with the Claude CLI.
Codex native plugin reference
Register native Codex marketplaces and install missing user plugins without changing existing versions or enabled state.
VS Code reference plugin
Install missing Marketplace extensions for a selected VS Code CLI and profile.
macOS preferences reference plugin
Manage declared current-user macOS preferences while preserving unrelated keys.
Windows Registry preferences reference plugin
Manage typed current-user Windows Registry values without replacing unrelated preferences.
Running and maintaining your setup
Planning changes
Inspect changes, deferred conditions and conflicts before executing actions.
Applying a staged plan
Apply a fresh plan with explicit privilege, refresh, output and failure behavior.
Resource-aware scheduling
Choose parallelism while respecting dependencies, shared resources and interactive work.
Facts and doctor
Use facts and doctor to understand observations, setup errors and inspection limits.
Submodule-backed assets
Initialize pinned assets and update a consumer from an exposed launcher.
Importing a module
Copy and review a module from a public Git source without applying it.
Destination ownership and activation validation
Understand destination conflicts and why satisfied or shared paths still matter.
Compatibility policy
Runtime platforms, schema and plugin versions, supported behavior and current limits.
Windows runtime baseline
Configure Windows paths, symlinks, native commands, PowerShell and Registry preferences.
Architecture reference
How Etch selects, validates, and schedules configuration changes.