{"id":35582937,"url":"https://github.com/vikdotdev/autosymlink","last_synced_at":"2026-01-28T22:39:37.013Z","repository":{"id":332409747,"uuid":"1127818957","full_name":"vikdotdev/autosymlink","owner":"vikdotdev","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-04T20:02:30.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-13T19:48:47.711Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Zig","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/vikdotdev.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-04T16:51:13.000Z","updated_at":"2026-01-04T19:53:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vikdotdev/autosymlink","commit_stats":null,"previous_names":["vikdotdev/autosymlink"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/vikdotdev/autosymlink","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikdotdev%2Fautosymlink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikdotdev%2Fautosymlink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikdotdev%2Fautosymlink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikdotdev%2Fautosymlink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vikdotdev","download_url":"https://codeload.github.com/vikdotdev/autosymlink/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikdotdev%2Fautosymlink/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28853765,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"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":[],"created_at":"2026-01-04T21:15:21.969Z","updated_at":"2026-01-28T22:39:37.007Z","avatar_url":"https://github.com/vikdotdev.png","language":"Zig","readme":"# `autosymlink` - zero-dependencies simple symlink manager\n\nIf you're managing dotfiles or need to maintain symlinks across machines, this tool lets you define them declaratively in a JSON config and sync them with a single command.\n\n## Installation\n\n### Quickstart (Linux x86_64)\n\n```bash\nmkdir -p ~/.local/bin ~/.config/autosymlink\ncurl -sL $(curl -s https://api.github.com/repos/vikdotdev/autosymlink/releases/latest | grep -o 'https://.*x86_64-linux-musl') -o ~/.local/bin/autosymlink \u0026\u0026 chmod +x ~/.local/bin/autosymlink\necho '{\"links\": []}' \u003e ~/.config/autosymlink/links.json\n```\n\n### Manual download\n\nDownload a binary from [releases](https://github.com/vikdotdev/autosymlink/releases) or build from source.\n\n## Usage\n\n```bash\nautosymlink link              # Create symlinks from config\nautosymlink doctor            # Check health of symlinks\nautosymlink --help            # Show help\n```\n\n### Links file\n\nDefault location: `~/.config/autosymlink/links.json`\n\n```json\n{\n  \"links\": [\n    {\"source\": \"${dotfiles}/bashrc\", \"destination\": \"~/.bashrc\"},\n    {\"source\": \"${dotfiles}/nvim\", \"destination\": \"~/.config/nvim\"},\n    {\"source\": \"${notes}\", \"destination\": \"${project}/notes.md\"}\n  ]\n}\n```\n\nUse `--links` or `-l` to specify a different path.\n\n### Aliases file\n\nDefault location: `~/.config/autosymlink/aliases.json`\n\nAliases let you define variables that get interpolated in your links. This is useful for:\n- Keeping sensitive paths out of public view\n- Machine-specific configurations using `${_hostname}`\n\n```json\n{\n  \"dotfiles\": \"${_home}/.dotfiles\",\n  \"notes\": \"${_home}/Documents/secret-client-project-notes.md\"\n  \"project\": \"${_home}/Work/secret-client-project\"\n}\n```\n\nUse `--aliases` or `-a` to specify a different path.\n\n### Variables\n\n**Built-in:**\n- `${_home}` - Home directory\n- `${_user}` - Current user\n- `${_hostname}` - Machine hostname\n\n**Environment variables** work directly: `${HOME}`, `${USER}`, `${XDG_CONFIG_HOME}`, etc.\n\nResolution order: aliases → environment variables → error.\n\nVariables can reference other variables and will be resolved recursively. Only `${VAR}` syntax is supported (`$VAR` without braces is treated as literal text).\n\n### Link options\n\n- `source` - Path to the source file (supports `~` and `${var}` expansion)\n- `destination` - Path where symlink will be created\n- `force` - Overwrite existing files (default: false)\n\n## Building\n\nRequires [Zig](https://ziglang.org/) 0.15.2 or [mise](https://mise.jdx.dev/).\n\n```bash\nzig build                          # Debug build\nzig build -Doptimize=ReleaseSafe   # Release build\nzig build test                     # Run tests\n```\n\nBinary output: `zig-out/bin/autosymlink`\n\n## Releasing\n\nUpdate version in `build.zig.zon`, then:\n\n```bash\n./scripts/release.sh\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvikdotdev%2Fautosymlink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvikdotdev%2Fautosymlink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvikdotdev%2Fautosymlink/lists"}