untaped-dotfiles
Install it as part of untaped: uv tool install 'untaped[dotfiles]' or pip install 'untaped[dotfiles]'.
To add it to an existing install, see Getting started.
untaped dotfiles places config files from one or more git repos on a
machine, with a policy per item per machine. A repo carries a manifest,
dotfiles.yml, of named items; each item lists files with a mode
(link, copy or merge). The manifest suggests a policy; the machine
decides when it enables the item: sync (new versions apply as they
arrive), once (apply, then leave alone) or manual (report that a new
version exists; apply when asked). Items not enabled are ignored.
dotfiles is experimental and may change in
a minor release.
Set up
A repo needs a dotfiles.yml at its root:
version: 1
items:
fish:
policy: manual # suggestion; absent means manual
files:
- source: fish/config.fish
target: ~/.config/fish/config.fish
mode: link # or copy, or merge (JSON/YAML)
- source: fish/conf.d # a directory: each file under it is placed
target: ~/.config/fish/conf.d
Every entry key, the three modes, per-OS and per-tag filters and how a
directory source is placed are in the manifest.
Where clones, kept files and state live, and the machine's tags and OS,
are in the
configuration reference.
On Windows, link needs symlink permission (Developer Mode or elevation);
copy and merge work. Nothing is tested there yet.
Subscribe, enable, apply
untaped dotfiles subscribe git@github.com:acme/dotfiles.git
untaped dotfiles enable fish starship --policy sync
untaped dotfiles enable claude --skip settings
untaped dotfiles apply --dry-run
untaped dotfiles apply
subscribe clones a URL under dotfiles.repos_dir, or registers the
checkout at a path (fetched, never pulled: its owner pulls it). Several
repos can be subscribed: a personal one everywhere, a work one on the work
machine. enable records the machine's choice and places nothing;
apply shows the plan, asks, then places the paths. A local file in the
way is never destroyed: it moves to dotfiles.kept_dir, and the row says
where.
Keep up to date
untaped dotfiles sync # what a timer runs
untaped dotfiles status
untaped dotfiles status --check # exit 3 while anything needs you
untaped dotfiles diff
untaped dotfiles apply fish
sync fetches every repo, applies the sync items and reports the rest.
It only ever writes a path that is absent or still exactly what the tool
wrote, so it never prompts and never loses a local edit. What each policy
does to a path in each state, and when a clone is pulled, is in
policies.
A timer is the machine's business (a launchd agent on macOS, a systemd
user timer on Linux); untaped dotfiles sync is what it runs.
Show it in the prompt
status reads nothing from the network. Run without item names or
--repo, it writes the
status files,
so a prompt segment needs only the shell:
# starship.toml
[custom.dotfiles]
command = "cat ~/.untaped/plugins/dotfiles/attention"
when = 'test "$(cat ~/.untaped/plugins/dotfiles/attention 2>/dev/null)" != 0'
format = "[⇣ $output dotfiles]($style) "
Reference
The packaged skill is the full reference: every command, the manifest, the policy table and the pitfalls. Install it for your agent with untaped skills install dotfiles --target claude (or another agent); untaped dotfiles COMMAND --help lists each command's options.
Metadata
Release files for untaped-dotfiles 11.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| untaped_dotfiles-11.0.0.tar.gz | 42.8 kB | With provenance | Details for untaped_dotfiles-11.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| untaped_dotfiles-11.0.0-py3-none-any.whl | Python 3 | none | any | Details for untaped_dotfiles-11.0.0-py3-none-any.whl |
Total release size: 102.1 kB
Release files / untaped_dotfiles-11.0.0.tar.gz
| Download URL | untaped_dotfiles-11.0.0.tar.gz |
|---|---|
| Size | 42.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c72d188cbf0317500e3c17f668b84c1d6a9073fe1c7cc8ccad5dc9dc7ffb69d2
|
|
BLAKE2b-256 checksum How to use checksums |
db4575d21f9836618834ec54859489fbac5e868fc29eb419444c6c1780c367b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / untaped_dotfiles-11.0.0-py3-none-any.whl
| Download URL | untaped_dotfiles-11.0.0-py3-none-any.whl |
|---|---|
| Size | 59.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dbf0a9dfc04494ef2c950d351ea70f641106e063a1340ccce497daf356faa425
|
|
BLAKE2b-256 checksum How to use checksums |
5779ef28e5cbaec43bb9eda21303222adee4b1ad325ba92d4616848569d1ac22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logSecurity for untaped-dotfiles 11.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for untaped_dotfiles-11.0.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.