Звіт у форматі JSON машиночитний
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 23250,
"has_wiki": false,
"homepage": "https://sing-box.sagernet.org/",
"languages": {
"C": 8181,
"Go": 4721602,
"Shell": 64311,
"Makefile": 10611,
"Dockerfile": 1087,
"Objective-C": 39856
},
"pushed_at": "2026-07-31T23:49:53Z",
"created_at": "2022-06-30T13:27:22Z",
"owner_type": "Organization",
"updated_at": "2026-08-02T04:17:48Z",
"description": "The universal proxy platform",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "testing",
"license_spdx_raw": "NOASSERTION",
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": "https://sagernet.org",
"name": "Project S",
"type": "Organization",
"login": "SagerNet",
"company": null,
"location": "Crazy Universe",
"followers": 2399,
"avatar_url": "https://avatars.githubusercontent.com/u/83217677?v=4",
"created_at": "2021-04-26T10:51:57Z",
"is_verified": null,
"public_repos": 96,
"account_age_days": 1923
},
"license": {
"state": "custom",
"spdx_id": null,
"raw_spdx": "NOASSERTION",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v1.14.0-beta.4",
"kind": "prerelease",
"published_at": "2026-07-31T08:47:29Z"
},
{
"tag": "v1.14.0-beta.3",
"kind": "prerelease",
"published_at": "2026-07-29T12:11:43Z"
},
{
"tag": "v1.13.15",
"kind": "patch",
"published_at": "2026-07-29T12:11:41Z"
},
{
"tag": "v1.14.0-beta.2",
"kind": "prerelease",
"published_at": "2026-07-25T05:58:53Z"
},
{
"tag": "v1.14.0-beta.1",
"kind": "prerelease",
"published_at": "2026-07-23T14:10:20Z"
},
{
"tag": "v1.14.0-alpha.50",
"kind": "prerelease",
"published_at": "2026-07-22T03:12:14Z"
},
{
"tag": "v1.14.0-alpha.48",
"kind": "prerelease",
"published_at": "2026-07-19T15:33:35Z"
},
{
"tag": "v1.14.0-alpha.47",
"kind": "prerelease",
"published_at": "2026-07-18T02:28:26Z"
},
{
"tag": "v1.14.0-alpha.46",
"kind": "prerelease",
"published_at": "2026-07-17T04:50:20Z"
},
{
"tag": "v1.14.0-alpha.45",
"kind": "prerelease",
"published_at": "2026-07-16T01:53:00Z"
},
{
"tag": "v1.14.0-alpha.44",
"kind": "prerelease",
"published_at": "2026-07-14T09:14:36Z"
},
{
"tag": "v1.14.0-alpha.43",
"kind": "prerelease",
"published_at": "2026-07-11T01:53:49Z"
},
{
"tag": "v1.14.0-alpha.42",
"kind": "prerelease",
"published_at": "2026-07-10T06:42:42Z"
},
{
"tag": "v1.14.0-alpha.41",
"kind": "prerelease",
"published_at": "2026-07-09T05:45:47Z"
},
{
"tag": "v1.14.0-alpha.40",
"kind": "prerelease",
"published_at": "2026-07-07T17:45:11Z"
},
{
"tag": "v1.14.0-alpha.39",
"kind": "prerelease",
"published_at": "2026-07-06T14:00:56Z"
},
{
"tag": "v1.14.0-alpha.38",
"kind": "prerelease",
"published_at": "2026-07-05T05:47:21Z"
},
{
"tag": "v1.14.0-alpha.37",
"kind": "prerelease",
"published_at": "2026-06-29T04:16:50Z"
},
{
"tag": "v1.14.0-alpha.36",
"kind": "prerelease",
"published_at": "2026-06-27T15:47:16Z"
},
{
"tag": "v1.14.0-alpha.35",
"kind": "prerelease",
"published_at": "2026-06-25T11:15:18Z"
},
{
"tag": "v1.13.14",
"kind": "patch",
"published_at": "2026-06-25T09:11:52Z"
},
{
"tag": "v1.14.0-alpha.34",
"kind": "prerelease",
"published_at": "2026-06-23T08:29:51Z"
},
{
"tag": "v1.14.0-alpha.33",
"kind": "prerelease",
"published_at": "2026-06-21T05:08:41Z"
},
{
"tag": "v1.14.0-alpha.32",
"kind": "prerelease",
"published_at": "2026-06-17T11:47:25Z"
},
{
"tag": "v1.14.0-alpha.31",
"kind": "prerelease",
"published_at": "2026-06-13T09:26:00Z"
},
{
"tag": "v1.14.0-alpha.30",
"kind": "prerelease",
"published_at": "2026-06-12T14:25:44Z"
},
{
"tag": "v1.14.0-alpha.29",
"kind": "prerelease",
"published_at": "2026-06-09T02:42:47Z"
},
{
"tag": "v1.13.13",
"kind": "patch",
"published_at": "2026-06-04T13:32:10Z"
},
{
"tag": "v1.14.0-alpha.28",
"kind": "prerelease",
"published_at": "2026-06-02T15:36:20Z"
},
{
"tag": "v1.14.0-alpha.27",
"kind": "prerelease",
"published_at": "2026-05-31T10:38:00Z"
},
{
"tag": "v1.14.0-alpha.26",
"kind": "prerelease",
"published_at": "2026-05-26T10:14:16Z"
},
{
"tag": "v1.14.0-alpha.25",
"kind": "prerelease",
"published_at": "2026-05-22T04:39:52Z"
},
{
"tag": "v1.14.0-alpha.24",
"kind": "prerelease",
"published_at": "2026-05-15T11:06:19Z"
},
{
"tag": "v1.13.12",
"kind": "patch",
"published_at": "2026-05-15T11:06:12Z"
},
{
"tag": "v1.14.0-alpha.23",
"kind": "prerelease",
"published_at": "2026-05-12T15:06:51Z"
},
{
"tag": "v1.14.0-alpha.22",
"kind": "prerelease",
"published_at": "2026-05-11T16:42:34Z"
},
{
"tag": "v1.14.0-alpha.21",
"kind": "prerelease",
"published_at": "2026-05-03T01:58:06Z"
},
{
"tag": "v1.14.0-alpha.20",
"kind": "prerelease",
"published_at": "2026-04-28T11:05:21Z"
},
{
"tag": "v1.14.0-alpha.19",
"kind": "prerelease",
"published_at": "2026-04-28T08:12:05Z"
},
{
"tag": "v1.14.0-alpha.18",
"kind": "prerelease",
"published_at": "2026-04-24T02:58:52Z"
},
{
"tag": "v1.14.0-alpha.17",
"kind": "prerelease",
"published_at": "2026-04-23T00:44:11Z"
},
{
"tag": "v1.13.11",
"kind": "patch",
"published_at": "2026-04-23T00:44:08Z"
},
{
"tag": "v1.14.0-alpha.16",
"kind": "prerelease",
"published_at": "2026-04-22T07:17:14Z"
},
{
"tag": "v1.13.10",
"kind": "patch",
"published_at": "2026-04-22T07:15:55Z"
},
{
"tag": "v1.14.0-alpha.15",
"kind": "prerelease",
"published_at": "2026-04-20T09:22:48Z"
},
{
"tag": "v1.13.9",
"kind": "patch",
"published_at": "2026-04-20T09:22:39Z"
},
{
"tag": "v1.14.0-alpha.14",
"kind": "prerelease",
"published_at": "2026-04-18T06:17:10Z"
},
{
"tag": "v1.14.0-alpha.13",
"kind": "prerelease",
"published_at": "2026-04-17T06:50:07Z"
},
{
"tag": "v1.14.0-alpha.12",
"kind": "prerelease",
"published_at": "2026-04-14T07:41:55Z"
},
{
"tag": "v1.13.8",
"kind": "patch",
"published_at": "2026-04-14T07:41:49Z"
},
{
"tag": "v1.14.0-alpha.11",
"kind": "prerelease",
"published_at": "2026-04-11T05:03:46Z"
},
{
"tag": "v1.14.0-alpha.10",
"kind": "prerelease",
"published_at": "2026-04-10T10:09:24Z"
},
{
"tag": "v1.13.7",
"kind": "patch",
"published_at": "2026-04-10T10:09:20Z"
},
{
"tag": "v1.14.0-alpha.9",
"kind": "prerelease",
"published_at": "2026-04-06T16:37:49Z"
},
{
"tag": "v1.13.6",
"kind": "patch",
"published_at": "2026-04-06T16:37:44Z"
},
{
"tag": "v1.14.0-alpha.8",
"kind": "prerelease",
"published_at": "2026-03-30T17:07:07Z"
},
{
"tag": "v1.13.5",
"kind": "patch",
"published_at": "2026-03-30T17:06:42Z"
},
{
"tag": "v1.14.0-alpha.7",
"kind": "prerelease",
"published_at": "2026-03-26T06:29:09Z"
},
{
"tag": "v1.13.4",
"kind": "patch",
"published_at": "2026-03-26T06:29:02Z"
},
{
"tag": "v1.14.0-alpha.6",
"kind": "prerelease",
"published_at": "2026-03-25T07:02:20Z"
},
{
"tag": "v1.13.4-beta.3",
"kind": "prerelease",
"published_at": "2026-03-25T07:02:13Z"
},
{
"tag": "v1.14.0-alpha.5",
"kind": "prerelease",
"published_at": "2026-03-24T08:19:56Z"
},
{
"tag": "v1.13.4-beta.2",
"kind": "prerelease",
"published_at": "2026-03-24T08:17:02Z"
},
{
"tag": "v1.14.0-alpha.4",
"kind": "prerelease",
"published_at": "2026-03-23T12:57:31Z"
},
{
"tag": "v1.13.4-beta.1",
"kind": "prerelease",
"published_at": "2026-03-23T12:56:49Z"
},
{
"tag": "v1.13.3",
"kind": "patch",
"published_at": "2026-03-15T10:42:07Z"
},
{
"tag": "v1.12.25",
"kind": "patch",
"published_at": "2026-03-15T10:41:46Z"
},
{
"tag": "v1.14.0-alpha.3",
"kind": "prerelease",
"published_at": "2026-03-15T10:42:18Z"
},
{
"tag": "v1.14.0-alpha.2",
"kind": "prerelease",
"published_at": "2026-03-12T06:40:07Z"
},
{
"tag": "v1.13.3-beta.1",
"kind": "prerelease",
"published_at": "2026-03-12T06:39:38Z"
},
{
"tag": "v1.14.0-alpha.1",
"kind": "prerelease",
"published_at": "2026-03-07T09:33:41Z"
},
{
"tag": "v1.13.2",
"kind": "patch",
"published_at": "2026-03-07T09:33:24Z"
},
{
"tag": "v1.13.1",
"kind": "patch",
"published_at": "2026-03-05T14:20:54Z"
},
{
"tag": "v1.12.24",
"kind": "patch",
"published_at": "2026-03-05T14:19:56Z"
},
{
"tag": "v1.13.1-beta.2",
"kind": "prerelease",
"published_at": "2026-03-03T09:33:59Z"
},
{
"tag": "v1.13.1-beta.1",
"kind": "prerelease",
"published_at": "2026-03-02T08:05:35Z"
},
{
"tag": "v1.13.0",
"kind": "minor",
"published_at": "2026-02-28T07:24:05Z"
},
{
"tag": "v1.13.0-rc.7",
"kind": "prerelease",
"published_at": "2026-02-27T12:40:13Z"
},
{
"tag": "v1.12.23",
"kind": "patch",
"published_at": "2026-02-27T12:38:58Z"
},
{
"tag": "v1.13.0-rc.6",
"kind": "prerelease",
"published_at": "2026-02-23T10:46:38Z"
},
{
"tag": "v1.13.0-rc.5",
"kind": "prerelease",
"published_at": "2026-02-21T07:00:37Z"
},
{
"tag": "v1.13.0-rc.4",
"kind": "prerelease",
"published_at": "2026-02-15T13:57:00Z"
},
{
"tag": "v1.12.22",
"kind": "patch",
"published_at": "2026-02-15T13:49:13Z"
},
{
"tag": "v1.13.0-rc.3",
"kind": "prerelease",
"published_at": "2026-02-09T08:19:20Z"
},
{
"tag": "v1.12.21",
"kind": "patch",
"published_at": "2026-02-09T08:18:50Z"
},
{
"tag": "v1.13.0-rc.2",
"kind": "prerelease",
"published_at": "2026-02-05T12:52:53Z"
},
{
"tag": "v1.12.20",
"kind": "patch",
"published_at": "2026-02-05T12:52:18Z"
},
{
"tag": "v1.13.0-rc.1",
"kind": "prerelease",
"published_at": "2026-02-01T04:54:16Z"
},
{
"tag": "v1.12.19",
"kind": "patch",
"published_at": "2026-02-01T04:53:42Z"
},
{
"tag": "v1.13.0-beta.8",
"kind": "prerelease",
"published_at": "2026-01-30T10:47:49Z"
},
{
"tag": "v1.12.18",
"kind": "patch",
"published_at": "2026-01-30T10:47:18Z"
},
{
"tag": "v1.13.0-beta.7",
"kind": "prerelease",
"published_at": "2026-01-17T12:30:01Z"
},
{
"tag": "v1.13.0-beta.6",
"kind": "prerelease",
"published_at": "2026-01-16T22:50:19Z"
},
{
"tag": "v1.12.17",
"kind": "patch",
"published_at": "2026-01-16T22:49:44Z"
},
{
"tag": "v1.13.0-beta.5",
"kind": "prerelease",
"published_at": "2026-01-13T08:05:49Z"
},
{
"tag": "v1.12.16",
"kind": "patch",
"published_at": "2026-01-13T08:05:10Z"
},
{
"tag": "v1.13.0-beta.4",
"kind": "prerelease",
"published_at": "2026-01-12T03:00:57Z"
},
{
"tag": "v1.13.0-beta.2",
"kind": "prerelease",
"published_at": "2026-01-09T22:23:41Z"
},
{
"tag": "v1.13.0-beta.1",
"kind": "prerelease",
"published_at": "2026-01-07T12:15:26Z"
},
{
"tag": "v1.12.15",
"kind": "patch",
"published_at": "2026-01-07T12:14:40Z"
}
],
"recent_commits": [
{
"oid": "d2438c2867ab055a88e622a8f164b2091ae6601d",
"body": null,
"is_bot": false,
"headline": "Update naiveproxy to v150.0.7871.63-1",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T23:49:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f1415537d813e56183885c4e16a93599e85592c6",
"body": null,
"is_bot": false,
"headline": "Bump version",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T08:16:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4d53c2ba7682bd18a3c619a0760fff4dd4887f0f",
"body": "Recent Windows 11 builds remove TCP estats, which made writeAndWaitAck\nreturn without waiting for acknowledgment. sing now queries\nSIO_TCP_INFO on the socket instead, and falls back to estats on\nsystems predating it (Windows 10 1703).",
"is_bot": false,
"headline": "Fix TLS fragment ACK wait on Windows without TCP estats",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T08:16:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5d3016d9ef23c6dcc1955a9ac425283817b71283",
"body": null,
"is_bot": false,
"headline": "wireguard: Fix system device configures DNS for interface",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T08:16:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e5e47a89e1532f6db293427a59b883e34e8672fa",
"body": null,
"is_bot": false,
"headline": "dns: Fix completed race rule blocked by earlier armed rule",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T08:16:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7a6afa74e8325dc885e3c4872dd8ead634a20fac",
"body": null,
"is_bot": false,
"headline": "release: Fix rpm package format for desktop client",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T08:16:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "34b2299983b5dfa533e2c561d204129e638abade",
"body": null,
"is_bot": false,
"headline": "Fix openvpn",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7559915e67abef35c2d1b2572012fb2b9e461599",
"body": null,
"is_bot": false,
"headline": "Fix TUN dispatcher deadlock",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f4a824cad095e9e987b51908c1b44139213841b3",
"body": null,
"is_bot": false,
"headline": "Fix string type",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ff5f5870b4a81e64a7f53ee23ffaeb8553f87ec1",
"body": null,
"is_bot": false,
"headline": "Fix inconsistent URLTest results",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "606e82303969ab001617652ad20bc888cbaebb62",
"body": null,
"is_bot": false,
"headline": "daemon: Improve URLTest",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6385d57d9feacfcba7362577dca681282a39f15b",
"body": null,
"is_bot": false,
"headline": "Add initial_path option to remote rule-sets",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6ad764863f93a398dea452ba49ec8d0bb7d6b352",
"body": null,
"is_bot": false,
"headline": "release: Fix linux sign",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "18588e738dd7a093c7dedce367f78e00910e915a",
"body": null,
"is_bot": false,
"headline": "Add JSON schema support",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0275e11ef47b7c3e61514df65693505b9ecab0e5",
"body": null,
"is_bot": false,
"headline": "dns: Add namespace and parallel support for evaluate",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "762fa5d39df1f47a627dff1615e30f61b0c00018",
"body": "Since b0c6762bc, every rule inside a referenced rule-set was evaluated\nas if merged into the outer rule, which required tracking per-branch\ngroup states and let outer rules and rule-set rules satisfy each\nother's grouped conditions in both directions.\n\nRestrict merging to the only designed case: a r\n[…]\n/geoip sets contain a\nsingle default rule, so their behavior is unchanged. The group-state\nset machinery is replaced by a single required/satisfied mask pair.\n\nAlso update the route and DNS rule docs.",
"is_bot": false,
"headline": "route: simplify rule_set matching semantics",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cd9431d35e5b1f8943b264cf7ce7ce80cf7d9c44",
"body": null,
"is_bot": false,
"headline": "platform: Fix WIFI state on reload",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1478722c0d046d3ae9118e264a714f3ffdd4b33b",
"body": null,
"is_bot": false,
"headline": "Fix Fortinet SSO again",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "77c2a82c7cc5e67b7834b1338add40cb809be976",
"body": null,
"is_bot": false,
"headline": "dns: Probe connection reuse support for TCP transports",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b5159fee960abb9f7005e505542d0c55c2c0506b",
"body": null,
"is_bot": false,
"headline": "dns: Cache responses with client subnet",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d505b704d564bbca5b38e2600973d047db4ac85f",
"body": null,
"is_bot": false,
"headline": "Fix Tailscale 4via6 subnet routing",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ccc67f061d480e8029411868a25d3b9380773219",
"body": null,
"is_bot": false,
"headline": "release: Improve release workflow",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4db82946c090687a89db119e5261856a5b9a2997",
"body": null,
"is_bot": false,
"headline": "Add Fortinet hostcheck support",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1f7b00d86195d8e4f2931950eed071e4cf89c6a5",
"body": null,
"is_bot": false,
"headline": "Update issue template for new clients",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e83609ef5caff097821365b38525c0b955b5f23d",
"body": null,
"is_bot": false,
"headline": "Update uTLS to v1.8.7",
"author_name": "flyzstu",
"author_login": null,
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ba299ec4892898f7fcaafc141beabb66d0e83c3",
"body": null,
"is_bot": false,
"headline": "Fix TCP DNS retry",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "117952f613fdd7749d9c02d4e1bd4d714a106aed",
"body": null,
"is_bot": false,
"headline": "boxdd: Fix windows update",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e31dc73d6cb360cf5d86bb9ebbc495b5a3d02bf",
"body": null,
"is_bot": false,
"headline": "build: Refactor workflow",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "46df290a6da0aec51b02f7970456416fdf819bab",
"body": null,
"is_bot": false,
"headline": "Improve OpenVPN & OpenConnect interoperability",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8d906c65db085e8c63d05381199072153c84c186",
"body": null,
"is_bot": false,
"headline": "Fix security check message",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "144a4a1ae168da4960fc0b2beb90f37571f049db",
"body": null,
"is_bot": false,
"headline": "openvpn: Fix certificate verification compatibility",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "215811a4bed49c92fb29c356b803f727417a36f4",
"body": null,
"is_bot": false,
"headline": "boxdd: Fix unsafe permission check",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cfa35522587e4a5926c3a1cb40740306bd4a078b",
"body": null,
"is_bot": false,
"headline": "Fix wg detour",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b3973b3e844d96bcb22ea900135279e41347238",
"body": null,
"is_bot": false,
"headline": "openconnect: Fix Fortinet SSO",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "05f2b00854db832f1ac24654889bd71e17bfc63d",
"body": null,
"is_bot": false,
"headline": "Add linux desktop build",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09517a124965a0b0c79f0dd99996737ac7b44bef",
"body": null,
"is_bot": false,
"headline": "desktop: Pin dependencies",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bd023643e22d44d6268f550a6aead43262182c51",
"body": null,
"is_bot": false,
"headline": "boxdd: Implement linux http proxy",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9d5fc27633cdf324199e64fb2a6caa37a52b3cc4",
"body": null,
"is_bot": false,
"headline": "Improve network reset",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "16c85d10814cec29be4e8e2fc8a2ffcd831500f3",
"body": null,
"is_bot": false,
"headline": "boxdd: Fix linux permission",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fcd215a2b95c9ba0e3e31ec4c74a390538119aee",
"body": null,
"is_bot": false,
"headline": "Fix DNS route suffix matching",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "39a64655d47daf4fafb6aedc4de6add7462d85e1",
"body": null,
"is_bot": false,
"headline": "refactor: Async DNS",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "47372d29b0033908023ed6ba003057011423d628",
"body": null,
"is_bot": false,
"headline": "Refactor UDP DNS hijack",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "273b436c76aaf2b517c8d11bb7682e9e5d2441ae",
"body": null,
"is_bot": false,
"headline": "Fix SSO support for anyconnect",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f54509191349a3a7f222b58995402fd77063fc7e",
"body": null,
"is_bot": false,
"headline": "Refactor OpenVPN and OpenConnect endpoints",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a2669cb90bdc52297bec2fb525e651fa34cce0e1",
"body": null,
"is_bot": false,
"headline": "Refactor endpoint in started interface",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ca99870f0ce2a1f86a24e1997138fd1d15121683",
"body": null,
"is_bot": false,
"headline": "Fix tailscale detour",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "05f9b4cfed3fe689ee28eebaf1a0e6ebec79e183",
"body": null,
"is_bot": false,
"headline": "Fix bind control for auto redirect",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "479db2ac97208d7a519d1060227bada7a5af7ab8",
"body": null,
"is_bot": false,
"headline": "Add openvpn and openconnect",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eae33fc2c1d19c8140ae826aaeb4c113f89ebe0f",
"body": null,
"is_bot": false,
"headline": "Update Go to 1.25.12",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2dfaf975b46464cfa136b2d8634f653bebe95e37",
"body": null,
"is_bot": false,
"headline": "Refactor endpoint listen",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0a8d2287344f981d82aee647575a711e86b09eeb",
"body": null,
"is_bot": false,
"headline": "refactor: New tun udpnat",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b9767567901e63fbb96ae98b1cbb6fc034aaca9",
"body": null,
"is_bot": false,
"headline": "boxx: Fix unsafe installation",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "986e91c1196b69cbfc3a26d9e640e31f6cd6a74b",
"body": null,
"is_bot": false,
"headline": "Add multiple tags support to rule-sets",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9b3c6d74fcec3cefb1233f87397e50d9a23dc86",
"body": null,
"is_bot": false,
"headline": "Fix iOS brdige",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b2ec8fd04dcbd341574d6055a70fc1d64cea1110",
"body": null,
"is_bot": false,
"headline": "Fix oomkiller",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8157eda29f447cdcbdcb59620bf5157c50b6133c",
"body": null,
"is_bot": false,
"headline": "platform: Fix version compare",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "176135e30315b70cc9f03daab2f2f34f751f8766",
"body": null,
"is_bot": false,
"headline": "Fix start lifecycle",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "11f37043fdef6b2ec8fc309557567fdadb1a1b18",
"body": null,
"is_bot": false,
"headline": "boxdd: Add insecure mode",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cf3156cd0f4444c11a500f3114a542bd1c42df8c",
"body": null,
"is_bot": false,
"headline": "Update windows build",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3c864f9fca468f704da303bbcf8833dded5e4ddd",
"body": null,
"is_bot": false,
"headline": "tailscale: support Windows SSH user sessions",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1623948ec5b0967bfe00fae7937a8ef4d7353ad5",
"body": null,
"is_bot": false,
"headline": "boxdd: Add custom working directory support",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "df91206feee6080ae3da1c4f67454784fb9ae5e7",
"body": null,
"is_bot": false,
"headline": "boxxx: Add update API",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b2711023253581a4cb97d92302bc5767b20c91b",
"body": null,
"is_bot": false,
"headline": "boxdd: Fix log format",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8cd3b00df05530f5e784a5aa63f36f11f25ea1ac",
"body": null,
"is_bot": false,
"headline": "Add windows build",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68c3a5ee41d9ccda8145ace73d48d8c8b99bf98a",
"body": null,
"is_bot": false,
"headline": "Fix windows bridge",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c9d456322a32d4c9c355b8cf28edb9758b3495a",
"body": null,
"is_bot": false,
"headline": "Fix nftables flush",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b37c6311cd906fa20c7529e2f12b8921b515a9cc",
"body": null,
"is_bot": false,
"headline": "Fix tun gso check",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ddfe6143d2908efa0316b3efacc6815f3c817077",
"body": null,
"is_bot": false,
"headline": "Fix SetGroupExpand race",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "12a0825d0f00ac84d3df9dcbd1c3af92b1c4616c",
"body": null,
"is_bot": false,
"headline": "windivert: stabilize Windows driver lifecycle",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b424a538b90501c991f150d863a01c3d8474e05e",
"body": null,
"is_bot": false,
"headline": "Fix nfqueue options",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a648be3247a23eae103791c7b42ed8e32ff5ed56",
"body": null,
"is_bot": false,
"headline": "documentation: Update icon svg",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e4fd28384dab70742c474bc21fe67ad7019016c",
"body": null,
"is_bot": false,
"headline": "platform: Add http proxy support for Windows",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6ce7d22a3c76a7555d925496e2252c9e20e5f7fd",
"body": null,
"is_bot": false,
"headline": "platform: Fix daemon data",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a28941ab2dc5821c0dfd18504b7a59a7408aac6b",
"body": null,
"is_bot": false,
"headline": "platform: Add boxdd",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e9ad8497dddeb7ce5663eb7c3325729efe6e3796",
"body": null,
"is_bot": false,
"headline": "Fix daemon groups",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0e59ea76f525a370334f0a3a279fc91dbde2d9ef",
"body": null,
"is_bot": false,
"headline": "bridge: Raise accept_ra to 2 when enabling IPv6 forwarding",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1157701d084eb6d1899c178e0ad2082fec69137f",
"body": null,
"is_bot": false,
"headline": "Fix windivert open",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e075956ce3779d57a55e725ed593a48e3cd1e0c0",
"body": null,
"is_bot": false,
"headline": "platform: Export tester and reporter",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "79ed7dee6f4b3bfa521fbedbdc76c49e9ba65c81",
"body": null,
"is_bot": false,
"headline": "windivert: Verify cached driver against embedded asset before load",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "61270f58c4b60da05de3997497383b6a07d1d7d8",
"body": null,
"is_bot": false,
"headline": "Fix netns manager",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "03cecb50eddf9d8ba49b6b7de4ce89f3ba9c4fbf",
"body": null,
"is_bot": false,
"headline": "Add netns and unshare support",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9bba14bc60766aaa4ff9f56fd60670d05e236631",
"body": null,
"is_bot": false,
"headline": "Fix tailscale route",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5242a90b707b7c75bf262a5960fff74780c9dde8",
"body": null,
"is_bot": false,
"headline": "Fix tailscale version",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8acad8f450e444c2480e280a3bf9d70c070109ad",
"body": null,
"is_bot": false,
"headline": "Add connections to OOM report",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e30850dbf4530fcb701329181206df019750f66",
"body": null,
"is_bot": false,
"headline": "Add hysteria2 realm ip_version and port_mapping options",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f330b92826c016d1a4018d97a1c4993e00514163",
"body": null,
"is_bot": false,
"headline": "Fix process and neighbor rules not matched in pre-match",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "745042dae4609961f5f2dbd3dcebaea7428a2e22",
"body": null,
"is_bot": false,
"headline": "Fix macOS bridge kernel panic",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cb350a865dede0cf132de588b45b92337a246a8c",
"body": null,
"is_bot": false,
"headline": "Fix macOS bridge with includeAllNetworks",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "514619343505503f438461c27bbbf3065924c652",
"body": null,
"is_bot": false,
"headline": "Fix windows bridge forwarding to connected subnets",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1a555955e145736333841cbcdd816e3d46dc40fa",
"body": null,
"is_bot": false,
"headline": "Improve windivert syscall",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2fa0feb82dd387781b907d88da6b9df148ddf1b3",
"body": null,
"is_bot": false,
"headline": "Fix bridge MTU",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d8165f8a5422ef47728d8333b0476d63b399f2ca",
"body": null,
"is_bot": false,
"headline": "Improve darwin bridge",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5bb79d9abb4a07ba13b43903464668d1b54fc5f2",
"body": null,
"is_bot": false,
"headline": "Add windows bridge",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a37754af8332107b6f29b995f164a47dfbeb849f",
"body": null,
"is_bot": false,
"headline": "Improve bridge",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01d21fe5d192cad9f273ef0f16c0c45a39114e58",
"body": null,
"is_bot": false,
"headline": "Add bridge outbound",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ace57ea88956418c671f82dfd82634035b3a65da",
"body": null,
"is_bot": false,
"headline": "daemon: Release memory to OS on service reload",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d7ba671ce96329a9eb75de7635e738552b5d97ea",
"body": null,
"is_bot": false,
"headline": "Imrpove flow tracking & sniff action",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aff95d79548b59118131b89cbbfdea022a7ca65a",
"body": null,
"is_bot": false,
"headline": "Fix local DNS transport on darwin",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc80e218f87fce53db431952517871c66142a063",
"body": null,
"is_bot": false,
"headline": "Add L3 forwarding support",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "798e4204714e8edfecba629e739cc93bc198e992",
"body": null,
"is_bot": false,
"headline": "Add snell protocol",
"author_name": "世界",
"author_login": "nekohasekai",
"committed_at": "2026-07-31T03:04:45Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 100,
"commits_last_year": 688,
"latest_release_at": "2026-07-31T08:47:29Z",
"latest_release_tag": "v1.14.0-beta.4",
"releases_from_tags": false,
"days_since_last_push": 1,
"active_weeks_last_year": 49,
"days_since_latest_release": 1,
"mean_days_between_releases": 1.7
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 50,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "github.com/sagernet/sing-box",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/sagernet/sing-box",
"is_deprecated": false,
"latest_version": "v1.13.15",
"repository_url": "https://github.com/sagernet/sing-box",
"versions_count": 561,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-29T11:17:31Z",
"latest_version_yanked": null,
"days_since_latest_publish": 3
}
]
},
"popularity": {
"forks": 4382,
"stars": 36636,
"watchers": 193,
"fork_history": {
"days": [
{
"date": "2026-01-04",
"count": 6
},
{
"date": "2026-01-05",
"count": 5
},
{
"date": "2026-01-06",
"count": 2
},
{
"date": "2026-01-07",
"count": 7
},
{
"date": "2026-01-08",
"count": 3
},
{
"date": "2026-01-09",
"count": 5
},
{
"date": "2026-01-10",
"count": 3
},
{
"date": "2026-01-11",
"count": 6
},
{
"date": "2026-01-12",
"count": 2
},
{
"date": "2026-01-13",
"count": 4
},
{
"date": "2026-01-14",
"count": 7
},
{
"date": "2026-01-15",
"count": 2
},
{
"date": "2026-01-16",
"count": 5
},
{
"date": "2026-01-17",
"count": 1
},
{
"date": "2026-01-18",
"count": 3
},
{
"date": "2026-01-19",
"count": 2
},
{
"date": "2026-01-20",
"count": 6
},
{
"date": "2026-01-21",
"count": 2
},
{
"date": "2026-01-22",
"count": 3
},
{
"date": "2026-01-23",
"count": 3
},
{
"date": "2026-01-24",
"count": 3
},
{
"date": "2026-01-25",
"count": 2
},
{
"date": "2026-01-26",
"count": 5
},
{
"date": "2026-01-27",
"count": 1
},
{
"date": "2026-01-28",
"count": 2
},
{
"date": "2026-01-29",
"count": 4
},
{
"date": "2026-01-30",
"count": 2
},
{
"date": "2026-01-31",
"count": 5
},
{
"date": "2026-02-02",
"count": 1
},
{
"date": "2026-02-03",
"count": 6
},
{
"date": "2026-02-04",
"count": 3
},
{
"date": "2026-02-05",
"count": 3
},
{
"date": "2026-02-06",
"count": 3
},
{
"date": "2026-02-07",
"count": 5
},
{
"date": "2026-02-08",
"count": 3
},
{
"date": "2026-02-09",
"count": 3
},
{
"date": "2026-02-10",
"count": 2
},
{
"date": "2026-02-11",
"count": 2
},
{
"date": "2026-02-12",
"count": 2
},
{
"date": "2026-02-13",
"count": 6
},
{
"date": "2026-02-14",
"count": 2
},
{
"date": "2026-02-15",
"count": 1
},
{
"date": "2026-02-16",
"count": 1
},
{
"date": "2026-02-17",
"count": 2
},
{
"date": "2026-02-18",
"count": 1
},
{
"date": "2026-02-20",
"count": 4
},
{
"date": "2026-02-22",
"count": 3
},
{
"date": "2026-02-23",
"count": 4
},
{
"date": "2026-02-24",
"count": 2
},
{
"date": "2026-02-25",
"count": 4
},
{
"date": "2026-02-26",
"count": 4
},
{
"date": "2026-02-27",
"count": 4
},
{
"date": "2026-02-28",
"count": 10
},
{
"date": "2026-03-01",
"count": 4
},
{
"date": "2026-03-02",
"count": 2
},
{
"date": "2026-03-03",
"count": 4
},
{
"date": "2026-03-04",
"count": 3
},
{
"date": "2026-03-05",
"count": 2
},
{
"date": "2026-03-06",
"count": 5
},
{
"date": "2026-03-07",
"count": 5
},
{
"date": "2026-03-08",
"count": 4
},
{
"date": "2026-03-09",
"count": 3
},
{
"date": "2026-03-10",
"count": 3
},
{
"date": "2026-03-11",
"count": 5
},
{
"date": "2026-03-12",
"count": 3
},
{
"date": "2026-03-13",
"count": 7
},
{
"date": "2026-03-14",
"count": 6
},
{
"date": "2026-03-15",
"count": 5
},
{
"date": "2026-03-16",
"count": 3
},
{
"date": "2026-03-17",
"count": 4
},
{
"date": "2026-03-18",
"count": 3
},
{
"date": "2026-03-19",
"count": 4
},
{
"date": "2026-03-20",
"count": 7
},
{
"date": "2026-03-21",
"count": 2
},
{
"date": "2026-03-22",
"count": 4
},
{
"date": "2026-03-23",
"count": 3
},
{
"date": "2026-03-24",
"count": 2
},
{
"date": "2026-03-25",
"count": 3
},
{
"date": "2026-03-26",
"count": 7
},
{
"date": "2026-03-27",
"count": 6
},
{
"date": "2026-03-28",
"count": 5
},
{
"date": "2026-03-29",
"count": 3
},
{
"date": "2026-03-30",
"count": 7
},
{
"date": "2026-03-31",
"count": 7
},
{
"date": "2026-04-01",
"count": 6
},
{
"date": "2026-04-02",
"count": 6
},
{
"date": "2026-04-03",
"count": 5
},
{
"date": "2026-04-04",
"count": 8
},
{
"date": "2026-04-05",
"count": 4
},
{
"date": "2026-04-06",
"count": 5
},
{
"date": "2026-04-07",
"count": 11
},
{
"date": "2026-04-08",
"count": 9
},
{
"date": "2026-04-09",
"count": 6
},
{
"date": "2026-04-10",
"count": 10
},
{
"date": "2026-04-11",
"count": 4
},
{
"date": "2026-04-12",
"count": 7
},
{
"date": "2026-04-13",
"count": 7
},
{
"date": "2026-04-14",
"count": 9
},
{
"date": "2026-04-15",
"count": 4
},
{
"date": "2026-04-16",
"count": 8
},
{
"date": "2026-04-17",
"count": 6
},
{
"date": "2026-04-18",
"count": 5
},
{
"date": "2026-04-19",
"count": 3
},
{
"date": "2026-04-20",
"count": 7
},
{
"date": "2026-04-21",
"count": 7
},
{
"date": "2026-04-22",
"count": 5
},
{
"date": "2026-04-23",
"count": 6
},
{
"date": "2026-04-24",
"count": 4
},
{
"date": "2026-04-25",
"count": 2
},
{
"date": "2026-04-26",
"count": 8
},
{
"date": "2026-04-27",
"count": 1
},
{
"date": "2026-04-28",
"count": 6
},
{
"date": "2026-04-29",
"count": 8
},
{
"date": "2026-04-30",
"count": 7
},
{
"date": "2026-05-01",
"count": 2
},
{
"date": "2026-05-02",
"count": 3
},
{
"date": "2026-05-03",
"count": 5
},
{
"date": "2026-05-04",
"count": 7
},
{
"date": "2026-05-05",
"count": 5
},
{
"date": "2026-05-06",
"count": 6
},
{
"date": "2026-05-07",
"count": 3
},
{
"date": "2026-05-08",
"count": 2
},
{
"date": "2026-05-09",
"count": 5
},
{
"date": "2026-05-10",
"count": 11
},
{
"date": "2026-05-11",
"count": 8
},
{
"date": "2026-05-12",
"count": 7
},
{
"date": "2026-05-13",
"count": 7
},
{
"date": "2026-05-14",
"count": 5
},
{
"date": "2026-05-15",
"count": 3
},
{
"date": "2026-05-16",
"count": 5
},
{
"date": "2026-05-17",
"count": 1
},
{
"date": "2026-05-18",
"count": 7
},
{
"date": "2026-05-19",
"count": 3
},
{
"date": "2026-05-20",
"count": 4
},
{
"date": "2026-05-21",
"count": 5
},
{
"date": "2026-05-22",
"count": 8
},
{
"date": "2026-05-23",
"count": 9
},
{
"date": "2026-05-24",
"count": 3
},
{
"date": "2026-05-25",
"count": 1
},
{
"date": "2026-05-26",
"count": 6
},
{
"date": "2026-05-27",
"count": 4
},
{
"date": "2026-05-28",
"count": 3
},
{
"date": "2026-05-29",
"count": 7
},
{
"date": "2026-05-30",
"count": 7
},
{
"date": "2026-05-31",
"count": 6
},
{
"date": "2026-06-01",
"count": 8
},
{
"date": "2026-06-02",
"count": 10
},
{
"date": "2026-06-03",
"count": 3
},
{
"date": "2026-06-04",
"count": 8
},
{
"date": "2026-06-05",
"count": 7
},
{
"date": "2026-06-06",
"count": 9
},
{
"date": "2026-06-07",
"count": 8
},
{
"date": "2026-06-08",
"count": 5
},
{
"date": "2026-06-09",
"count": 7
},
{
"date": "2026-06-10",
"count": 4
},
{
"date": "2026-06-11",
"count": 3
},
{
"date": "2026-06-12",
"count": 3
},
{
"date": "2026-06-13",
"count": 6
},
{
"date": "2026-06-14",
"count": 6
},
{
"date": "2026-06-15",
"count": 4
},
{
"date": "2026-06-16",
"count": 3
},
{
"date": "2026-06-17",
"count": 1
},
{
"date": "2026-06-18",
"count": 2
},
{
"date": "2026-06-19",
"count": 3
},
{
"date": "2026-06-20",
"count": 8
},
{
"date": "2026-06-21",
"count": 7
},
{
"date": "2026-06-22",
"count": 5
},
{
"date": "2026-06-23",
"count": 5
},
{
"date": "2026-06-24",
"count": 19
},
{
"date": "2026-06-25",
"count": 7
},
{
"date": "2026-06-26",
"count": 8
},
{
"date": "2026-06-27",
"count": 4
},
{
"date": "2026-06-28",
"count": 6
},
{
"date": "2026-06-29",
"count": 4
},
{
"date": "2026-06-30",
"count": 5
},
{
"date": "2026-07-01",
"count": 2
},
{
"date": "2026-07-02",
"count": 4
},
{
"date": "2026-07-03",
"count": 4
},
{
"date": "2026-07-04",
"count": 1
},
{
"date": "2026-07-05",
"count": 5
},
{
"date": "2026-07-06",
"count": 9
},
{
"date": "2026-07-07",
"count": 7
},
{
"date": "2026-07-08",
"count": 5
},
{
"date": "2026-07-09",
"count": 4
},
{
"date": "2026-07-10",
"count": 5
},
{
"date": "2026-07-11",
"count": 4
},
{
"date": "2026-07-12",
"count": 4
},
{
"date": "2026-07-13",
"count": 2
},
{
"date": "2026-07-14",
"count": 5
},
{
"date": "2026-07-15",
"count": 10
},
{
"date": "2026-07-16",
"count": 7
},
{
"date": "2026-07-17",
"count": 6
},
{
"date": "2026-07-18",
"count": 4
},
{
"date": "2026-07-19",
"count": 6
},
{
"date": "2026-07-20",
"count": 8
},
{
"date": "2026-07-21",
"count": 7
},
{
"date": "2026-07-22",
"count": 8
},
{
"date": "2026-07-23",
"count": 3
},
{
"date": "2026-07-24",
"count": 8
},
{
"date": "2026-07-25",
"count": 7
},
{
"date": "2026-07-26",
"count": 5
},
{
"date": "2026-07-27",
"count": 7
},
{
"date": "2026-07-28",
"count": 3
},
{
"date": "2026-07-29",
"count": 5
},
{
"date": "2026-07-30",
"count": 4
},
{
"date": "2026-07-31",
"count": 4
},
{
"date": "2026-08-01",
"count": 3
},
{
"date": "2026-08-02",
"count": 1
}
],
"complete": false,
"collected": 1000,
"total_forks": 4382
},
"star_history": null,
"open_issues_and_prs": 284
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [
"Makefile"
],
"api_schema_files": [
"daemon/managed_service.proto",
"daemon/started_service.proto",
"experimental/boxdd/desktop_service.proto",
"experimental/v2rayapi/stats.proto",
"transport/v2raygrpc/stream.proto"
],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"go.mod",
"test/go.mod"
],
"largest_source_bytes": 244607,
"source_files_sampled": 1056,
"oversized_source_files": 7,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"go.mod",
"test/go.mod"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.48.0",
"severity": "critical",
"ecosystem": "go",
"cvss_score": 10,
"advisory_ids": [
"GHSA-45gg-vh54-h5m9",
"GHSA-5cgq-3rg8-m6cv",
"GHSA-78mq-xcr3-xm33",
"GHSA-89gr-r52h-f8rx",
"GHSA-9m57-25v3-79x9",
"GHSA-f5wc-c3c7-36mc",
"GHSA-jppx-rxg9-jmrx",
"GHSA-q4h4-gmj2-qvw2",
"GHSA-qpw4-5x99-6vjp",
"GHSA-rm3j-f69w-wqmq"
],
"fixed_version": "0.52.0",
"advisory_count": 27,
"oldest_advisory_days": 72
},
{
"name": "google.golang.org/grpc",
"direct": true,
"version": "v1.79.1",
"severity": "critical",
"ecosystem": "go",
"cvss_score": 9.1,
"advisory_ids": [
"GHSA-hrxh-6v49-42gf",
"GHSA-p77j-4mvh-x3m3",
"GO-2026-4762",
"GO-2026-6061"
],
"fixed_version": "1.82.1",
"advisory_count": 4,
"oldest_advisory_days": 136
},
{
"name": "github.com/docker/docker",
"direct": false,
"version": "v27.3.1+incompatible",
"severity": "high",
"ecosystem": "go",
"cvss_score": 8.8,
"advisory_ids": [
"GHSA-4vq8-7jfc-9cvp",
"GHSA-pxq6-2prw-chj9",
"GHSA-rg2x-37c3-w2rh",
"GHSA-vp62-88p7-qqf5",
"GHSA-x744-4wpc-v9h2",
"GHSA-x86f-5xw2-fm2r",
"GO-2026-4883",
"GO-2026-4887",
"GO-2026-5617",
"GO-2026-5668"
],
"fixed_version": "29.3.1",
"advisory_count": 11,
"oldest_advisory_days": 368
},
{
"name": "github.com/go-jose/go-jose/v4",
"direct": false,
"version": "v4.1.3",
"severity": "high",
"ecosystem": "go",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-78h2-9frx-2jm8",
"GO-2026-4945"
],
"fixed_version": "4.1.4",
"advisory_count": 2,
"oldest_advisory_days": 121
},
{
"name": "go.opentelemetry.io/otel",
"direct": false,
"version": "v1.39.0",
"severity": "high",
"ecosystem": "go",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-mh2q-q3fh-2475",
"GO-2026-5506"
],
"fixed_version": "1.41.0",
"advisory_count": 2,
"oldest_advisory_days": 116
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.50.0",
"severity": "moderate",
"ecosystem": "go",
"cvss_score": 6.5,
"advisory_ids": [
"GHSA-5cv4-jp36-h3mw",
"GO-2026-4559",
"GO-2026-4918",
"GO-2026-5025",
"GO-2026-5026",
"GO-2026-5027",
"GO-2026-5028",
"GO-2026-5029",
"GO-2026-5030",
"GO-2026-5942"
],
"fixed_version": "1.26.3",
"advisory_count": 10,
"oldest_advisory_days": 156
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp",
"direct": false,
"version": "v1.31.0",
"severity": "moderate",
"ecosystem": "go",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-w8rr-5gcm-pp58",
"GO-2026-4985"
],
"fixed_version": "1.43.0",
"advisory_count": 2,
"oldest_advisory_days": 115
},
{
"name": "filippo.io/edwards25519",
"direct": false,
"version": "v1.1.0",
"severity": "low",
"ecosystem": "go",
"cvss_score": 3.7,
"advisory_ids": [
"GHSA-fw7p-63qq-7hpr",
"GO-2026-4503"
],
"fixed_version": "1.1.1",
"advisory_count": 2,
"oldest_advisory_days": 165
},
{
"name": "github.com/go-chi/chi/v5",
"direct": true,
"version": "v5.2.5",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5774",
"GO-2026-5775",
"GO-2026-5777"
],
"fixed_version": "5.3.0",
"advisory_count": 3,
"oldest_advisory_days": 8
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.41.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5024"
],
"fixed_version": "0.44.0",
"advisory_count": 1,
"oldest_advisory_days": 71
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.34.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5970"
],
"fixed_version": "0.39.0",
"advisory_count": 1,
"oldest_advisory_days": 18
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5841"
],
"fixed_version": "1.18.7",
"advisory_count": 1,
"oldest_advisory_days": 5
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"low": 1,
"high": 3,
"unknown": 4,
"critical": 2,
"moderate": 2
},
"advisory_count": 66,
"affected_count": 12,
"assessed_count": 256,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 6
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "filippo.io/age",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.1"
},
{
"name": "github.com/anthropics/anthropic-sdk-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.26.0"
},
{
"name": "github.com/anytls/sing-anytls",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.11"
},
{
"name": "github.com/caddyserver/certmagic",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.25.3-0.20260421143802-60d9d8b415d6"
},
{
"name": "github.com/caddyserver/zerossl",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.5"
},
{
"name": "github.com/coder/websocket",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.8.14"
},
{
"name": "github.com/creack/pty",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.24"
},
{
"name": "github.com/cretz/bine",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.2.0"
},
{
"name": "github.com/database64128/tfo-go/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.3.2"
},
{
"name": "github.com/go-chi/chi/v5",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v5.2.5"
},
{
"name": "github.com/go-chi/render",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.3"
},
{
"name": "github.com/godbus/dbus/v5",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v5.2.2"
},
{
"name": "github.com/gofrs/uuid/v5",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v5.4.0"
},
{
"name": "github.com/insomniacslk/dhcp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260220084031-5adc3eb26f91"
},
{
"name": "github.com/jsimonetti/rtnetlink",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.0"
},
{
"name": "github.com/keybase/go-keychain",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/libdns/acmedns",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.5.0"
},
{
"name": "github.com/libdns/alidns",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.6"
},
{
"name": "github.com/libdns/cloudflare",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.2.2"
},
{
"name": "github.com/libdns/libdns",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.1"
},
{
"name": "github.com/logrusorgru/aurora",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.0.3+incompatible"
},
{
"name": "github.com/mdlayher/netlink",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.9.0"
},
{
"name": "github.com/metacubex/utls",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.8.7"
},
{
"name": "github.com/mholt/acmez/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.1.6"
},
{
"name": "github.com/miekg/dns",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.72"
},
{
"name": "github.com/openai/openai-go/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.26.0"
},
{
"name": "github.com/oschwald/maxminddb-golang",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.13.1"
},
{
"name": "github.com/pkg/sftp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.13.10"
},
{
"name": "github.com/sagernet/asc-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20241217030726-d563060fe4e1"
},
{
"name": "github.com/sagernet/bbolt",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20231014093535-ea5cb2fe9f0a"
},
{
"name": "github.com/sagernet/cors",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.2.1"
},
{
"name": "github.com/sagernet/cronet-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260731162621-4185d471b2e4"
},
{
"name": "github.com/sagernet/cronet-go/all",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260731162621-4185d471b2e4"
},
{
"name": "github.com/sagernet/fswatch",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.2"
},
{
"name": "github.com/sagernet/gliderssh",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.3.4-0.20260531100337-2194faca5648"
},
{
"name": "github.com/sagernet/gomobile",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.12"
},
{
"name": "github.com/sagernet/gvisor",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20250811.0-sing-box-mod.1"
},
{
"name": "github.com/sagernet/netlink",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20240612041022-b9a21c07ac6a"
},
{
"name": "github.com/sagernet/nftables",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.3.0-mod.4"
},
{
"name": "github.com/sagernet/quic-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.59.0-sing-box-mod.4"
},
{
"name": "github.com/sagernet/sing",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.8.12-0.20260731081310-cb3e09a281aa"
},
{
"name": "github.com/sagernet/sing-cloudflared",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.3-0.20260706062323-d9787e794aa3"
},
{
"name": "github.com/sagernet/sing-mux",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.3.5"
},
{
"name": "github.com/sagernet/sing-openconnect",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260722140139-e0c977659ca2"
},
{
"name": "github.com/sagernet/sing-openvpn",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260729104525-103eb5fe5eb6"
},
{
"name": "github.com/sagernet/sing-quic",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.4-0.20260727030926-0b32a5074a40"
},
{
"name": "github.com/sagernet/sing-shadowsocks",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.2.8"
},
{
"name": "github.com/sagernet/sing-shadowsocks2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.2.1"
},
{
"name": "github.com/sagernet/sing-shadowtls",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.2.1"
},
{
"name": "github.com/sagernet/sing-snell",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260727093646-7cb813e07b73"
},
{
"name": "github.com/sagernet/sing-tun",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.8.12-0.20260729054528-2d9b8aed5fe2"
},
{
"name": "github.com/sagernet/sing-usbip",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260616101517-efb91521eddb"
},
{
"name": "github.com/sagernet/sing-vmess",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.2.8-0.20250909125414-3aed155119a1"
},
{
"name": "github.com/sagernet/smux",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.50-sing-box-mod.1"
},
{
"name": "github.com/sagernet/tailscale",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.92.4-sing-box-1.13-mod.7.0.20260717155615-b353b93d194a"
},
{
"name": "github.com/sagernet/wireguard-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.5-0.20260717024847-6f5e8b1947ae"
},
{
"name": "github.com/sagernet/ws",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20231204124109-acfe8907c854"
},
{
"name": "github.com/spf13/cobra",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.10.2"
},
{
"name": "github.com/stretchr/testify",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.1"
},
{
"name": "github.com/tailscale/go-winio",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20231025203758-c4f33415bf55"
},
{
"name": "github.com/vishvananda/netns",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.5"
},
{
"name": "go.uber.org/zap",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.27.1"
},
{
"name": "go4.org/netipx",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20231129151722-fdeea329fbba"
},
{
"name": "golang.org/x/crypto",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.48.0"
},
{
"name": "golang.org/x/exp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20251219203646-944ab1f22d93"
},
{
"name": "golang.org/x/mod",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.33.0"
},
{
"name": "golang.org/x/net",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.50.0"
},
{
"name": "golang.org/x/sync",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.19.0"
},
{
"name": "golang.org/x/sys",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.41.0"
},
{
"name": "golang.org/x/text",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.34.0"
},
{
"name": "golang.zx2c4.com/wireguard/wgctrl",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20241231184526-a9ab2273dd10"
},
{
"name": "google.golang.org/grpc",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.79.1"
},
{
"name": "google.golang.org/protobuf",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.36.11"
},
{
"name": "howett.net/plist",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.1"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "filippo.io/age",
"direct": true,
"version": "v1.3.1",
"ecosystem": "go"
},
{
"name": "github.com/anthropics/anthropic-sdk-go",
"direct": true,
"version": "v1.26.0",
"ecosystem": "go"
},
{
"name": "github.com/anytls/sing-anytls",
"direct": true,
"version": "v0.0.11",
"ecosystem": "go"
},
{
"name": "github.com/caddyserver/certmagic",
"direct": true,
"version": "v0.25.3-0.20260421143802-60d9d8b415d6",
"ecosystem": "go"
},
{
"name": "github.com/caddyserver/zerossl",
"direct": true,
"version": "v0.1.5",
"ecosystem": "go"
},
{
"name": "github.com/coder/websocket",
"direct": true,
"version": "v1.8.14",
"ecosystem": "go"
},
{
"name": "github.com/creack/pty",
"direct": true,
"version": "v1.1.24",
"ecosystem": "go"
},
{
"name": "github.com/cretz/bine",
"direct": true,
"version": "v0.2.0",
"ecosystem": "go"
},
{
"name": "github.com/database64128/tfo-go/v2",
"direct": true,
"version": "v2.3.2",
"ecosystem": "go"
},
{
"name": "github.com/go-chi/chi/v5",
"direct": true,
"version": "v5.2.5",
"ecosystem": "go"
},
{
"name": "github.com/go-chi/render",
"direct": true,
"version": "v1.0.3",
"ecosystem": "go"
},
{
"name": "github.com/godbus/dbus/v5",
"direct": true,
"version": "v5.2.2",
"ecosystem": "go"
},
{
"name": "github.com/gofrs/uuid/v5",
"direct": true,
"version": "v5.4.0",
"ecosystem": "go"
},
{
"name": "github.com/insomniacslk/dhcp",
"direct": true,
"version": "v0.0.0-20260220084031-5adc3eb26f91",
"ecosystem": "go"
},
{
"name": "github.com/jsimonetti/rtnetlink",
"direct": true,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "github.com/keybase/go-keychain",
"direct": true,
"version": "v0.0.1",
"ecosystem": "go"
},
{
"name": "github.com/libdns/acmedns",
"direct": true,
"version": "v0.5.0",
"ecosystem": "go"
},
{
"name": "github.com/libdns/alidns",
"direct": true,
"version": "v1.0.6",
"ecosystem": "go"
},
{
"name": "github.com/libdns/cloudflare",
"direct": true,
"version": "v0.2.2",
"ecosystem": "go"
},
{
"name": "github.com/libdns/libdns",
"direct": true,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/logrusorgru/aurora",
"direct": true,
"version": "v2.0.3+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/mdlayher/netlink",
"direct": true,
"version": "v1.9.0",
"ecosystem": "go"
},
{
"name": "github.com/metacubex/utls",
"direct": true,
"version": "v1.8.7",
"ecosystem": "go"
},
{
"name": "github.com/mholt/acmez/v3",
"direct": true,
"version": "v3.1.6",
"ecosystem": "go"
},
{
"name": "github.com/miekg/dns",
"direct": true,
"version": "v1.1.72",
"ecosystem": "go"
},
{
"name": "github.com/openai/openai-go/v3",
"direct": true,
"version": "v3.26.0",
"ecosystem": "go"
},
{
"name": "github.com/oschwald/maxminddb-golang",
"direct": true,
"version": "v1.13.1",
"ecosystem": "go"
},
{
"name": "github.com/pkg/sftp",
"direct": true,
"version": "v1.13.10",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/asc-go",
"direct": true,
"version": "v0.0.0-20241217030726-d563060fe4e1",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/bbolt",
"direct": true,
"version": "v0.0.0-20231014093535-ea5cb2fe9f0a",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cors",
"direct": true,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go",
"direct": true,
"version": "v0.0.0-20260712143338-d22f2ea3630e",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go",
"direct": true,
"version": "v0.0.0-20260731162621-4185d471b2e4",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/all",
"direct": true,
"version": "v0.0.0-20260712143338-d22f2ea3630e",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/all",
"direct": true,
"version": "v0.0.0-20260731162621-4185d471b2e4",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/fswatch",
"direct": true,
"version": "v0.1.2",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/gliderssh",
"direct": true,
"version": "v0.3.4-0.20260531100337-2194faca5648",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/gomobile",
"direct": true,
"version": "v0.1.12",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/gvisor",
"direct": true,
"version": "v0.0.0-20250811.0-sing-box-mod.1",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/gvisor",
"direct": true,
"version": "v0.0.0-20250822052253-5558536cf237",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/netlink",
"direct": true,
"version": "v0.0.0-20240612041022-b9a21c07ac6a",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/nftables",
"direct": true,
"version": "v0.3.0-mod.4",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/quic-go",
"direct": true,
"version": "v0.59.0-sing-box-mod.4",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing",
"direct": true,
"version": "v0.8.12-0.20260717153536-4f1ed45a99a5",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing",
"direct": true,
"version": "v0.8.12-0.20260731081310-cb3e09a281aa",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-cloudflared",
"direct": true,
"version": "v0.1.3-0.20260706062323-d9787e794aa3",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-mux",
"direct": true,
"version": "v0.3.5",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-openconnect",
"direct": true,
"version": "v0.0.0-20260720032640-bf28b6a6f10e",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-openconnect",
"direct": true,
"version": "v0.0.0-20260722140139-e0c977659ca2",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-openvpn",
"direct": true,
"version": "v0.0.0-20260720132803-a5e407d00242",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-openvpn",
"direct": true,
"version": "v0.0.0-20260729104525-103eb5fe5eb6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-quic",
"direct": true,
"version": "v0.6.4-0.20260720125339-63fa6a7ebc31",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-quic",
"direct": true,
"version": "v0.6.4-0.20260727030926-0b32a5074a40",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-shadowsocks",
"direct": true,
"version": "v0.2.8",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-shadowsocks2",
"direct": true,
"version": "v0.2.1",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-shadowtls",
"direct": true,
"version": "v0.2.1",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-snell",
"direct": true,
"version": "v0.0.0-20260719094200-c43fbee0e839",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-snell",
"direct": true,
"version": "v0.0.0-20260727093646-7cb813e07b73",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-tun",
"direct": true,
"version": "v0.8.12-0.20260719094150-557ca930fccd",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-tun",
"direct": true,
"version": "v0.8.12-0.20260729054528-2d9b8aed5fe2",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-usbip",
"direct": true,
"version": "v0.0.0-20260616101517-efb91521eddb",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/sing-vmess",
"direct": true,
"version": "v0.2.8-0.20250909125414-3aed155119a1",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/smux",
"direct": true,
"version": "v1.5.50-sing-box-mod.1",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/tailscale",
"direct": true,
"version": "v1.92.4-sing-box-1.13-mod.7.0.20260717155615-b353b93d194a",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/wireguard-go",
"direct": true,
"version": "v0.0.5-0.20260717024847-6f5e8b1947ae",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/ws",
"direct": true,
"version": "v0.0.0-20231204124109-acfe8907c854",
"ecosystem": "go"
},
{
"name": "github.com/spf13/cobra",
"direct": true,
"version": "v1.10.2",
"ecosystem": "go"
},
{
"name": "github.com/stretchr/testify",
"direct": true,
"version": "v1.11.1",
"ecosystem": "go"
},
{
"name": "github.com/tailscale/go-winio",
"direct": true,
"version": "v0.0.0-20231025203758-c4f33415bf55",
"ecosystem": "go"
},
{
"name": "github.com/vishvananda/netns",
"direct": true,
"version": "v0.0.5",
"ecosystem": "go"
},
{
"name": "go.uber.org/zap",
"direct": true,
"version": "v1.27.1",
"ecosystem": "go"
},
{
"name": "go4.org/netipx",
"direct": true,
"version": "v0.0.0-20231129151722-fdeea329fbba",
"ecosystem": "go"
},
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.48.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/exp",
"direct": true,
"version": "v0.0.0-20251219203646-944ab1f22d93",
"ecosystem": "go"
},
{
"name": "golang.org/x/mod",
"direct": true,
"version": "v0.33.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.50.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sync",
"direct": true,
"version": "v0.19.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.41.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.34.0",
"ecosystem": "go"
},
{
"name": "golang.zx2c4.com/wireguard/wgctrl",
"direct": true,
"version": "v0.0.0-20241231184526-a9ab2273dd10",
"ecosystem": "go"
},
{
"name": "google.golang.org/grpc",
"direct": true,
"version": "v1.79.1",
"ecosystem": "go"
},
{
"name": "google.golang.org/protobuf",
"direct": true,
"version": "v1.36.11",
"ecosystem": "go"
},
{
"name": "howett.net/plist",
"direct": true,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "filippo.io/edwards25519",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "filippo.io/hpke",
"direct": false,
"version": "v0.4.0",
"ecosystem": "go"
},
{
"name": "github.com/ajg/form",
"direct": false,
"version": "v1.5.1",
"ecosystem": "go"
},
{
"name": "github.com/akutz/memconn",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/alexbrainman/sspi",
"direct": false,
"version": "v0.0.0-20231016080023-1a75b4708caa",
"ecosystem": "go"
},
{
"name": "github.com/anchore/go-lzo",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/andybalholm/brotli",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/anmitsu/go-shlex",
"direct": false,
"version": "v0.0.0-20200514113438-38f4b401e2be",
"ecosystem": "go"
},
{
"name": "github.com/azure/go-ansiterm",
"direct": false,
"version": "v0.0.0-20210617225240-d185dfc1b5a1",
"ecosystem": "go"
},
{
"name": "github.com/cenkalti/backoff/v4",
"direct": false,
"version": "v4.3.0",
"ecosystem": "go"
},
{
"name": "github.com/cespare/xxhash/v2",
"direct": false,
"version": "v2.3.0",
"ecosystem": "go"
},
{
"name": "github.com/containerd/log",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/coreos/go-iptables",
"direct": false,
"version": "v0.7.1-0.20240112124308-65c67c9f46e6",
"ecosystem": "go"
},
{
"name": "github.com/coreos/go-oidc/v3",
"direct": false,
"version": "v3.17.0",
"ecosystem": "go"
},
{
"name": "github.com/database64128/netx-go",
"direct": false,
"version": "v0.1.1",
"ecosystem": "go"
},
{
"name": "github.com/davecgh/go-spew",
"direct": false,
"version": "v1.1.2-0.20180830191138-d8f796af33cc",
"ecosystem": "go"
},
{
"name": "github.com/dblohm7/wingoes",
"direct": false,
"version": "v0.0.0-20240119213807-a09d6be7affa",
"ecosystem": "go"
},
{
"name": "github.com/dgrijalva/jwt-go/v4",
"direct": false,
"version": "v4.0.0-preview1",
"ecosystem": "go"
},
{
"name": "github.com/dgryski/go-camellia",
"direct": false,
"version": "v0.0.0-20191119043421-69a8a13fb23d",
"ecosystem": "go"
},
{
"name": "github.com/distribution/reference",
"direct": false,
"version": "v0.5.0",
"ecosystem": "go"
},
{
"name": "github.com/docker/docker",
"direct": false,
"version": "v27.3.1+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/docker/go-connections",
"direct": false,
"version": "v0.5.0",
"ecosystem": "go"
},
{
"name": "github.com/docker/go-units",
"direct": false,
"version": "v0.5.0",
"ecosystem": "go"
},
{
"name": "github.com/ebitengine/purego",
"direct": false,
"version": "v0.10.0",
"ecosystem": "go"
},
{
"name": "github.com/felixge/httpsnoop",
"direct": false,
"version": "v1.0.4",
"ecosystem": "go"
},
{
"name": "github.com/florianl/go-nfqueue/v2",
"direct": false,
"version": "v2.0.2",
"ecosystem": "go"
},
{
"name": "github.com/fsnotify/fsnotify",
"direct": false,
"version": "v1.9.0",
"ecosystem": "go"
},
{
"name": "github.com/fxamacker/cbor/v2",
"direct": false,
"version": "v2.7.0",
"ecosystem": "go"
},
{
"name": "github.com/gaissmai/bart",
"direct": false,
"version": "v0.18.0",
"ecosystem": "go"
},
{
"name": "github.com/go-jose/go-jose/v4",
"direct": false,
"version": "v4.1.3",
"ecosystem": "go"
},
{
"name": "github.com/go-json-experiment/json",
"direct": false,
"version": "v0.0.0-20250813024750-ebf49471dced",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/logr",
"direct": false,
"version": "v1.4.3",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/stdr",
"direct": false,
"version": "v1.2.2",
"ecosystem": "go"
},
{
"name": "github.com/go-ole/go-ole",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/gobwas/httphead",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/gobwas/pool",
"direct": false,
"version": "v0.2.1",
"ecosystem": "go"
},
{
"name": "github.com/gogo/protobuf",
"direct": false,
"version": "v1.3.2",
"ecosystem": "go"
},
{
"name": "github.com/golang/groupcache",
"direct": false,
"version": "v0.0.0-20241129210726-2c02b8208cf8",
"ecosystem": "go"
},
{
"name": "github.com/google/btree",
"direct": false,
"version": "v1.1.3",
"ecosystem": "go"
},
{
"name": "github.com/google/certificate-transparency-go",
"direct": false,
"version": "v1.3.2",
"ecosystem": "go"
},
{
"name": "github.com/google/go-cmp",
"direct": false,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/google/go-querystring",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/google/gopacket",
"direct": false,
"version": "v1.1.19",
"ecosystem": "go"
},
{
"name": "github.com/google/nftables",
"direct": false,
"version": "v0.2.1-0.20240414091927-5e242ec57806",
"ecosystem": "go"
},
{
"name": "github.com/google/uuid",
"direct": false,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/yamux",
"direct": false,
"version": "v0.1.2",
"ecosystem": "go"
},
{
"name": "github.com/hdevalence/ed25519consensus",
"direct": false,
"version": "v0.2.0",
"ecosystem": "go"
},
{
"name": "github.com/huin/goupnp",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/inconshreveable/mousetrap",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/jackpal/go-nat-pmp",
"direct": false,
"version": "v1.0.2",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.0",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/cpuid/v2",
"direct": false,
"version": "v2.3.0",
"ecosystem": "go"
},
{
"name": "github.com/koron/go-ssdp",
"direct": false,
"version": "v0.0.4",
"ecosystem": "go"
},
{
"name": "github.com/kr/fs",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/libp2p/go-nat",
"direct": false,
"version": "v1.0.1-0.20250821073202-01afc089f138",
"ecosystem": "go"
},
{
"name": "github.com/libp2p/go-netroute",
"direct": false,
"version": "v0.2.1",
"ecosystem": "go"
},
{
"name": "github.com/mdlayher/socket",
"direct": false,
"version": "v0.5.1",
"ecosystem": "go"
},
{
"name": "github.com/microsoft/go-winio",
"direct": false,
"version": "v0.6.1",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/go-ps",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/moby/docker-image-spec",
"direct": false,
"version": "v1.3.1",
"ecosystem": "go"
},
{
"name": "github.com/moby/term",
"direct": false,
"version": "v0.5.0",
"ecosystem": "go"
},
{
"name": "github.com/morikuni/aec",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/go-digest",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/opencontainers/image-spec",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/philhofer/fwd",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/pierrec/lz4/v4",
"direct": false,
"version": "v4.1.21",
"ecosystem": "go"
},
{
"name": "github.com/pion/dtls/v3",
"direct": false,
"version": "v3.1.5",
"ecosystem": "go"
},
{
"name": "github.com/pion/logging",
"direct": false,
"version": "v0.2.4",
"ecosystem": "go"
},
{
"name": "github.com/pion/transport/v4",
"direct": false,
"version": "v4.0.2",
"ecosystem": "go"
},
{
"name": "github.com/pires/go-proxyproto",
"direct": false,
"version": "v0.8.1",
"ecosystem": "go"
},
{
"name": "github.com/pkg/errors",
"direct": false,
"version": "v0.9.1",
"ecosystem": "go"
},
{
"name": "github.com/pmezard/go-difflib",
"direct": false,
"version": "v1.0.1-0.20181226105442-5d4384ee4fb2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus-community/pro-bing",
"direct": false,
"version": "v0.4.0",
"ecosystem": "go"
},
{
"name": "github.com/quic-go/qpack",
"direct": false,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "github.com/ryuanerin/go-krypto",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/safchain/ethtool",
"direct": false,
"version": "v0.3.0",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/android_386",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/android_386",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/android_amd64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/android_amd64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/android_arm",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/android_arm",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/android_arm64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/android_arm64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/darwin_amd64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/darwin_amd64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/darwin_arm64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/darwin_arm64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/ios_amd64_simulator",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/ios_amd64_simulator",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/ios_arm64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/ios_arm64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/ios_arm64_simulator",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/ios_arm64_simulator",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_386",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_386",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_386_musl",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_386_musl",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_amd64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_amd64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_amd64_musl",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_amd64_musl",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_arm",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_arm",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_arm64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_arm64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_arm64_musl",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_arm64_musl",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_arm_musl",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_arm_musl",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_loong64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_loong64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_loong64_musl",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_loong64_musl",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_mips64le",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_mips64le",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_mipsle",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_mipsle",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_mipsle_musl",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_mipsle_musl",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_riscv64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_riscv64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_riscv64_musl",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/linux_riscv64_musl",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/tvos_amd64_simulator",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/tvos_amd64_simulator",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/tvos_arm64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/tvos_arm64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/tvos_arm64_simulator",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/tvos_arm64_simulator",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/windows_amd64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/windows_amd64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/windows_arm64",
"direct": false,
"version": "v0.0.0-20260712142643-1e5048bd5587",
"ecosystem": "go"
},
{
"name": "github.com/sagernet/cronet-go/lib/windows_arm64",
"direct": false,
"version": "v0.0.0-20260731161755-38229fb700f6",
"ecosystem": "go"
},
{
"name": "github.com/smallstep/pkcs7",
"direct": false,
"version": "v0.1.1",
"ecosystem": "go"
},
{
"name": "github.com/spf13/pflag",
"direct": false,
"version": "v1.0.9",
"ecosystem": "go"
},
{
"name": "github.com/spyzhov/ajson",
"direct": false,
"version": "v0.9.4",
"ecosystem": "go"
},
{
"name": "github.com/tailscale/certstore",
"direct": false,
"version": "v0.1.1-0.20231202035212-d3fa0460f47e",
"ecosystem": "go"
},
{
"name": "github.com/tailscale/goupnp",
"direct": false,
"version": "v1.0.1-0.20210804011211-c64d0f06ea05",
"ecosystem": "go"
},
{
"name": "github.com/tailscale/hujson",
"direct": false,
"version": "v0.0.0-20221223112325-20486734a56a",
"ecosystem": "go"
},
{
"name": "github.com/tailscale/netlink",
"direct": false,
"version": "v1.1.1-0.20240822203006-4d49adab4de7",
"ecosystem": "go"
},
{
"name": "github.com/tailscale/peercred",
"direct": false,
"version": "v0.0.0-20250107143737-35a0c7bd7edc",
"ecosystem": "go"
},
{
"name": "github.com/tailscale/web-client-prebuilt",
"direct": false,
"version": "v0.0.0-20250124233751-d4cd19a26976",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/gjson",
"direct": false,
"version": "v1.18.0",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/match",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/pretty",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/sjson",
"direct": false,
"version": "v1.2.5",
"ecosystem": "go"
},
{
"name": "github.com/tjfoc/gmsm",
"direct": false,
"version": "v1.4.1",
"ecosystem": "go"
},
{
"name": "github.com/u-root/uio",
"direct": false,
"version": "v0.0.0-20240224005618-d2acac8f3701",
"ecosystem": "go"
},
{
"name": "github.com/x448/float16",
"direct": false,
"version": "v0.8.4",
"ecosystem": "go"
},
{
"name": "github.com/youmark/pkcs8",
"direct": false,
"version": "v0.0.0-20240726163527-a2c0da244d78",
"ecosystem": "go"
},
{
"name": "github.com/zeebo/blake3",
"direct": false,
"version": "v0.2.4",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/auto/sdk",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
"direct": false,
"version": "v0.59.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel",
"direct": false,
"version": "v1.39.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp",
"direct": false,
"version": "v1.31.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/metric",
"direct": false,
"version": "v1.39.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/trace",
"direct": false,
"version": "v1.39.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/goleak",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/multierr",
"direct": false,
"version": "v1.11.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/zap/exp",
"direct": false,
"version": "v0.3.0",
"ecosystem": "go"
},
{
"name": "go4.org/mem",
"direct": false,
"version": "v0.0.0-20240501181205-ae6ca9944745",
"ecosystem": "go"
},
{
"name": "golang.org/x/oauth2",
"direct": false,
"version": "v0.34.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/term",
"direct": false,
"version": "v0.40.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/time",
"direct": false,
"version": "v0.14.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/tools",
"direct": false,
"version": "v0.42.0",
"ecosystem": "go"
},
{
"name": "golang.zx2c4.com/wintun",
"direct": false,
"version": "v0.0.0-20230126152724-0fa3db229ce2",
"ecosystem": "go"
},
{
"name": "golang.zx2c4.com/wireguard/windows",
"direct": false,
"version": "v0.5.3",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto/googleapis/rpc",
"direct": false,
"version": "v0.0.0-20251202230838-ff82c1b0f217",
"ecosystem": "go"
},
{
"name": "gopkg.in/yaml.v3",
"direct": false,
"version": "v3.0.1",
"ecosystem": "go"
},
{
"name": "gotest.tools/v3",
"direct": false,
"version": "v3.5.1",
"ecosystem": "go"
},
{
"name": "lukechampine.com/blake3",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "zombiezen.com/go/capnproto2",
"direct": false,
"version": "v2.18.2+incompatible",
"ecosystem": "go"
}
],
"collected": true,
"truncated": false,
"total_count": 256,
"direct_count": 83,
"indirect_count": 173
}
},
"maintainership": {
"issues": {
"open_prs": 42,
"merged_prs": 204,
"open_issues": 242,
"closed_ratio": 0.925,
"closed_issues": 3001,
"closed_unmerged_prs": 446
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "nekohasekai",
"commits": 2362,
"avatar_url": "https://avatars.githubusercontent.com/u/56506714?v=4"
},
{
"type": "User",
"login": "dyhkwong",
"commits": 19,
"avatar_url": "https://avatars.githubusercontent.com/u/50692134?v=4"
},
{
"type": "User",
"login": "H1JK",
"commits": 14,
"avatar_url": "https://avatars.githubusercontent.com/u/106379370?v=4"
},
{
"type": "User",
"login": "anytls",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/198425817?v=4"
},
{
"type": "User",
"login": "xchacha20-poly1305",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/139959885?v=4"
},
{
"type": "User",
"login": "Mahdi-zarei",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/80265960?v=4"
},
{
"type": "User",
"login": "wwqgtxx",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/582584?v=4"
},
{
"type": "User",
"login": "arm64v8a",
"commits": 4,
"avatar_url": "https://avatars.githubusercontent.com/u/48624112?v=4"
},
{
"type": "User",
"login": "hiddify-com",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/114227601?v=4"
},
{
"type": "User",
"login": "Fei1Yang",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/48410544?v=4"
}
],
"contributors_sampled": 97,
"top_contributor_share": 0.931
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"build.yml",
"docker.yml",
"lint.yml",
"linux.yml",
"stale.yml",
"test.yml"
],
"has_docs_dir": true,
"linter_configs": [
".golangci.yml"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"go.sum"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 8,
"reason": "binaries present in source code",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": null,
"reason": "no pull request found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 4 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 10,
"reason": "project is fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 9,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 3,
"reason": "dependency not pinned by hash detected -- score normalized to 3",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "no SAST tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 0,
"reason": "Project has not signed or included provenance with any releases.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "41 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "d2438c2867ab055a88e622a8f164b2091ae6601d",
"ran_at": "2026-08-02T04:23:53Z",
"aggregate_score": 4.6,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-08-02T02:15:04Z",
"oldest_open_prs": [
{
"number": 3896,
"created_at": "2026-03-11T10:42:51Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3897,
"created_at": "2026-03-11T10:44:48Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3898,
"created_at": "2026-03-11T12:14:11Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3900,
"created_at": "2026-03-11T12:14:27Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3913,
"created_at": "2026-03-14T08:23:34Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3936,
"created_at": "2026-03-19T02:36:48Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3937,
"created_at": "2026-03-19T02:48:21Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3979,
"created_at": "2026-03-31T07:16:41Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3985,
"created_at": "2026-04-01T06:53:10Z",
"last_comment_at": "2026-04-03T08:06:08Z",
"last_comment_author": "kavore"
},
{
"number": 4012,
"created_at": "2026-04-08T16:18:26Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 4014,
"created_at": "2026-04-08T19:46:35Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 4021,
"created_at": "2026-04-10T06:56:26Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 4040,
"created_at": "2026-04-13T15:37:20Z",
"last_comment_at": "2026-04-13T15:39:45Z",
"last_comment_author": "major1201"
},
{
"number": 4064,
"created_at": "2026-04-21T06:05:48Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 4077,
"created_at": "2026-04-24T20:31:10Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 4079,
"created_at": "2026-04-26T04:47:01Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 4081,
"created_at": "2026-04-26T05:47:49Z",
"last_comment_at": "2026-04-28T01:38:15Z",
"last_comment_author": "nekohasekai"
},
{
"number": 4102,
"created_at": "2026-05-02T10:53:11Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 4108,
"created_at": "2026-05-04T04:58:16Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 4138,
"created_at": "2026-05-14T11:39:05Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-22T07:24:20Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 353,
"created_at": "2023-02-09T09:19:19Z",
"last_comment_at": "2026-05-11T02:16:33Z",
"last_comment_author": "github-actions"
},
{
"number": 1263,
"created_at": "2023-12-20T10:08:26Z",
"last_comment_at": "2025-04-19T10:22:59Z",
"last_comment_author": "nokaka"
},
{
"number": 1494,
"created_at": "2024-02-24T12:07:20Z",
"last_comment_at": "2025-02-15T05:01:54Z",
"last_comment_author": "hellodword"
},
{
"number": 1564,
"created_at": "2024-03-12T15:20:09Z",
"last_comment_at": "2024-08-20T23:20:42Z",
"last_comment_author": "dKenGuru"
},
{
"number": 1616,
"created_at": "2024-03-24T08:02:01Z",
"last_comment_at": "2026-01-30T16:50:38Z",
"last_comment_author": "StarHzj"
},
{
"number": 1681,
"created_at": "2024-04-13T09:13:14Z",
"last_comment_at": "2024-06-17T01:53:32Z",
"last_comment_author": "github-actions"
},
{
"number": 1738,
"created_at": "2024-05-05T09:42:52Z",
"last_comment_at": "2025-04-16T09:04:48Z",
"last_comment_author": "BK8000L"
},
{
"number": 1825,
"created_at": "2024-06-03T06:09:13Z",
"last_comment_at": "2024-08-04T22:08:00Z",
"last_comment_author": "Anderhar"
},
{
"number": 1851,
"created_at": "2024-06-10T15:39:38Z",
"last_comment_at": "2024-06-13T23:51:23Z",
"last_comment_author": "demarcush"
},
{
"number": 1862,
"created_at": "2024-06-13T05:07:22Z",
"last_comment_at": "2024-08-16T02:03:53Z",
"last_comment_author": "dowson521"
},
{
"number": 1911,
"created_at": "2024-07-04T02:20:08Z",
"last_comment_at": "2025-05-09T11:45:09Z",
"last_comment_author": null
},
{
"number": 1988,
"created_at": "2024-07-27T15:06:21Z",
"last_comment_at": "2024-09-08T13:42:08Z",
"last_comment_author": "molink36"
},
{
"number": 1990,
"created_at": "2024-07-28T10:58:40Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2001,
"created_at": "2024-08-04T03:20:57Z",
"last_comment_at": "2024-08-06T08:27:20Z",
"last_comment_author": "ericsyj"
},
{
"number": 2031,
"created_at": "2024-08-16T12:01:33Z",
"last_comment_at": "2024-10-15T04:43:22Z",
"last_comment_author": "stek29"
},
{
"number": 2045,
"created_at": "2024-08-19T08:43:29Z",
"last_comment_at": "2025-12-15T03:21:54Z",
"last_comment_author": "imoonkin"
},
{
"number": 2093,
"created_at": "2024-09-08T06:21:49Z",
"last_comment_at": "2025-01-21T19:05:32Z",
"last_comment_author": "swysgh"
},
{
"number": 2107,
"created_at": "2024-09-13T13:28:24Z",
"last_comment_at": "2024-09-14T01:32:34Z",
"last_comment_author": "nekohasekai"
},
{
"number": 2130,
"created_at": "2024-09-21T21:53:12Z",
"last_comment_at": "2026-03-14T18:20:24Z",
"last_comment_author": "this-cat"
},
{
"number": 2133,
"created_at": "2024-09-23T15:22:32Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/SagerNet/sing-box",
"host": "github.com",
"name": "sing-box",
"owner": "SagerNet"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 73,
"inputs": {
"security": 46,
"vitality": 95,
"community": 73,
"governance": 63,
"engineering": 80
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 95,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 98,
"inputs": {
"commits_last_year": 688,
"human_commit_share": 1,
"days_since_last_push": 1,
"active_weeks_last_year": 49
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 1 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 1
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "49/52 weeks with commits",
"points": 33.9,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 49
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "688 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 688
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 100,
"latest_release_tag": "v1.14.0-beta.4",
"releases_from_tags": false,
"days_since_latest_release": 1,
"mean_days_between_releases": 1.7
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "100 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 100
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 1 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 1
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~1.7 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 1.7
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 1,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 1 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 1
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "good",
"name": "Community & Adoption",
"value": 73,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 98,
"inputs": {
"forks": 4382,
"stars": 36636,
"watchers": 193,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "36,636 stars",
"points": 60,
"status": "met",
"details": [
{
"code": "stars",
"params": {
"count": 36636
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "4,382 forks",
"points": 25,
"status": "met",
"details": [
{
"code": "forks",
"params": {
"count": 4382
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "193 watchers",
"points": 12.7,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 193
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "at_risk",
"name": "Community health",
"note": null,
"notes": [],
"value": 44,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "license file present, not a recognized license",
"points": 16.9,
"status": "partial",
"details": [
{
"code": "license_custom",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 63,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 34,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 97,
"top_contributor_share": 0.931
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 93% of commits",
"points": 1.6,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 93
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "97 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 97
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 4 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 55,
"inputs": {
"merged_prs": 204,
"open_issues": 242,
"closed_issues": 3001,
"issue_closed_ratio": 0.925,
"closed_unmerged_prs": 446
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "92% of issues closed",
"points": 43.2,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 92
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "204/650 decided PRs merged",
"points": 12,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 204,
"decided": 650
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 78,
"inputs": {
"followers": 2399,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "SagerNet",
"public_repos": 96,
"account_age_days": 1923
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "organization-owned",
"points": 30,
"status": "met",
"details": [
{
"code": "owner_organization",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "2,399 followers of SagerNet",
"points": 24.3,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 2399,
"login": "SagerNet"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "96 public repos, account ~5 yr old",
"points": 23.5,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 96
}
},
{
"code": "account_age_years",
"params": {
"years": 5
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/sagernet/sing-box"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 3
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on go",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "go"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 3 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 3
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "561 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 561
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 80,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 80,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "6 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 6
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": ".golangci.yml",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yml"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "good",
"name": "Documentation",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"topics": [],
"has_wiki": false,
"homepage": "https://sing-box.sagernet.org/",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://sing-box.sagernet.org/",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 46,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 46,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 4.6
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "binaries present in source code",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 4 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is fuzzed",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 3",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "no SAST tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "41 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "at_risk",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 256 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 256
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 44,
"inputs": {
"source": "osv",
"advisories": 66,
"affected_packages": 12,
"assessed_packages": 256,
"unassessed_packages": 0,
"affected_by_severity": "critical 2, high 3, moderate 2, low 1, unknown 4",
"direct_affected_packages": 6
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "6 affected: golang.org/x/crypto v0.48.0 (critical 10.0), google.golang.org/grpc v1.79.1 (critical 9.1), golang.org/x/net v0.50.0 (moderate 6.5), +3 more",
"points": 4.3,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 6,
"packages": "golang.org/x/crypto v0.48.0 (critical 10.0), google.golang.org/grpc v1.79.1 (critical 9.1), golang.org/x/net v0.50.0 (moderate 6.5)"
}
},
{
"code": "advisories_affected_more",
"params": {
"count": 3
}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "2 advisory-carrying package(s) unaddressed past 90 days; oldest published 156 days ago",
"points": 28.8,
"status": "partial",
"details": [
{
"code": "advisories_stale",
"params": {
"days": 90,
"count": 2,
"oldest": 156
}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 256,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"commit_weight_rule": {
"min_commits": 50,
"min_commit_share": 0.1
},
"review_only_matches": 0,
"below_threshold_exposures": [],
"assessed_self_published_locations": 4
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 57,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 20,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.38,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "38 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 20.3,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 38,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [
"Makefile"
],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [
"go.mod",
"test/go.mod"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": ".golangci.yml",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yml"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 3",
"points": 3,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 244607,
"source_files_sampled": 1056,
"oversized_source_files": 7
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Go (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "7/1056 source files over 60KB",
"points": 54.6,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 1056,
"oversized": 7
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [],
"has_mcp_signal": false,
"api_schema_files": [
"daemon/managed_service.proto",
"daemon/started_service.proto",
"experimental/boxdd/desktop_service.proto",
"experimental/v2rayapi/stats.proto",
"transport/v2raygrpc/stream.proto"
]
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": "daemon/managed_service.proto, daemon/started_service.proto, experimental/boxdd/desktop_service.proto, experimental/v2rayapi/stats.proto, transport/v2raygrpc/stream.proto",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "daemon/managed_service.proto, daemon/started_service.proto, experimental/boxdd/desktop_service.proto, experimental/v2rayapi/stats.proto, transport/v2raygrpc/stream.proto"
}
}
],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.14.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-08-02T04:24:11.823710Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/SagerNet/sing-box.svg",
"full_name": "SagerNet/sing-box",
"license_state": "custom",
"license_spdx": null
}