{"id":34167563,"url":"https://github.com/picgo/picgo-core","last_synced_at":"2026-02-10T04:01:02.723Z","repository":{"id":38445286,"uuid":"149085734","full_name":"PicGo/PicGo-Core","owner":"PicGo","description":":zap:A tool for pictures uploading. Both CLI \u0026 API supports.","archived":false,"fork":false,"pushed_at":"2026-02-04T03:45:59.000Z","size":633,"stargazers_count":932,"open_issues_count":11,"forks_count":97,"subscribers_count":6,"default_branch":"dev","last_synced_at":"2026-02-04T13:54:21.546Z","etag":null,"topics":["picgo","picture-upload","upload-pictures"],"latest_commit_sha":null,"homepage":"https://docs.picgo.app/core/","language":"TypeScript","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/PicGo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/funding.yml","license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","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},"funding":{"github":["Molunerfinn"]}},"created_at":"2018-09-17T07:26:44.000Z","updated_at":"2026-02-04T03:46:03.000Z","dependencies_parsed_at":"2026-02-04T04:05:34.488Z","dependency_job_id":null,"html_url":"https://github.com/PicGo/PicGo-Core","commit_stats":{"total_commits":270,"total_committers":15,"mean_commits":18.0,"dds":0.09259259259259256,"last_synced_commit":"bde7223877f7633e365b8dce8da8772e8a25374d"},"previous_names":[],"tags_count":105,"template":false,"template_full_name":null,"purl":"pkg:github/PicGo/PicGo-Core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PicGo%2FPicGo-Core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PicGo%2FPicGo-Core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PicGo%2FPicGo-Core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PicGo%2FPicGo-Core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PicGo","download_url":"https://codeload.github.com/PicGo/PicGo-Core/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PicGo%2FPicGo-Core/sbom","scorecard":{"id":109930,"data":{"date":"2025-08-11","repo":{"name":"github.com/PicGo/PicGo-Core","commit":"0e9e2442fa3be5b01071f0c3585f083754e05c8b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.1,"checks":[{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/alpha.yml:1","Warn: no topLevel permission defined: .github/workflows/main.yml:1","Warn: no topLevel permission defined: .github/workflows/manually.yml:1","Info: no jobLevel write permissions found"],"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":"Maintained","score":1,"reason":"2 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/alpha.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/PicGo/PicGo-Core/alpha.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/alpha.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/PicGo/PicGo-Core/alpha.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/PicGo/PicGo-Core/main.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/PicGo/PicGo-Core/main.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/manually.yml:8: update your workflow using https://app.stepsecurity.io/secureworkflow/PicGo/PicGo-Core/manually.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/manually.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/PicGo/PicGo-Core/manually.yml/dev?enable=pin","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned"],"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":"Code-Review","score":1,"reason":"Found 4/30 approved changesets -- score normalized to 1","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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: License:0","Info: FSF or OSI recognized license: MIT License: License:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'dev'"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/main.yml:7"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 4 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"}},{"name":"Vulnerabilities","score":0,"reason":"47 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-ff7x-qrg7-qggm","Warn: Project is vulnerable to: GHSA-phwq-j96m-2c2q","Warn: Project is vulnerable to: GHSA-ghr5-ch3p-vcr6","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-8jmw-wjr8-2x66","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v","Warn: Project is vulnerable to: GHSA-38fc-wpqx-33j7","Warn: Project is vulnerable to: GHSA-rjf2-j2r6-q8gr","Warn: Project is vulnerable to: GHSA-6pw2-5hjv-9pf7","Warn: Project is vulnerable to: GHSA-4w2j-2rg4-5mjw","Warn: Project is vulnerable to: GHSA-mrgp-mrhc-5jrq","Warn: Project is vulnerable to: GHSA-7jxr-cg7f-gpgv","Warn: Project is vulnerable to: GHSA-xj72-wvfv-8985","Warn: Project is vulnerable to: GHSA-ch3r-j5x3-6q2m","Warn: Project is vulnerable to: GHSA-p5gc-c584-jj6v","Warn: Project is vulnerable to: GHSA-whpj-8f3w-67p5","Warn: Project is vulnerable to: GHSA-cchq-frgv-rjh5","Warn: Project is vulnerable to: GHSA-g644-9gfx-q4q4","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-15T11:56:57.439Z","repository_id":38445286,"created_at":"2025-08-15T11:56:57.439Z","updated_at":"2025-08-15T11:56:57.439Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29290458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T03:42:42.660Z","status":"ssl_error","status_checked_at":"2026-02-10T03:42:41.897Z","response_time":65,"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":["picgo","picture-upload","upload-pictures"],"created_at":"2025-12-15T10:26:51.927Z","updated_at":"2026-02-10T04:01:02.709Z","avatar_url":"https://github.com/PicGo.png","language":"TypeScript","funding_links":["https://github.com/sponsors/Molunerfinn"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\" markdown=\"1\"\u003e\n  \u003csup\u003eSpecial thanks to:\u003c/sup\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://go.warp.dev/picgo\"\u003e\n    \u003cimg alt=\"Warp sponsorship\" width=\"400\" src=\"https://raw.githubusercontent.com/warpdotdev/brand-assets/refs/heads/main/Github/Sponsor/Warp-Github-LG-03.png\"\u003e\n  \u003c/a\u003e\n\n### [Warp, the intelligent terminal for developers](https://go.warp.dev/picgo)\n[Available for MacOS, Linux, \u0026 Windows](https://go.warp.dev/picgo)\u003cbr\u003e\n\n\u003c/div\u003e\n\n---\n\n# PicGo-Core\n\n![standard](https://img.shields.io/badge/code%20style-standard-green.svg?style=flat-square)\n![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg?style=flat-square)\n[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fpicgo%2Fpicgo-core%2Fbadge%3Fref%3Dmaster\u0026style=flat-square)](https://actions-badge.atrox.dev/picgo/picgo-core/goto?ref=master)\n![npm](https://img.shields.io/npm/v/picgo.svg?style=flat-square)\n[![PicGo Convention](https://img.shields.io/badge/picgo-convention-blue.svg?style=flat-square)](https://github.com/PicGo/bump-version)\n![node](https://img.shields.io/badge/node-%3E%3D20.0.0-blue?style=flat-square)\n\n![picgo-core](https://cdn.jsdelivr.net/gh/Molunerfinn/test/picgo/picgo-core-fix.jpg)\n\nA tool for image uploading. Both CLI \u0026 api supports. It also supports plugin system, please check [Awesome-PicGo](https://github.com/PicGo/Awesome-PicGo) to find powerful plugins.\n\nMore details please see the [Homepage](https://picgo.app/) of PicGo.\n\n**Typora supports PicGo-Core natively**.\n\n## Installation\n\nPicGo requires Node.js \u003e= 20.19.0 or \u003e= 22.12.0. For older PicGo versions (\u003c= v1.5.x), Node.js \u003e= 16 is sufficient. Cause we need the [stability of ES Module support](https://joyeecheung.github.io/blog/2025/12/30/require-esm-in-node-js-from-experiment-to-stability/).\n\n### Global install\n\n```bash\nnpm install picgo -g\n\n# or\n\nyarn global add picgo\n```\n\n### Local install\n\n```bash\nnpm install picgo -D\n\n# or\n\nyarn add picgo -D\n```\n\n## Usage\n\n### Use in CLI\n\n\u003e PicGo uses `SM.MS(S.EE)` as the default upload image host.\n\nShow help:\n\n```bash\n$ picgo -h\n\n  Usage: picgo [options] [command]\n\n  Options:\n    -v, --version                            output the version number\n    -d, --debug                              debug mode\n    -s, --silent                             silent mode\n    -c, --config \u003cpath\u003e                      set config path\n    -p, --proxy \u003curl\u003e                        set proxy for uploading\n    -h, --help                               display help for command\n\n  Commands:\n    install|add [options] \u003cplugins...\u003e       install picgo plugin\n    uninstall|rm \u003cplugins...\u003e                uninstall picgo plugin\n    update [options] \u003cplugins...\u003e            update picgo plugin\n    set \u003cmodule\u003e [name] [configName]         configure config of picgo modules (uploader/transformer/plugin)\n    upload|u [input...]                      upload, go go go\n    use [module] [name] [configName]         use module (uploader/transformer/plugin) of picgo\n    i18n [lang]                              change picgo language\n    uploader                                 manage uploader configurations\n    server [options]                         run PicGo as a standalone server\n    login [token]                            login to cloud.picgo.app\n    logout                                   logout from cloud.picgo.app\n    help [command]                           display help for command\n```\n\n#### Upload a picture from path\n\n```bash\npicgo upload /xxx/xx/xx.jpg\n```\n\n#### Upload a picture from clipboard\n\n\u003e picture from clipboard will be converted to `png`\n\n```bash\npicgo upload\n```\n\nThanks to [vs-picgo](https://github.com/Spades-S/vs-picgo) \u0026\u0026 [Spades-S](https://github.com/Spades-S) for providing the method to upload picture from clipboard.\n\n#### Run as a server\n\n```bash\npicgo server -p 36677 -h 127.0.0.1\n```\n\n#### Login to PicGo Cloud\n\n```bash\npicgo login\n# or\npicgo login \u003ctoken\u003e\n```\n\n#### Logout from PicGo Cloud\n\n```bash\npicgo logout\n```\n\n#### Manage uploader configs\n\nSince v1.8.0, PicGo-Core supports multiple configurations per uploader. Just like the configuration of the Electron version of PicGo.\n\nYou can use `picgo set uploader \u003ctype\u003e [configName]` to configure different uploader configurations.\n\nAnd you can use `picgo use uploader \u003ctype\u003e [configName]` to switch between different uploader configurations.\n\nFor example:\n\n```bash\npicgo set uploader github Test\n\npicgo use uploader github Test\n```\n\nFor more details, you can use `picgo uploader -h` to check the help of uploader management:\n\n```bash\nUsage: picgo uploader [options] [command]\n\n\nOptions:\n  -h, --help                                display help for command\n\nCommands:\n  list [type]                               list uploader configurations\n  rename \u003ctype\u003e \u003coldName\u003e \u003cnewName\u003e         rename a config\n  copy \u003ctype\u003e \u003cconfigName\u003e \u003cnewConfigName\u003e  copy a config (does not switch current uploader)\n  rm \u003ctype\u003e \u003cconfigName\u003e                    remove a config\n```\n\n\n#### Init a picgo plugin template\n\nNote: the plugin's template initializer has moved to the standalone [picgo-init](https://github.com/PicGo/PicGo-Init) package.\n\nYou can use the following command to init a picgo plugin template:\n\n```bash\nnpx picgo-init plugin \u003cyour-plugin-folder\u003e\n```\n\n### Use in node project\n\n#### Common JS\n\n```js\nconst { PicGo } = require('picgo')\n```\n\n#### ES Module\n\n```js\nimport { PicGo } from 'picgo'\n```\n\n#### API usage example\n\n```js\nconst picgo = new PicGo()\n\n// upload a picture from path\npicgo.upload(['/xxx/xxx.jpg'])\n\n// upload a picture from clipboard\npicgo.upload()\n```\n\n## Documentation\n\nFor more details, you can checkout [documentation](https://docs.picgo.app/core/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicgo%2Fpicgo-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpicgo%2Fpicgo-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicgo%2Fpicgo-core/lists"}