{"id":13707108,"url":"https://github.com/doron-cohen/antidot","last_synced_at":"2025-12-30T00:07:38.180Z","repository":{"id":38198212,"uuid":"294016077","full_name":"doron-cohen/antidot","owner":"doron-cohen","description":"Cleans up your $HOME from those pesky dotfiles","archived":false,"fork":false,"pushed_at":"2025-03-19T19:38:55.000Z","size":3516,"stargazers_count":323,"open_issues_count":44,"forks_count":18,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-19T20:33:52.384Z","etag":null,"topics":["dotfiles","golang","rice"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doron-cohen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2020-09-09T05:52:21.000Z","updated_at":"2025-03-19T19:39:00.000Z","dependencies_parsed_at":"2024-06-20T16:22:15.294Z","dependency_job_id":"a45daceb-ae49-497a-bd40-65ce7bb6f934","html_url":"https://github.com/doron-cohen/antidot","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doron-cohen%2Fantidot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doron-cohen%2Fantidot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doron-cohen%2Fantidot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doron-cohen%2Fantidot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doron-cohen","download_url":"https://codeload.github.com/doron-cohen/antidot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252593337,"owners_count":21773444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["dotfiles","golang","rice"],"created_at":"2024-08-02T22:01:19.676Z","updated_at":"2025-12-30T00:07:38.148Z","avatar_url":"https://github.com/doron-cohen.png","language":"Go","funding_links":[],"categories":["Go","golang"],"sub_categories":[],"readme":"# antidot :house: :small_orange_diamond: :boom:\n\n![Pipeline](https://github.com/doron-cohen/antidot/workflows/Pipeline/badge.svg?branch=master)\n\nCleans up your `$HOME` from those pesky dotfiles.\n\n## Migration from Pre 0.6.0 Versions\n\nPlease backup your environment variable and aliases files (in `$XDG_DATA_HOME/antidot/{env,alias}.*`). After version 0.6.0 antidot stores env exports and alias definitions in a JSON file and generates from it shell definition files.\n\n## Intro\n\nFor years I stood by and saw how countless applications populate my home dir with dotfiles.\n\nNo more! `antidot` is a tool to automatically detect and remove dotfiles from `$HOME` without any risks. It will move files to more appropriate locations (based on [XDG base directory specifications](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html)). It will also set environment variables, declare aliases and use symlinks to ensure apps can find their files.\n\n## Installation\n\n### Arch Linux\n\n```shell\nyay -Sy antidot-bin\n```\n\n### Homebrew\n\n```shell\nbrew install doron-cohen/tap/antidot\n```\n\nGo to the [releases](https://github.com/doron-cohen/antidot/releases) section and grab the one that fits your OS.\n\nAfter installing run `antidot update` to download the latest rules file and you're all set!\n\n## How does it Work?\n\nDotfiles pollution is a complex problem to solve. There are many approaches to solve this annoying issue and `antidot` is taking the safest one.\n\nWe maintain a rule for each dotfile which applies actions when the file is detected. The main goal is to move the files to the most appropriate location while keeping the application working as expected.\n\nThere are a few types of actions:\n\n* **Migrate** - Move a file to a new location, optionally symlink the old location to the new one (this is for the hardest cases).\n* **Delete** - Delete a file or a directory (only if it's empty).\n* **Export** - Export an environment variable.\n* **Alias** - Set an alias to a command.\n\n## Examples\n\nThis is the rule for the Docker configuration directory:\n\n```yaml\n  - name: docker\n    dotfile:\n      name: .docker\n      is_dir: true\n    actions:\n      - type: migrate\n        source: ${HOME}/.docker\n        dest: ${XDG_CONFIG_HOME}/docker\n      - type: export\n        key: DOCKER_CONFIG\n        value: ${XDG_CONFIG_HOME}/docker\n```\n\nWhen running `antidot clean` we will be prompted about this directory:\n\n```bash\n❯ ./antidot clean\nRule docker:\n  MOVE   /Users/doroncohen/.docker → /Users/doroncohen/.config/docker\n  EXPORT DOCKER_CONFIG=\"${XDG_CONFIG_HOME}/docker\"\n? Apply rule docker? (y/N)\n```\n\nAnswering yes will move the directory and write the environment variable to a file that can be easily sourced by the shell. Running `antidot init` will create a shell script that will do just that.\n\nAdding `eval \"$(antidot init)\"` to your `.bashrc` or `.zshrc` will make sure you shell sessions will see these variables and aliases. In Fish the proper way is to run `antidot init | source`. You could add it to `$__fish_config_dir/conf.d/antidot.fish`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoron-cohen%2Fantidot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoron-cohen%2Fantidot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoron-cohen%2Fantidot/lists"}