# Install vcsh with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper

Config manager based on git. Version 2.0.10 via Homebrew; verified from local package data. Also installable with debian: sudo apt install vcsh.

## Install

```sh
sudo av install brew:vcsh
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install vcsh
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install vcsh
```

  Evidence: MacPorts ports tree: sysutils/vcsh/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add vcsh
```

  Evidence: Alpine Linux edge package indexes: vcsh from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install vcsh
```

  Evidence: Debian stable package indexes: vcsh from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install vcsh
```

  Evidence: Fedora Rawhide package metadata: vcsh from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#vcsh
```

  Evidence: nixpkgs package indexes: pkgs/by-name/vc/vcsh/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S vcsh
```

  Evidence: Arch Linux sync databases: vcsh from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install vcsh
```

  Evidence: openSUSE Tumbleweed package metadata: vcsh from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:vcsh
- **Package manager:** Homebrew
- **Version:** 2.0.10
- **Source summary:** Config manager based on git
- **Homepage:** <https://github.com/RichiH/vcsh>
- **Repository:** <https://github.com/RichiH/vcsh>
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- vcsh (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 2.0.10
## Project history and usage

vcsh is a Git-based configuration manager for dotfiles. Its central trick is to let several Git repositories share $HOME as their working tree without clobbering each other, using fake bare repositories instead of symlink farms.

### Project history

The RichiH/vcsh repository was created on 2011-04-28, and its early tag history includes v0.20111227. Upstream documentation describes vcsh as taking the dotfiles-in-Git approach one step further: single-purpose repositories live in a hidden directory while the actual files are placed directly in $HOME.

The project has stayed intentionally small and Git-centered. Release metadata shows the 2.0 series continuing into 2024, including v2.0.10 on 2024-04-08, which is a long maintenance tail for a tool whose core idea has remained stable.

### Adoption history

vcsh's adoption is mostly among Unix users who split dotfiles by concern: one repository for zsh, another for vim, another for ssh, and so on. The Arch manpage and upstream documentation both stress this selective setup model, where each machine can clone only the config sets it needs.

The project was designed with myrepos, also known as mr, in mind. Upstream documentation says myrepos has native support for vcsh repositories and that a machine can go from a standard installation to a fully set up system quickly when vcsh and mr are used together.

### How it is used

Typical vcsh usage starts with init or clone for a named repository, then ordinary Git commands are run through vcsh's environment. Commands such as list, enter, foreach, list-tracked, and list-untracked reflect that vcsh is a thin coordinator around many Git repositories rather than a new storage format.

The manpage describes the implementation as keeping GIT_DIR separate from GIT_WORK_TREE, with the work tree pointed at $HOME. That avoids symlinks while still letting each repository own only the files it tracks.

### Why package nerds care

vcsh is package-nerd significant because it represents a minimalist answer to dotfile portability: use Git more carefully instead of inventing a full configuration database. For people who maintain many machines, the combination of vcsh and mr gives reproducible checkout and update behavior while keeping files in their natural paths.

It also sits in the lineage of Unix tools that deliberately compose: Git stores history, vcsh selects the fake-bare working-tree layout, and myrepos handles fleet operations across repositories.

### Timeline

- 2011-04-28: The RichiH/vcsh GitHub repository was created.
- 2011-12-27: Early vcsh tag v0.20111227 appears in the repository tag history.
- 2014: Public dotfile-management tutorials were already pairing vcsh with myrepos.
- 2024-04-08: Release v2.0.10 was published on GitHub.

### Related projects

- myrepos/mr is vcsh's closest companion, providing commands to register, update, and operate on many repositories together. The vcsh_mr_template repository is the sample bootstrap layout referenced by the manpage.
- vcsh is related in spirit to bare-Git-dotfiles setups, GNU Stow-style symlink farms, chezmoi, yadm, homesick, and other dotfile managers, but it stays closest to plain Git.

### Sources

- <https://api.github.com/repos/RichiH/vcsh>
- <https://api.github.com/repos/RichiH/vcsh/releases>
- <https://api.github.com/repos/RichiH/vcsh/tags>
- <https://github.com/RichiH/vcsh>
- <https://github.com/RichiH/vcsh/blob/main/doc/README.md>
- <https://man.archlinux.org/man/vcsh.1.en>
- <https://myrepos.branchable.com/>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: /etc/vcsh/config, $XDG_CONFIG_HOME/vcsh/config, ~/.config/vcsh/config
## Other Package-Manager Records

- Debian apt - vcsh - 2.0.10-0.2: normalized package name match | Debian stable package indexes: vcsh from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Version Control System for $HOME - multiple Git repositories in $HOME | https://github.com/RichiH/vcsh/blob/master/README.md
- Nix - vcsh: normalized package name match | nixpkgs package indexes: pkgs/by-name/vc/vcsh/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - vcsh - 1.20190621-5: normalized package name match | Ubuntu 24.04 LTS package indexes: vcsh from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Version Control System for $HOME - multiple Git repositories in $HOME | https://github.com/RichiH/vcsh/blob/master/README.md
- apk - vcsh - 2.0.5-r0: normalized package name match | Alpine Linux edge package indexes: vcsh from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | config manager based on Git | https://github.com/RichiH/vcsh
- apk - vcsh-bash-completion - 2.0.5-r0: normalized package name match | Alpine Linux edge package indexes: vcsh-bash-completion from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Bash completions for vcsh | https://github.com/RichiH/vcsh
- apk - vcsh-doc - 2.0.5-r0: normalized package name match | Alpine Linux edge package indexes: vcsh-doc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | config manager based on Git (documentation) | https://github.com/RichiH/vcsh
- apk - vcsh-zsh-completion - 2.0.5-r0: normalized package name match | Alpine Linux edge package indexes: vcsh-zsh-completion from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Zsh completions for vcsh | https://github.com/RichiH/vcsh
- dnf - vcsh - 2.0.8-7.fc45: normalized package name match | Fedora Rawhide package metadata: vcsh from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Version Control System for $HOME | https://github.com/RichiH/vcsh
- pacman - vcsh - 2.0.10-1: normalized package name match | Arch Linux sync databases: vcsh from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Version Control System for $HOME that manages multiple Git repositories | https://github.com/RichiH/vcsh
- zypper - vcsh - 1.20151229-4.6: normalized package name match | openSUSE Tumbleweed package metadata: vcsh from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Config manager for $HOME based on git | https://github.com/RichiH/vcsh
- zypper - vcsh-zsh-completion - 1.20151229-4.6: normalized package name match | openSUSE Tumbleweed package metadata: vcsh-zsh-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | ZSH Completion for vcsh | https://github.com/RichiH/vcsh
- MacPorts - vcsh: normalized package name match | MacPorts ports tree: sysutils/vcsh/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/vcsh.yml](https://github.com/mxcl/pkgdb/blob/main/combined/vcsh.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated configuration and credential file locations
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
