{"id":13447800,"url":"https://github.com/tagspaces/tagspaces","last_synced_at":"2026-04-24T21:05:46.856Z","repository":{"id":5623018,"uuid":"6830846","full_name":"tagspaces/tagspaces","owner":"tagspaces","description":"TagSpaces is an offline, open source, document manager with tagging support","archived":false,"fork":false,"pushed_at":"2026-04-22T13:27:49.000Z","size":147253,"stargazers_count":5053,"open_issues_count":93,"forks_count":499,"subscribers_count":100,"default_branch":"develop","last_synced_at":"2026-04-22T16:34:13.847Z","etag":null,"topics":["electron","javascript","note-taking","offline-first","open-source","self-hosting","tagspaces"],"latest_commit_sha":null,"homepage":"https://www.tagspaces.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tagspaces.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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":"2012-11-23T17:25:20.000Z","updated_at":"2026-04-22T11:18:18.000Z","dependencies_parsed_at":"2026-02-19T18:05:42.761Z","dependency_job_id":null,"html_url":"https://github.com/tagspaces/tagspaces","commit_stats":{"total_commits":6850,"total_committers":37,"mean_commits":"185.13513513513513","dds":0.5562043795620437,"last_synced_commit":"65c2959b5ab8ada662d24ec022e7b00904872d1a"},"previous_names":[],"tags_count":358,"template":false,"template_full_name":null,"purl":"pkg:github/tagspaces/tagspaces","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tagspaces%2Ftagspaces","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tagspaces%2Ftagspaces/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tagspaces%2Ftagspaces/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tagspaces%2Ftagspaces/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tagspaces","download_url":"https://codeload.github.com/tagspaces/tagspaces/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tagspaces%2Ftagspaces/sbom","scorecard":{"id":365260,"data":{"date":"2025-08-18","repo":{"name":"github.com/tagspaces/tagspaces","commit":"67c2bff18d0a443f4e2b06edb73976b20b036645"},"scorecard":{"version":"v5.2.1-41-g40576783","commit":"40576783fda6698350fcbbeaea760ff827433034"},"score":3.8,"checks":[{"name":"Code-Review","score":3,"reason":"Found 9/30 approved changesets -- score normalized to 3","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/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#code-review"}},{"name":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#security-policy"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 16 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#maintained"}},{"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/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#packaging"}},{"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/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/pull_request.yml:1","Warn: no topLevel permission defined: .github/workflows/workflow_dispatch.yml:1","Warn: no topLevel permission defined: .github/workflows/workflow_scheduled_mac_electron.yml:1","Warn: no topLevel permission defined: .github/workflows/workflow_scheduled_mac_minio_pro.yml:1","Warn: no topLevel permission defined: .github/workflows/workflow_scheduled_mac_web_pro.yml:1","Warn: no topLevel permission defined: .github/workflows/workflow_scheduled_win_electron_pro.yml:1","Warn: no topLevel permission defined: .github/workflows/workflow_scheduled_win_minio_pro.yml:1","Warn: no topLevel permission defined: .github/workflows/workflow_scheduled_win_web_pro.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/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#token-permissions"}},{"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/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: cordova/platforms/android/gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: GNU Affero General Public License v3.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/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/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v6.5.3 not signed: https://api.github.com/repos/tagspaces/tagspaces/releases/236085167","Warn: release artifact v6.5.2 not signed: https://api.github.com/repos/tagspaces/tagspaces/releases/232314358","Warn: release artifact v6.5.1 not signed: https://api.github.com/repos/tagspaces/tagspaces/releases/229960350","Warn: release artifact v6.4.10 not signed: https://api.github.com/repos/tagspaces/tagspaces/releases/223558224","Warn: release artifact v6.4.8 not signed: https://api.github.com/repos/tagspaces/tagspaces/releases/220847993","Warn: release artifact v6.5.3 does not have provenance: https://api.github.com/repos/tagspaces/tagspaces/releases/236085167","Warn: release artifact v6.5.2 does not have provenance: https://api.github.com/repos/tagspaces/tagspaces/releases/232314358","Warn: release artifact v6.5.1 does not have provenance: https://api.github.com/repos/tagspaces/tagspaces/releases/229960350","Warn: release artifact v6.4.10 does not have provenance: https://api.github.com/repos/tagspaces/tagspaces/releases/223558224","Warn: release artifact v6.4.8 does not have provenance: https://api.github.com/repos/tagspaces/tagspaces/releases/220847993"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#signed-releases"}},{"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/pull_request.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:83: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:102: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:107: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pull_request.yml:123: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:134: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:149: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:153: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:158: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:178: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/pull_request.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_dispatch.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_dispatch.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_dispatch.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_dispatch.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_dispatch.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_dispatch.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/workflow_dispatch.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_dispatch.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_dispatch.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_dispatch.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_dispatch.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_dispatch.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_electron.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_electron.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_electron.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_electron.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_electron.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_electron.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_electron.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_electron.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_minio_pro.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_minio_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_minio_pro.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_minio_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_minio_pro.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_minio_pro.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_minio_pro.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_minio_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_minio_pro.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_minio_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_web_pro.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_web_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_web_pro.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_web_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_web_pro.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_web_pro.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_web_pro.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_web_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_mac_web_pro.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_mac_web_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_electron_pro.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_electron_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_electron_pro.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_electron_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_electron_pro.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_electron_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_electron_pro.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_electron_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_minio_pro.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_minio_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_minio_pro.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_minio_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_minio_pro.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_minio_pro.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_minio_pro.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_minio_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_minio_pro.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_minio_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_web_pro.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_web_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_web_pro.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_web_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_web_pro.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_web_pro.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_web_pro.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_web_pro.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow_scheduled_win_web_pro.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/tagspaces/tagspaces/workflow_scheduled_win_web_pro.yml/develop?enable=pin","Warn: containerImage not pinned by hash: docker/Dockerfile:1: pin your Docker image by updating nginx:1.27.1-alpine to nginx:1.27.1-alpine@sha256:a5127daff3d6f4606be3100a252419bfa84fd6ee5cd74d0feaca1a5068f97dcf","Warn: npmCommand not pinned by hash: .github/workflows/pull_request.yml:72","Warn: npmCommand not pinned by hash: .github/workflows/pull_request.yml:166","Warn: npmCommand not pinned by hash: .github/workflows/workflow_dispatch.yml:33","Warn: npmCommand not pinned by hash: .github/workflows/workflow_scheduled_mac_electron.yml:28","Warn: npmCommand not pinned by hash: .github/workflows/workflow_scheduled_mac_minio_pro.yml:31","Warn: npmCommand not pinned by hash: .github/workflows/workflow_scheduled_mac_web_pro.yml:31","Info:   0 out of  45 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   6 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   6 npmCommand 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/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'develop'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/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 9 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"28 existing vulnerabilities detected","details":["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-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-4cpg-3vgw-4877","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-4rq4-32rv-6wp6","Warn: Project is vulnerable to: GHSA-64g7-mvw6-v9qj","Warn: Project is vulnerable to: GHSA-gff7-g5r8-mg8m","Warn: Project is vulnerable to: GHSA-5fg8-2547-mr8q","Warn: Project is vulnerable to: GHSA-crh6-fp67-6883","Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-wm7h-9275-46v2","Warn: Project is vulnerable to: GHSA-x3cc-x39p-42qx","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-jgmv-j7ww-jx2x","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T11:42:47.767Z","repository_id":5623018,"created_at":"2025-08-18T11:42:47.768Z","updated_at":"2025-08-18T11:42:47.768Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32240622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"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":["electron","javascript","note-taking","offline-first","open-source","self-hosting","tagspaces"],"created_at":"2024-07-31T05:01:27.164Z","updated_at":"2026-04-24T21:05:46.834Z","avatar_url":"https://github.com/tagspaces.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","JavaScript","置顶","Apps","Productivity Tools","open-source","electron","Notes","Table of Contents"],"sub_categories":["9、效率工具集合","FileSharing","Office Tools","Document Management"],"readme":"![TagSpaces Logo](https://www.tagspaces.org/img/tagspaces-logo.svg)\n\n[![GitHub All Releases](https://img.shields.io/github/downloads/tagspaces/tagspaces/total.svg)](https://github.com/tagspaces/tagspaces/releases)\n\n# TagSpaces\n\n**TagSpaces** is a free and open-source platform for organizing, tagging, and managing your local files. It runs completely offline, with no need for cloud services, internet connection, or vendor lock-in. Available for **Windows**, **Linux**, and **macOS**, it also includes a [browser extension](https://github.com/tagspaces/browser-extensions) (Web Clipper) for Firefox, Edge, and Chrome to capture online content as local files.\n\n![TagSpaces with the Markdown Editor](https://www.tagspaces.org/content/v6/tagspaces-lite-demo.avif)\n\n## 🌐 Learn More\n\n- 🌍 [Website](https://www.tagspaces.org/)\n- 📰 [Blog](https://www.tagspaces.org/blog/)\n- 📚 [Documentation](https://docs.tagspaces.org/)\n- 💬 [Community Forum](https://tagspaces.discourse.group/)\n- 🐛 [GitHub Issues](https://github.com/tagspaces/tagspaces/issues)\n\n---\n\n## 📦 Downloads\n\nGrab the latest release from the [GitHub Releases Page](https://github.com/tagspaces/tagspaces/releases).  \nCheck out the full [changelog](https://www.tagspaces.org/whatsnew/) for recent updates.\n\n---\n\n## 🚀 Features at a Glance\n\n- **File \u0026 Folder Management** – Browse, organize, and manage local files in a powerful interface.\n- **Tagging System** – Add tags directly into filenames or use sidecar files for metadata storage.\n- **Flexible Search** – Filter and find files by name or tags using fuzzy search.\n- **Offline First** – 100% offline, serverless, and privacy-focused.\n- **Cross-platform** – Runs seamlessly on Windows, Linux, and macOS.\n- **Note Taking** – Create notes in TXT, Markdown, or HTML.\n- **To-Do Support** – Manage task lists using the built-in HTML editor.\n- **Media Player** – Play common audio and video formats directly within the app.\n- **Web Clipper** – Save web pages or screenshots locally using our browser extension.\n\n---\n\n## 👩‍💻 Developer Guide\n\n### 🛠️ Technologies\n\n- **Javascript Framework:** [React.js](https://reactjs.org/)\n- **User Interface Styling:** [MUI](https://mui.com/)\n- **Desktop App Framework:** [Electron](https://electron.atom.io/)\n- **Boilerplate:** [Electron React Boilerplate](https://github.com/chentsulin/electron-react-boilerplate)\n\n### 📁 Project Structure\n\n```text\nsrc/\n  renderer/         # Core application logic\n  main/             # Electron main process\n  locales/          # Language translation files\n  node_modules/     # TagSpaces extension modules\n\ncordova/            # Deprecated Android build\ndll/                # Live reload support for development\ndocker/             # Docker container setup\ninternals/          # Flow and ESLint configurations\nresources/          # Images and build resources\nscripts/            # NPM task-related scripts\ntest/               # Unit and E2E tests\nweb/                # Assets for web version\n```\n\n### ▶️ Running from Source\n\n#### Prerequisites\n\nInstall the following tools:\n\n- [Node.js](https://nodejs.org/)\n- [npm](https://www.npmjs.com/)\n- [Git](http://git-scm.org/)\n\n#### Setup Steps\n\n    git clone https://github.com/tagspaces/tagspaces.git\n    cd tagspaces\n    git checkout develop  # or 'master' for stable release\n    npm install\n\n#### Set Up Local Web Service\n\nCreate a .env file in release/app/ with a custom key to avoid conflicts:\n\nThe desktop version of the application uses a web service which is running locally as a separate process. The web service is responsible for the search index creation and the generation of the thumbnails for most of the images formats. A key is required in order for the main application to communicate with the web server. It should be generated from webpack script in the `.env` file located in `release/app` folder. This is an example for an .env file.\n\n    KEY=a_custom_key\n\n\u003e Having a custom key, ensures that another instance of TagSpaces will not communicate with the web service of the initial instance, since it is always running on the same port.\n\n#### Build \u0026 Start\n\n    npm run build\n    npm run start\n\n#### Start in Development Mode\n\n    npm run dev\n\nThis will start a development server in background, which watches for changes in background and refreshes the application automatically once you have done some changes in the source code.\n\n### 🧪 Testing\n\nRun unit and integration tests:\n\n```bash\nnpm run test-unit\nnpm run test-playwright\nnpm run test-playwright-web\n\n```\n\n### 💻 Packaging the Desktop App\n\nBuild native apps for each platform:\n\n```bash\nnpm run package-win\nnpm run package-linux\nnpm run package-mac\nnpm run package-mac-arm64\n```\n\nThe commands will create packages for Windows, Linux, Mac OS and Mac OS with the M1 processor respectively.\n\n\u003e ⚠️ Run npm run build before packaging.\n\n### 📱 Android Build (Deprecated)\n\n```bash\nnpm run version-meta\nnpm run prepare-cordova\nnpm run package-android\n```\n\n### 🌐 Web Version\n\nStart the web version locally:\n\n    npm run run-web\n\n### 🔌 Extend with Custom Viewers \u0026 Editors\n\nTagSpaces supports extension modules for opening and editing different file types. Learn more on our [Extensions Page](https://www.tagspaces.org/extensions/).\n\n### 🤝 Contributing\n\nWe welcome contributions! Please review and sign the [Contributor License Agreement (CLA)](https://www.tagspaces.org/contribute/) before submitting PRs.\n\n## 🌍 Localization\n\nTagSpaces is available in over 20 languages. Help us translate the app by joining our team on [Transifex](https://www.transifex.com/tagspaces/tagspaces/).\n\n## 💡 Ideas \u0026 Suggestions\n\nHave an idea or a feature request? Share it on our [community forum](https://tagspaces.discourse.group/c/feature-requests/6) and join the discussion.\n\n## 🐞 Support \u0026 Bug Reports\n\nIf you encounter a bug or need help, [open an issue](https://github.com/tagspaces/tagspaces/issues) on GitHub.\n\n## ⚠️ Known Limitations\n\nTagSpaces is not optimized for locations with more than 100,000 files.\n\n## 📡 Feeds\n\n- [Blog RSS Feed](http://www.tagspaces.org/blog/rss.xml)\n- [GitHub Commits (master)](https://github.com/tagspaces/tagspaces/commits/master.atom)\n\n## 📄 License\n\nTagSpaces is dual-licensed under the [AGPL](LICENSE.txt) (GNU Affero General Public License) v3 for open-source projects and a commercial license for vendors or resellers. Contact us if you're interested in using TagSpaces under different terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftagspaces%2Ftagspaces","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftagspaces%2Ftagspaces","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftagspaces%2Ftagspaces/lists"}