{"id":371504,"url":"https://github.com/asweigart/pyperclip","last_synced_at":"2026-05-14T11:30:30.325Z","repository":{"id":39636708,"uuid":"1897743","full_name":"asweigart/pyperclip","owner":"asweigart","description":"Python module for cross-platform clipboard functions.","archived":false,"fork":false,"pushed_at":"2025-09-26T14:41:36.000Z","size":220,"stargazers_count":1830,"open_issues_count":135,"forks_count":222,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-04-29T06:33:48.528Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pypi.python.org/pypi/pyperclip","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asweigart.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.txt","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2011-06-15T01:12:04.000Z","updated_at":"2026-04-25T18:07:53.000Z","dependencies_parsed_at":"2024-06-21T14:19:13.537Z","dependency_job_id":null,"html_url":"https://github.com/asweigart/pyperclip","commit_stats":{"total_commits":159,"total_committers":34,"mean_commits":4.676470588235294,"dds":"0.44025157232704404","last_synced_commit":"781603ea491eefce3b58f4f203bf748dbf9ff003"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/asweigart/pyperclip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asweigart%2Fpyperclip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asweigart%2Fpyperclip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asweigart%2Fpyperclip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asweigart%2Fpyperclip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asweigart","download_url":"https://codeload.github.com/asweigart/pyperclip/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asweigart%2Fpyperclip/sbom","scorecard":{"id":213903,"data":{"date":"2025-08-11","repo":{"name":"github.com/asweigart/pyperclip","commit":"e16fa9c336454be8e73378f50498780b777a4247"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":4,"reason":"Found 8/18 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T01:16:36.163Z","repository_id":39636708,"created_at":"2025-08-17T01:16:36.164Z","updated_at":"2025-08-17T01:16:36.164Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32596533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"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"}},"owner":{"login":"asweigart","name":"Al Sweigart","uuid":"52220","kind":"user","description":"Author of \"Automate the Boring Stuff with Python\" and other free coding books. he/him","email":"","website":"https://github.com/asweigart/readal","location":"USA","twitter":"AlSweigart","company":null,"icon_url":"https://avatars.githubusercontent.com/u/52220?v=4","repositories_count":239,"last_synced_at":"2024-04-16T10:09:02.995Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/asweigart","funding_links":[],"total_stars":16003,"followers":4535,"following":66,"created_at":"2022-11-02T16:25:00.094Z","updated_at":"2024-04-16T10:09:33.382Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asweigart","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asweigart/repositories"},"packages":null,"commits":null,"issues":{"table":{}},"events":null,"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"Pipfile","sha":null,"kind":"manifest","created_at":"2022-07-20T03:32:40.507Z","updated_at":"2022-07-20T03:32:40.507Z","repository_link":"https://github.com/asweigart/pyperclip/blob/master/Pipfile","dependencies":[{"id":294583251,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":294583252,"package_name":"pyperclip","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":294583253,"package_name":"tox","ecosystem":"pypi","requirements":"*","direct":true,"kind":"develop","optional":false},{"id":294583254,"package_name":"detox","ecosystem":"pypi","requirements":"*","direct":true,"kind":"develop","optional":false}]},{"ecosystem":"pypi","filepath":"Pipfile.lock","sha":null,"kind":"lockfile","created_at":"2022-07-20T03:32:40.593Z","updated_at":"2022-07-20T03:32:40.593Z","repository_link":"https://github.com/asweigart/pyperclip/blob/master/Pipfile.lock","dependencies":[{"id":294584172,"package_name":"attrs","ecosystem":"pypi","requirements":"==21.2.0","direct":false,"kind":"runtime","optional":false},{"id":294584173,"package_name":"iniconfig","ecosystem":"pypi","requirements":"==1.1.1","direct":false,"kind":"runtime","optional":false},{"id":294584174,"package_name":"packaging","ecosystem":"pypi","requirements":"==21.0","direct":false,"kind":"runtime","optional":false},{"id":294584175,"package_name":"pluggy","ecosystem":"pypi","requirements":"==0.13.1","direct":false,"kind":"runtime","optional":false},{"id":294584176,"package_name":"py","ecosystem":"pypi","requirements":"==1.10.0","direct":false,"kind":"runtime","optional":false},{"id":294584177,"package_name":"pyparsing","ecosystem":"pypi","requirements":"==2.4.7","direct":false,"kind":"runtime","optional":false},{"id":294584178,"package_name":"pyperclip","ecosystem":"pypi","requirements":"*","direct":false,"kind":"runtime","optional":false},{"id":294584179,"package_name":"pytest","ecosystem":"pypi","requirements":"==6.1.1","direct":false,"kind":"runtime","optional":false},{"id":294584180,"package_name":"sanitized-package","ecosystem":"pypi","requirements":"*","direct":false,"kind":"runtime","optional":false},{"id":294584181,"package_name":"toml","ecosystem":"pypi","requirements":"==0.10.2","direct":false,"kind":"runtime","optional":false},{"id":294584182,"package_name":"backports.entry-points-selectable","ecosystem":"pypi","requirements":"==1.1.0","direct":false,"kind":"develop","optional":false},{"id":294584183,"package_name":"detox","ecosystem":"pypi","requirements":"==0.19","direct":false,"kind":"develop","optional":false},{"id":294584184,"package_name":"distlib","ecosystem":"pypi","requirements":"==0.3.2","direct":false,"kind":"develop","optional":false},{"id":294584185,"package_name":"dnspython","ecosystem":"pypi","requirements":"==1.16.0","direct":false,"kind":"develop","optional":false},{"id":294584186,"package_name":"eventlet","ecosystem":"pypi","requirements":"==0.31.0","direct":false,"kind":"develop","optional":false},{"id":294584187,"package_name":"filelock","ecosystem":"pypi","requirements":"==3.0.12","direct":false,"kind":"develop","optional":false},{"id":294584188,"package_name":"greenlet","ecosystem":"pypi","requirements":"==1.1.1","direct":false,"kind":"develop","optional":false},{"id":294584189,"package_name":"platformdirs","ecosystem":"pypi","requirements":"==2.2.0","direct":false,"kind":"develop","optional":false},{"id":294584190,"package_name":"pluggy","ecosystem":"pypi","requirements":"==0.13.1","direct":false,"kind":"develop","optional":false},{"id":294584191,"package_name":"py","ecosystem":"pypi","requirements":"==1.10.0","direct":false,"kind":"develop","optional":false},{"id":294584192,"package_name":"six","ecosystem":"pypi","requirements":"==1.16.0","direct":false,"kind":"develop","optional":false},{"id":294584193,"package_name":"toml","ecosystem":"pypi","requirements":"==0.10.2","direct":false,"kind":"develop","optional":false},{"id":294584194,"package_name":"tox","ecosystem":"pypi","requirements":"==3.6.1","direct":false,"kind":"develop","optional":false},{"id":294584195,"package_name":"virtualenv","ecosystem":"pypi","requirements":"==20.7.2","direct":false,"kind":"develop","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2023-10-20T18:04:25.473Z","updated_at":"2023-10-20T18:04:25.473Z","repository_link":"https://github.com/asweigart/pyperclip/blob/master/setup.py","dependencies":[]}],"score":7.583247524303362,"created_at":"2026-05-04T06:42:34.336Z","updated_at":"2026-05-14T11:30:30.325Z","avatar_url":"https://github.com/asweigart.png","language":"Python","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/371504","html_url":"https://summary.ecosyste.ms/projects/371504"}