{"id":18062087,"url":"https://github.com/wjl/dotfiles-project","last_synced_at":"2026-04-14T06:33:34.805Z","repository":{"id":258247700,"uuid":"866882106","full_name":"wjl/dotfiles-project","owner":"wjl","description":"Manage your configuration \"dot\" files with Git.","archived":false,"fork":false,"pushed_at":"2024-10-18T05:54:09.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-13T19:40:33.780Z","etag":null,"topics":["configuration","dotfiles","git","shell"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wjl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-03T03:44:23.000Z","updated_at":"2024-10-18T05:54:13.000Z","dependencies_parsed_at":"2024-10-18T08:39:16.666Z","dependency_job_id":null,"html_url":"https://github.com/wjl/dotfiles-project","commit_stats":null,"previous_names":["wjl/dotfiles-project"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/wjl/dotfiles-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wjl%2Fdotfiles-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wjl%2Fdotfiles-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wjl%2Fdotfiles-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wjl%2Fdotfiles-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wjl","download_url":"https://codeload.github.com/wjl/dotfiles-project/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wjl%2Fdotfiles-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31785677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configuration","dotfiles","git","shell"],"created_at":"2024-10-31T05:05:39.139Z","updated_at":"2026-04-14T06:33:34.788Z","avatar_url":"https://github.com/wjl.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles\n\nManage your configuration \"dot\" files with Git.\n\n## Philosophy\n\nAll I want for dotfile management is a thin Git wrapper.\n\nThe entire program is a small POSIX shell script that started as:\n```bash\n#!/bin/sh -eu\ngit \\\n    --git-dir=\"~/.local/share/dotfiles/dotfiles.git\" \\\n    --work-tree=\"~\" \\\n    \"$@\"\n```\n\nIt's bigger now, but only because I've added barely enough extra features to eliminate some manual steps and annoyances.\n\nAlmost everything else can and should be done with setup programs checked into your dotfiles repository and automatically called by Git hooks.\n\n## ⚠️ **Caution**\n\n* *Your dotfiles generally contain sensitive and/or personal information.*\nAnyone with access to your repository can access this information.\n* *Setup programs from your repository are run whenever you clone or pull.*\nAnyone with access to your repository can cause you to run arbitrary code.\n* Therefore, **do not store your dotfiles in a public or insecure repository!**\nIf you want to share some of your dotfiles publically in Git repositories, carefully curate what you share, and set them up as submodules.\n\n**This is true for all other dotfile managers as well**, but most don't warn you very strongly about this, or worse, assume by default that you are storing your dotfiles on `github.com`.\n(I would highly recommend against this.)\n\n## Quick Start (First System)\n\nRun `dotfiles init`, for example:\n\n```bash\ncurl -fsL https://github.com/wjl/dotfiles-project/raw/refs/heads/master/dotfiles | sh -s init\n```\n\nor\n\n```bash\ngit clone https://github.com/wjl/dotfiles-project.git\n./dotfiles-project/dotfiles init\n```\n\nThis will install dotfiles and initialize a new repository.\nAfter this, you basically just use `dotfiles` just like `git` to manage things, for example:\n\n```bash\ndotfiles add \u003cconfig files\u003e\ndotfiles commmit -m \"Added some config files.\"\ndotfiles remote add origin \u003cyour dotfiles repo\u003e\ndotfiles push\n```\n\n## Quick Start (Additional System)\n\nRun `dotfiles clone \u003cyour dotfiles repo\u003e`, or:\n\n```bash\ncurl -fsL https://github.com/wjl/dotfiles-project/raw/refs/heads/master/dotfiles | sh -s clone \u003cyour dotfiles repo\u003e\n```\n\nor\n\n```bash\ngit clone https://github.com/wjl/dotfiles-project.git\n./dotfiles-project/dotfiles clone \u003cyour dotfiles repo\u003e\n```\n\n## General Usage\n\nYou basically just do `dotfiles \u003csome git command\u003e`, so you need to know how to use Git.\n\n```\nDotfiles version 1.0.4\nby Wesley J. Landaker\nSee https://github.com/wjl/dotfiles-project\n\nUsage: dotfiles \u003ccommand\u003e ...\n\nManage configuration \"dot\" files with Git.\n\nCommands:\n  version       -- show version information\n  help          -- show this help message\n\n  init          -- initialize a dotfiles repository\n  clone \u003crepo\u003e  -- clone an existing dotfiles repository\n  setup         -- re-run setup programs explicitly\n\n  git \u003ccommand\u003e -- run a Git command in dotfiles context\n  *             -- anything else is passed through to Git\n\nYour files:\n  Git Repository: /home/you/.local/share/dotfiles/dotfiles.git\n  Setup Programs: /home/you/.config/dotfiles/setup\n```\n\n## Alternatives\n\nI started with a simple Git wrapper years ago.\nIt was a little clunky, but who cares, it was just for me.\nThen I got exited about and tried other dotfiles managers.\nA couple of them are pretty good.\nUnfortunately, these are various technical, philosophical, and pragmatic reasons that I don't use these anymore.\n\nBut you may like them:\n\n* [YADM](https://yadm.io/)\n* [chezmoi](https://www.chezmoi.io/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwjl%2Fdotfiles-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwjl%2Fdotfiles-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwjl%2Fdotfiles-project/lists"}