{"id":50462855,"url":"https://github.com/panakour/openpix","last_synced_at":"2026-06-01T05:32:34.635Z","repository":{"id":361401837,"uuid":"1214580654","full_name":"panakour/openpix","owner":"panakour","description":"A friendly Go CLI for finding and downloading open-licensed images from Wikimedia Commons and Openverse. No API keys required, just run a command and get images.","archived":false,"fork":false,"pushed_at":"2026-05-30T12:43:54.000Z","size":38,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-30T14:14:59.805Z","etag":null,"topics":["cli","golang","image-downloader","open-images","openverse","terminal","wikimedia-commons"],"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/panakour.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-18T19:12:58.000Z","updated_at":"2026-05-30T12:43:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/panakour/openpix","commit_stats":null,"previous_names":["panakour/openpix"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/panakour/openpix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panakour%2Fopenpix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panakour%2Fopenpix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panakour%2Fopenpix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panakour%2Fopenpix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/panakour","download_url":"https://codeload.github.com/panakour/openpix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panakour%2Fopenpix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33762215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"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":["cli","golang","image-downloader","open-images","openverse","terminal","wikimedia-commons"],"created_at":"2026-06-01T05:32:33.636Z","updated_at":"2026-06-01T05:32:34.626Z","avatar_url":"https://github.com/panakour.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eBulk Image Downloader\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\u003cem\u003eOpen-licensed images from Wikimedia Commons and Openverse.\u003c/em\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/panakour/openpix/actions/workflows/test.yaml\"\u003e\u003cimg alt=\"verify\" src=\"https://github.com/panakour/openpix/actions/workflows/test.yaml/badge.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/panakour/openpix/actions/workflows/lint.yaml\"\u003e\u003cimg alt=\"lint\" src=\"https://github.com/panakour/openpix/actions/workflows/lint.yaml/badge.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://goreportcard.com/report/github.com/panakour/openpix\"\u003e\u003cimg alt=\"report\" src=\"https://goreportcard.com/badge/github.com/panakour/openpix\"\u003e\u003c/a\u003e\n  \u003ca href=\"./LICENSE\"\u003e\u003cimg alt=\"license\" src=\"https://img.shields.io/badge/license-MIT-blue.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n`openpix` is a small Go CLI for downloading open-licensed images from Wikimedia Commons and Openverse.\n\nIt works without API keys, saves to `~/Pictures/openpix` by default, and is meant to feel simple: run a command, get images.\n\n- No sign-up or API keys\n- Good for wallpapers, moodboards, demos, and quick image gathering\n- Works nicely both interactively and in scripts\n\n## Install\n\n```bash\ngo install github.com/panakour/openpix@latest\n```\n\nOr download a prebuilt binary from [GitHub Releases](https://github.com/panakour/openpix/releases).\n\nRelease builds target:\n\n- macOS (`arm64`)\n- Linux (`amd64`)\n- Windows (`amd64`)\n\n## Quick Start\n\n```bash\nopenpix wikimedia                            # random Featured Pictures\nopenpix wikimedia -q aurora -n 10           # search Wikimedia Commons\nopenpix openverse -q forest                 # search Openverse\nopenpix openverse -q dog --size small       # small images\nopenpix openverse -q art -l cc0,by-sa       # filter by license\nopenpix openverse -q mountains --silent     # script-friendly output\n```\n\nRun `openpix --help` or `openpix \u003ccommand\u003e --help` for the full command and flag list.\n\n`openpix` itself prints help. Real work happens through the `wikimedia` and `openverse` subcommands.\n\n## Where Images Come From\n\n`wikimedia`\n\n- With no query, it samples Featured Pictures from Wikimedia Commons.\n- With `--query`, it performs a full-text Commons search for bitmap images.\n\n`openverse`\n\n- Uses the Openverse image API.\n- Supports `--license` filtering.\n- Supports `--size` buckets: `small`, `medium`, `large`.\n\nShared filters\n\n- `--min-width` and `--min-height` work across providers.\n- Unknown image dimensions are treated as unknown, not automatic failures.\n\n## What You Get\n\n- Safe downloads: files only appear in their final name once the download is complete.\n- Friendly reruns: existing non-empty files are skipped instead of downloaded again.\n- Sensible network behavior: transient failures retry and respect `Retry-After`.\n- Good terminal UX: interactive TTYs get the Bubble Tea UI, while pipes, CI, and `--silent` stay plain.\n- Best-effort batches: one bad image does not kill the whole run.\n\n## For Developers\n\nRequirements\n\n- Go `1.26+`\n- `golangci-lint`\n- `goreleaser` only if you want to test release packaging locally\n\nUseful local runs\n\n```bash\ngo run . --help\ngo run . wikimedia -q aurora -n 3\ngo run . openverse -q forest -n 3\n```\n\nChecks\n\n```bash\ngo test -race ./...\ngo vet ./...\ngolangci-lint run\ngo build ./...\n```\n\nOptional local release smoke test\n\n```bash\ngoreleaser release --snapshot --clean\n```\n\n## Project Layout\n\n```text\nmain.go              program entrypoint\ninternal/cli/        cobra commands and Bubble Tea UI\ninternal/provider/   provider interface plus Wikimedia and Openverse\ninternal/download/   concurrent download pipeline and filename generation\ninternal/httpx/      retrying HTTP client wrapper\n```\n\n## Contributing\n\nSmall, direct changes fit this project best. Prefer explicit behavior, standard library patterns, and tests that exercise real behavior through `httptest`.\n\nIf you are contributing as a coding agent or want the repo-specific engineering notes, see [AGENTS.md](./AGENTS.md).\n\n## Licensing Note\n\n`openpix` is MIT-licensed, but downloaded images still carry their own source licenses and attribution requirements. The tool targets open-license sources, but you should still inspect metadata before redistribution or reuse.\n\n## License\n\n[MIT](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanakour%2Fopenpix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpanakour%2Fopenpix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanakour%2Fopenpix/lists"}