{"id":14174952,"url":"https://github.com/amogh09/wallhaven-sync","last_synced_at":"2026-02-07T19:37:50.592Z","repository":{"id":65419649,"uuid":"583503011","full_name":"amogh09/wallhaven-sync","owner":"amogh09","description":"A command-line tool for syncing Wallhaven favorites to local disk.","archived":false,"fork":false,"pushed_at":"2023-01-22T18:38:55.000Z","size":229,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-10T02:33:23.373Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","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/amogh09.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}},"created_at":"2022-12-30T01:08:25.000Z","updated_at":"2024-10-25T19:11:00.000Z","dependencies_parsed_at":"2023-02-12T17:45:31.549Z","dependency_job_id":null,"html_url":"https://github.com/amogh09/wallhaven-sync","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/amogh09/wallhaven-sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amogh09%2Fwallhaven-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amogh09%2Fwallhaven-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amogh09%2Fwallhaven-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amogh09%2Fwallhaven-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amogh09","download_url":"https://codeload.github.com/amogh09/wallhaven-sync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amogh09%2Fwallhaven-sync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269200424,"owners_count":24377431,"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","status":"online","status_checked_at":"2025-08-07T02:00:09.698Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-08-18T03:00:49.640Z","updated_at":"2026-02-07T19:37:50.532Z","avatar_url":"https://github.com/amogh09.png","language":"Haskell","funding_links":[],"categories":["Haskell"],"sub_categories":[],"readme":"# wallhaven-sync\n`wallhaven-sync` is a command-line tool for syncing wallpapers from a Wallhaven collection to a local directory on your computer. `wallhaven-sync` can also detect wallpapers in your local sync directory that are not a part of the collection anymore and delete them.\n\n## Installation\n### Using prebuilt binaries\nPrebuilt binaries are provided on [Github Releases](https://github.com/amogh09/wallhaven-sync/releases) for Linux and MacOS platforms. Download the relevant binary for your platform from the Releases page and they should be ready for use.\n\n### Installing from source\nFollow the steps below to build `wallhaven-sync` from source. You will need a working [cabal](https://www.haskell.org/cabal/download.html) tool with GHC 9.2.4 for the build.\n\n1. Download the source from one of the [releases](https://github.com/amogh09/wallhaven-sync/releases).\n1. Inside the source directory, invoke `cabal install`.\n1. `wallhaven-sync` will be installed in your `.cabal/bin` directory.\n\n## Usage\n`wallhaven-sync` requires your Wallhaven API Key. \n\n1. Log into your [Wallhaven](https://wallhaven.cc/) account and then open the [Account Settings](https://wallhaven.cc/settings/account) page. \n1. Your API key will be shown under \"API Key\" section as shown in the image below.\n![Wallhaven API Key](/assets/images/api_key.png \"Wallhaven API Key\")\n\nUsage instructions can be printed by invoking `wallhaven-sync --help`. The help output is reproduced below.\n\n```\nwallhaven-sync\n\nUsage: wallhaven-sync [--wallpaper-dir DIRECTORY] [--delete-unliked]\n                      --wallhaven-username USERNAME --wallhaven-api-key API_KEY\n                      [--collection-label LABEL] [--debug]\n\n  Sync wallpapers from a Wallhaven collection\n\nAvailable options:\n  --wallpaper-dir DIRECTORY\n                           Directory where wallpapers will be saved\n                           (default: \"/Users/home/wallpapers\")\n  --delete-unliked         Delete unliked wallpapers\n  --wallhaven-username USERNAME\n                           Wallhaven username\n  --wallhaven-api-key API_KEY\n                           Wallhaven API key\n  --collection-label LABEL Label of the collection to sync (default: \"Default\")\n  --debug                  Debug mode\n  -h,--help                Show this help text\n```\n\n### Options\n| Option | Description | Default value | Required |\n| ------ | ----------- | ------------- | -------- |\n| `--wallpaper-dir` | Local directory to use for downloading the wallpapers. | `/Users/home/wallpapers` | No |\n| `--wallhaven-username` | Username of the collection owner. | | Yes |\n| `--collection-label` | Name of the collection to download. | Default | No |\n| `wallhaven-api-key` | Your wallhaven API key. | | Yes |\n| `--delete-unliked` | If this flag is present then `wallhaven-sync` will delete wallpapers that are in the local directory but not in the specified collection. This option is useful for deleting wallpapers that were unliked from your collection. | NA | No |\n\n### Example usage\nFor downloading your Wallhaven favorites to default directory - \u003cbr/\u003e\n`wallhaven-sync --wallhaven-username USERNAME --wallhaven-api-key API_KEY`\n\nFor downloading your wallhaven favorites to ~/wallhaven directory - \u003cbr/\u003e\n`wallhaven-sync --wallhaven-username USERNAME --wallhaven-api-key API_KEY --wallpaper-dir ~/wallhaven`\n\nFor syncing (deleting unliked wallpapers from local directory and downloading wallpapers from the collection) Wallhaven favorites to default directory - \u003cbr/\u003e\n`wallhaven-sync --wallhaven-username USERNAME --wallhaven-api-key API_KEY --delete-unliked`\n\nFor downloading a collection named \"nature\" under account \"my-account\" to default directory - \u003cbr/\u003e\n`wallhaven-sync --wallhaven-username my-account --collection-label nature --wallhaven-api-key API_KEY`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famogh09%2Fwallhaven-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famogh09%2Fwallhaven-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famogh09%2Fwallhaven-sync/lists"}