Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [
"linux",
"poweruser",
"productivity",
"app-launcher",
"nodejs",
"qt",
"react",
"raycast",
"cpp23",
"macos"
],
"is_fork": false,
"size_kb": 146618,
"has_wiki": false,
"homepage": "https://vicinae.com",
"languages": {
"C": 6261,
"C++": 5450468,
"Nix": 24150,
"QML": 445053,
"GLSL": 3666,
"HTML": 2071,
"CMake": 88863,
"Shell": 42135,
"Swift": 10583,
"Python": 3403,
"Makefile": 10941,
"Dockerfile": 11961,
"Inno Setup": 3097,
"JavaScript": 18536,
"PowerShell": 10146,
"TypeScript": 264486,
"Objective-C++": 122110
},
"pushed_at": "2026-07-23T22:22:40Z",
"created_at": "2025-07-28T03:49:03Z",
"owner_type": "Organization",
"updated_at": "2026-07-23T22:22:43Z",
"description": "A focused launcher for your desktop - native, fast, extensible",
"is_archived": false,
"is_disabled": false,
"license_spdx": "GPL-3.0",
"default_branch": "main",
"license_spdx_raw": "GPL-3.0",
"primary_language": "C++",
"significant_languages": [
"C++"
]
},
"owner": {
"blog": "https://docs.vicinae.com",
"name": "Vicinae HQ",
"type": "Organization",
"login": "vicinaehq",
"company": null,
"location": null,
"followers": 88,
"avatar_url": "https://avatars.githubusercontent.com/u/223195236?v=4",
"created_at": "2025-07-28T03:08:02Z",
"is_verified": null,
"public_repos": 9,
"account_age_days": 360
},
"license": {
"state": "standard",
"spdx_id": "GPL-3.0",
"raw_spdx": "GPL-3.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.23.2",
"kind": "patch",
"published_at": "2026-07-18T15:34:23Z"
},
{
"tag": "v0.23.1",
"kind": "patch",
"published_at": "2026-07-09T23:31:28Z"
},
{
"tag": "v0.23.0",
"kind": "minor",
"published_at": "2026-07-07T20:49:10Z"
},
{
"tag": "v0.22.3",
"kind": "patch",
"published_at": "2026-07-02T16:31:16Z"
},
{
"tag": "v0.22.2",
"kind": "patch",
"published_at": "2026-07-02T01:09:14Z"
},
{
"tag": "v0.22.1",
"kind": "patch",
"published_at": "2026-07-02T01:26:19Z"
},
{
"tag": "v0.22.0",
"kind": "minor",
"published_at": "2026-06-21T20:44:52Z"
},
{
"tag": "v0.21.7",
"kind": "patch",
"published_at": "2026-06-15T00:29:53Z"
},
{
"tag": "v0.21.6",
"kind": "patch",
"published_at": "2026-06-06T19:11:19Z"
},
{
"tag": "v0.21.5",
"kind": "patch",
"published_at": "2026-06-01T09:50:24Z"
},
{
"tag": "v0.21.4",
"kind": "patch",
"published_at": "2026-06-01T00:42:25Z"
},
{
"tag": "v0.21.3",
"kind": "patch",
"published_at": "2026-05-30T23:35:59Z"
},
{
"tag": "v0.21.2",
"kind": "patch",
"published_at": "2026-05-26T21:48:12Z"
},
{
"tag": "v0.21.1",
"kind": "patch",
"published_at": "2026-05-24T15:01:08Z"
},
{
"tag": "v0.21.0",
"kind": "minor",
"published_at": "2026-05-14T12:26:39Z"
},
{
"tag": "v0.20.15",
"kind": "patch",
"published_at": "2026-05-02T21:19:22Z"
},
{
"tag": "v0.20.14",
"kind": "patch",
"published_at": "2026-04-26T22:44:50Z"
},
{
"tag": "v0.20.13",
"kind": "patch",
"published_at": "2026-04-16T12:07:54Z"
},
{
"tag": "v0.20.12",
"kind": "patch",
"published_at": "2026-04-06T18:57:27Z"
},
{
"tag": "v0.20.11",
"kind": "patch",
"published_at": "2026-04-05T20:03:21Z"
},
{
"tag": "v0.20.10",
"kind": "patch",
"published_at": "2026-04-04T18:22:17Z"
},
{
"tag": "v0.20.9",
"kind": "patch",
"published_at": "2026-03-27T13:12:35Z"
},
{
"tag": "v0.20.8",
"kind": "patch",
"published_at": "2026-03-23T11:59:55Z"
},
{
"tag": "v0.20.7",
"kind": "patch",
"published_at": "2026-03-16T19:51:05Z"
},
{
"tag": "v0.20.6",
"kind": "patch",
"published_at": "2026-03-14T22:30:54Z"
},
{
"tag": "v0.20.5",
"kind": "patch",
"published_at": "2026-03-09T23:43:50Z"
},
{
"tag": "v0.20.4",
"kind": "patch",
"published_at": "2026-03-09T00:26:57Z"
},
{
"tag": "v0.20.3",
"kind": "patch",
"published_at": "2026-03-05T14:53:57Z"
},
{
"tag": "v0.20.2",
"kind": "patch",
"published_at": "2026-03-01T02:29:12Z"
},
{
"tag": "v0.20.1",
"kind": "patch",
"published_at": "2026-02-27T23:13:39Z"
},
{
"tag": "v0.20.0",
"kind": "minor",
"published_at": "2026-02-26T17:41:56Z"
},
{
"tag": "v0.19.9",
"kind": "patch",
"published_at": "2026-02-16T16:08:05Z"
},
{
"tag": "v0.19.8",
"kind": "patch",
"published_at": "2026-02-14T02:14:58Z"
},
{
"tag": "v0.19.7",
"kind": "patch",
"published_at": "2026-02-09T22:31:36Z"
},
{
"tag": "v0.19.6",
"kind": "patch",
"published_at": "2026-02-06T14:56:56Z"
},
{
"tag": "v0.19.4",
"kind": "patch",
"published_at": "2026-02-05T21:09:23Z"
},
{
"tag": "v0.19.5",
"kind": "patch",
"published_at": "2026-02-06T01:32:33Z"
},
{
"tag": "v0.19.3",
"kind": "patch",
"published_at": "2026-01-27T21:32:46Z"
},
{
"tag": "v0.19.2",
"kind": "patch",
"published_at": "2026-01-25T14:16:45Z"
},
{
"tag": "v0.19.1",
"kind": "patch",
"published_at": "2026-01-22T12:08:36Z"
},
{
"tag": "v0.19.0",
"kind": "minor",
"published_at": "2026-01-18T23:13:26Z"
},
{
"tag": "v0.18.3",
"kind": "patch",
"published_at": "2026-01-08T17:39:15Z"
},
{
"tag": "v0.18.2",
"kind": "patch",
"published_at": "2026-01-07T20:01:00Z"
},
{
"tag": "v0.18.1",
"kind": "patch",
"published_at": "2026-01-04T14:02:08Z"
},
{
"tag": "v0.18.0",
"kind": "minor",
"published_at": "2026-01-02T11:28:45Z"
},
{
"tag": "v0.17.3",
"kind": "patch",
"published_at": "2025-12-25T21:15:01Z"
},
{
"tag": "v0.17.2",
"kind": "patch",
"published_at": "2025-12-23T03:39:08Z"
},
{
"tag": "v0.17.1",
"kind": "patch",
"published_at": "2025-12-22T03:14:54Z"
},
{
"tag": "v0.17.0",
"kind": "minor",
"published_at": "2025-12-20T21:05:00Z"
},
{
"tag": "v0.16.14",
"kind": "patch",
"published_at": "2025-12-09T09:33:36Z"
},
{
"tag": "v0.16.13",
"kind": "patch",
"published_at": "2025-12-07T15:21:25Z"
},
{
"tag": "v0.16.12",
"kind": "patch",
"published_at": "2025-12-05T13:05:57Z"
},
{
"tag": "v0.16.11",
"kind": "patch",
"published_at": "2025-12-01T11:40:01Z"
},
{
"tag": "v0.16.10",
"kind": "patch",
"published_at": "2025-11-23T22:06:54Z"
},
{
"tag": "v0.16.9",
"kind": "patch",
"published_at": "2025-11-23T19:01:33Z"
},
{
"tag": "v0.16.8",
"kind": "patch",
"published_at": "2025-11-18T22:46:46Z"
},
{
"tag": "v0.16.7",
"kind": "patch",
"published_at": "2025-11-17T21:54:59Z"
},
{
"tag": "v0.16.6",
"kind": "patch",
"published_at": "2025-11-14T21:34:09Z"
},
{
"tag": "v0.16.5",
"kind": "patch",
"published_at": "2025-11-12T11:21:42Z"
},
{
"tag": "v0.16.4",
"kind": "patch",
"published_at": "2025-11-11T23:31:12Z"
},
{
"tag": "v0.16.3",
"kind": "patch",
"published_at": "2025-11-11T21:11:44Z"
},
{
"tag": "v0.16.2",
"kind": "patch",
"published_at": "2025-11-06T11:35:59Z"
},
{
"tag": "v0.16.1",
"kind": "patch",
"published_at": "2025-11-03T07:22:07Z"
},
{
"tag": "v0.16.0",
"kind": "minor",
"published_at": "2025-10-31T21:57:05Z"
},
{
"tag": "v0.15.7",
"kind": "patch",
"published_at": "2025-10-28T19:01:31Z"
},
{
"tag": "v0.15.6",
"kind": "patch",
"published_at": "2025-10-26T23:05:45Z"
},
{
"tag": "v0.15.5",
"kind": "patch",
"published_at": "2025-10-25T15:39:48Z"
},
{
"tag": "v0.15.4",
"kind": "patch",
"published_at": "2025-10-25T05:12:02Z"
},
{
"tag": "v0.15.3",
"kind": "patch",
"published_at": "2025-10-23T01:15:59Z"
},
{
"tag": "v0.15.2",
"kind": "patch",
"published_at": "2025-10-21T23:06:35Z"
},
{
"tag": "v0.15.1",
"kind": "patch",
"published_at": "2025-10-19T20:41:21Z"
},
{
"tag": "v0.15.0",
"kind": "minor",
"published_at": "2025-10-19T02:06:34Z"
},
{
"tag": "v0.14.5",
"kind": "patch",
"published_at": "2025-10-12T02:31:32Z"
},
{
"tag": "v0.14.4",
"kind": "patch",
"published_at": "2025-10-11T00:59:00Z"
},
{
"tag": "v0.14.3",
"kind": "patch",
"published_at": "2025-10-08T14:53:54Z"
},
{
"tag": "v0.14.2",
"kind": "patch",
"published_at": "2025-10-07T01:08:21Z"
},
{
"tag": "v0.14.1",
"kind": "patch",
"published_at": "2025-10-03T18:35:41Z"
},
{
"tag": "v0.14.0",
"kind": "minor",
"published_at": "2025-10-03T01:13:47Z"
},
{
"tag": "v0.13.4",
"kind": "patch",
"published_at": "2025-09-30T00:35:42Z"
},
{
"tag": "v0.13.3",
"kind": "patch",
"published_at": "2025-09-28T15:01:59Z"
},
{
"tag": "v0.13.2",
"kind": "patch",
"published_at": "2025-09-27T20:53:54Z"
},
{
"tag": "v0.13.1",
"kind": "patch",
"published_at": "2025-09-27T11:18:22Z"
},
{
"tag": "v0.13.0",
"kind": "minor",
"published_at": "2025-09-26T14:38:16Z"
},
{
"tag": "v0.12.2",
"kind": "patch",
"published_at": "2025-09-20T17:06:33Z"
},
{
"tag": "v0.12.1",
"kind": "patch",
"published_at": "2025-09-19T18:25:05Z"
},
{
"tag": "v0.12.0",
"kind": "minor",
"published_at": "2025-09-19T14:27:28Z"
},
{
"tag": "v0.11.0",
"kind": "minor",
"published_at": "2025-09-17T09:05:07Z"
},
{
"tag": "v0.10.0",
"kind": "minor",
"published_at": "2025-09-15T12:40:35Z"
},
{
"tag": "v0.9.6",
"kind": "patch",
"published_at": "2025-09-13T11:15:14Z"
},
{
"tag": "v0.9.5",
"kind": "patch",
"published_at": "2025-09-11T09:10:14Z"
},
{
"tag": "v0.9.4",
"kind": "patch",
"published_at": "2025-09-10T14:23:00Z"
},
{
"tag": "v0.9.2",
"kind": "patch",
"published_at": "2025-09-09T11:30:51Z"
},
{
"tag": "v0.9.1",
"kind": "patch",
"published_at": "2025-09-06T17:32:54Z"
},
{
"tag": "v0.9.0",
"kind": "minor",
"published_at": "2025-09-06T15:59:16Z"
},
{
"tag": "v0.8.5",
"kind": "patch",
"published_at": "2025-09-04T09:08:14Z"
},
{
"tag": "v0.8.4",
"kind": "patch",
"published_at": "2025-09-03T04:53:02Z"
},
{
"tag": "v0.8.3",
"kind": "patch",
"published_at": "2025-09-02T05:49:09Z"
},
{
"tag": "v0.8.2",
"kind": "patch",
"published_at": "2025-08-30T23:39:16Z"
},
{
"tag": "v0.8.1",
"kind": "patch",
"published_at": "2025-08-29T15:44:49Z"
},
{
"tag": "v0.8.0",
"kind": "minor",
"published_at": "2025-08-29T02:51:21Z"
}
],
"recent_commits": [
{
"oid": "de75102a08956b339c3b282dd43ec9eef3b743a0",
"body": "Now that we use an event tap to implement global shortcuts it is pretty much mandatory for us to be granted the accessibility permission on macOS. It was already required for several things such as paste, snippets, etc... to work.\n\nRequiring it at startup is more honest and avoids creating unexpected broken states.",
"is_bot": false,
"headline": "feat(macos): make accessibility permission mandatory (#1709)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-23T22:22:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "632ca79e9f8fc9721384921f28ec069ff48aaf53",
"body": "* feat(macos): migrate global shortcut backend to use a tap\n\nWe now use a keyboard event tap in order to implement the global shortcut backend on macOS.\n\nThe main reason is that this allows us to bind more complex shortcuts that can't be handled by the Carbon API. This also makes it easier to match \n[…]\n or fallback to QWERTY for non latin scripts.\n\nThis will also allow us to set up more complex bindings in the future, such as an \"hyper key\" or similar.\n\n* refactor: use named constants where possible",
"is_bot": false,
"headline": "feat(macos): migrate global shortcut backend to use a tap (#1708)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-23T20:45:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d3abfbc2afe149d48c9bc3ba95f6689e965891c7",
"body": "No shortcut preset was set to build the detail action panel, resulting\nin the primary action not being activatable using return.",
"is_bot": false,
"headline": "fix: use list shortcut preset for extension detail views (#1707)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-23T15:11:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fdf7542d7522eec05117816635ece92efdc3d1e7",
"body": "We were using the item title as a unique key to identity list items\nwhich is obviously incorrect as duplicates can easily occur. This makes\nsure we use the `itemId` already communicated on the wire, which is\nexplicitly designed for that purpose.",
"is_bot": false,
"headline": "fix: use wire list item ID for extension lists (#1706)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-22T17:17:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "630036e784de647bcf18aedab7007ec5c4f5b2d0",
"body": "…#1625)",
"is_bot": false,
"headline": "feat(nix): build browser native host messaging into main derivation (…",
"author_name": "Yechiel",
"author_login": "yechielw",
"committed_at": "2026-07-20T19:21:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9a2c9ebee8f2d23e810c4d90122de701541dc086",
"body": null,
"is_bot": false,
"headline": "refactor: move tryAliasFastTrack into root-view-host (#1703)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-20T00:42:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "60ef1778978bbca253ddd1fd7f22be13271a86da",
"body": null,
"is_bot": false,
"headline": "fix: fully remove default action wrapper usage",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-19T23:59:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d3cff5873211d40ff3a197346ac52c155293229",
"body": "* feat: root search history\n\n* feat: skip entry if equal to search text\n\n* feat: honor special keybind up key\n\n* refactor: remove default action wrapper",
"is_bot": false,
"headline": "feat: root search history (#1702)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-19T23:45:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e7ee1d6401bb9e8547c21bdfac85f3f572caf27f",
"body": "* fix(hyprpaper): remove deprecated commands and migrate to current\nsyntax.\n\n* fix: format",
"is_bot": false,
"headline": "fix(hyprpaper): remove deprecated and migrate to current syntax (#1700)",
"author_name": "vMohammad",
"author_login": "vMohammad24",
"committed_at": "2026-07-19T12:36:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "74b4b62177a7e001a9d557bc76841b59341198a0",
"body": null,
"is_bot": false,
"headline": "feat: windows wallpaper backend (#1699)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-18T23:51:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eee05cd9ed6f79d89721f23dadc2305313c3ac58",
"body": "Suppress keyup events as we hide the vicinae window or trigger a global\nshortcut.\n\nThis trick is required so that we don't end up leaking keyup events to\nwhatever is below the vicinae window.\n\nTwo typical examples:\n- <toggle_shortcut> like Ctrl+Space -> on close, the space keyup event\n is sent to t\n[…]\nnerally leaked and can result in undesirable behavior such as\n undoing fullscreen of an application for instance.\n\nPopular Windows launchers like Flow Launcher and PowerToys Run also have this issue.",
"is_bot": false,
"headline": "feat(windows): suppress leaked keyup events (#1698)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-18T23:31:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c55e85716e3e7a68f4b0f6ef6299d02a49623c7c",
"body": null,
"is_bot": false,
"headline": "chore: bump to v0.23.2",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-18T15:23:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "27062766054e847e1749785e45edfac50455bcb7",
"body": null,
"is_bot": false,
"headline": "fix: do not use first dropdown value as default for extensions",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-18T15:22:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35d46da8887e674e94331d3206c9893d56870dc3",
"body": null,
"is_bot": false,
"headline": "feat(script): allow install from local appimage",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-18T14:16:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "969deee08d8d959e31ca2e0e83e395829c0d5ffb",
"body": "Extension commands can now specify a `keywords` array in their manifest\nin order for it to get indexed against these as well. Note that\nkeywords carry less weight than the command name.",
"is_bot": false,
"headline": "feat: implement extension manifest command keywords (#1695)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-18T13:35:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "77b5356d43453289345e593e30e8c4ad597f39f5",
"body": null,
"is_bot": false,
"headline": "fix(appimage): input server not working (#1693)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-18T13:23:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "78eb33e27a160a6fe22df25eed45081cd10a0ef8",
"body": null,
"is_bot": false,
"headline": "feat: show current time as default nav title in root (#1692)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-18T12:18:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b6bb83ed42d67f81cc3b289246510a52485d40eb",
"body": null,
"is_bot": false,
"headline": "feat: make navigation wrapping opt-in (#1688)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-18T00:49:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2cac296c80197135632cb3134d542dec54954a27",
"body": "* feat: add pagination hook\n\n* feat: implement extension pagination\n\n* feat: add paginated list examples\n\n* fix: erroneous load more calls\n\n* fix: pagination loadMore type\n\n* fix: format",
"is_bot": false,
"headline": "feat(api): add pagination for List and Grid components (#1687)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-17T23:48:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bb5b8664fe6a46ef25503f90ac5ba713e99737a5",
"body": "* feat: adds new cmd verb to cli and attaches cwd to extension launch from it\n\n* feat: allow listing/launching all kinds of entrypoints\n\n* feat: add LaunchType.CommandLine for cli usage, and use cwd\n\n* feat: pass cwd as launch prop instead of process.cwd\n\n* feat: pass fallback text in launch props\n\n\n[…]\n* feat: cli alias\n\n* chore: better error message when launching command\n\n* fix: argument passing\n\n* feat: pass command name in json output\n\n---------\n\nCo-authored-by: Aurelien Brabant <gh@aurelle.dev>",
"is_bot": false,
"headline": "feat: vicinae cmd CLI commands (#1661)",
"author_name": "Fredrik Mikal Wold",
"author_login": "FredrikMWold",
"committed_at": "2026-07-17T18:22:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7af67e64714e96171300478114b72e75b8c1e755",
"body": null,
"is_bot": false,
"headline": "feat(nix): add launchd (macOS) support to home-manager module (#1682)",
"author_name": "Daniel Lazaro",
"author_login": "dnlzro",
"committed_at": "2026-07-17T13:14:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "51a9987f288dd083fdaa8774443d058d3c557035",
"body": null,
"is_bot": false,
"headline": "fix: apply new scroll handler to all scrollables (#1685)",
"author_name": "Fredrik Mikal Wold",
"author_login": "FredrikMWold",
"committed_at": "2026-07-17T12:58:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6e9c29ea94d22b0b41e4c64e4551b8a629782de3",
"body": null,
"is_bot": false,
"headline": "fix(macos): prevent clipboard copy HUD stealing focus (#1676)",
"author_name": "Tinkerbells",
"author_login": "Tinkerbells",
"committed_at": "2026-07-17T00:57:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f1e4cff7a2fd3f0dc0d9cd4b58f2255f159a79fa",
"body": null,
"is_bot": false,
"headline": "refactor: pass command controller by reference (#1674)",
"author_name": "ayn2op",
"author_login": "ayn2op",
"committed_at": "2026-07-17T00:57:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d49eb96243bfc841aae5640bacb56e80095c71d5",
"body": "Run VACUUM on the file indexer db when there is enough data to reclaim\nfrom it. Vacuuming does a full rewrite of the DB so we don't want to do\nit on each startup.",
"is_bot": false,
"headline": "feat(indexer): VACUUM db when enough to reclaim (#1683)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-17T00:35:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "67f3f5ea71a165d2a85c720ca8d7333fa9111f9c",
"body": "Currently scan records accumulate indefinitely in the file indexer\ndatabase which is not very useful. We only care about the last scan for\na given entrypoint.",
"is_bot": false,
"headline": "feat(indexer): prune old scan records (#1681)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-16T23:06:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "818111a9a4ea895e2642a9da59c7f95e72388916",
"body": "* feat: use fixed size thread pool to enqueue scans\n\nInstead of creating one thread per enqueued scan we now dispatch scans\nto a fixed size thread pool. This way concurrency remains fully bounded\nand we don't end up spinning up potentially thousand of threads in some\nscenarios.\n\n* fix: format",
"is_bot": false,
"headline": "feat(indexer): use fixed size thread pool to enqueue scans (#1680)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-16T21:37:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6ff786a409d440015a94456d9583b9e60d979aa3",
"body": "* feat: windows settings and control panel applets\n\nAdd two new root search providers: one to list all modern Windows\nsettings, and the other to list all the control panel applets. They are\ndistinct providers so that it is easy for the user to disable one or the\nother completely (there are a lot of control panel applets, and some\nusers may not want them in the root search).\n\n* feat: use generic action name to open control panel applets\n\n* feat: use std::array where available",
"is_bot": false,
"headline": "feat: windows settings and control panel applets (#1679)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-16T18:23:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b8bd9b02504c8f623b5bdf8ffe6df9e8e790c792",
"body": null,
"is_bot": false,
"headline": "feat: handle url scheme on windows (#1677)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-16T15:22:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a69aebb242724d5ac5261ec2c0cd66502e3b7999",
"body": "* feat: make browser link fully cross platform\n\nThe browser link binary, invoked by the native messaging host, was using\npoll to read stdin/incoming vicinae messages. This made it not Windows\ncompatible so this PR refactors it to use a QEventLoop and a\nQLocalSocket in order to communicate with the v\n[…]\nlevant.\n\nThat same code should work on all platforms at once.\n\nBefore merging this needs testing on:\n- [ ] macOS\n- [ ] Linux\n\nJust to make sure those didn't break following this change.\n\n* fix: format",
"is_bot": false,
"headline": "feat: make browser link fully cross platform (#1675)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-16T13:38:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0274ef4087032795d4ba06b05c0fdfc7778069a4",
"body": "* feat: windows installer\n\n* chore: change installer name and location",
"is_bot": false,
"headline": "feat: windows installer (#1673)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-16T01:30:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "377450e3edadda1a7c9dea0d85bc493289903de6",
"body": "* feat: windows app runtime\n\nImplements the `AbstractAppRuntime` interface on Windows in order to\nsupport the active app indicator, frontmost app API, and quit/force quit\napps.\n\nThis is pretty much a mirror of the XDG (linux) implementation, we use\nthe window manager to map apps to their window and classify an app with\nan open window as running.\n\n* refactor: use optional instead of 0 sentinel for non pid",
"is_bot": false,
"headline": "feat: windows app runtime (#1671)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-15T19:26:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3840525de0585ff12199c42b54490eed47e37a38",
"body": "* feat: windows window management\n\n* fix: hide windows that are not bound to any virtual desktop\n\n* feat(api): make window.monitorId optional\n\n* refactor: better getter for workspace name",
"is_bot": false,
"headline": "feat: windows window management (#1670)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-15T18:23:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "04a44c226c36bf5359ba04193b9130872a675fbd",
"body": null,
"is_bot": false,
"headline": "fix(api): set jsx mode to automatic",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-15T16:48:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "726dfb443dcf04899999e83de9b9e15facdb20ea",
"body": "* fix(api): use named pipe to connect to vicinae server\n\n* feat: typecheck using ts compiler api directly\n\nThis way we no longer need to invoke npx and no longer assume the\nextension has TypeScript installed.\n\n* feat: use proper path to output extensions at\n\n* fix: nix hash\n\n* feat: enforce required typescript options",
"is_bot": false,
"headline": "feat: extension tooling on windows (#1669)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-15T13:22:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cc039e5264b4a76e7ed0a3099fc951a3d94c7825",
"body": null,
"is_bot": false,
"headline": "feat: windows paste service (#1668)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-14T23:30:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "736a6ca828120794bf03b35f15907f1815a24d11",
"body": "* feat: windows file search using system WSearch\n\n* fix: format",
"is_bot": false,
"headline": "feat: windows file search using built-in index (#1667)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-14T22:58:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "84bfbbe1d30259ee8fbbb1de2a2d94c13433aae3",
"body": null,
"is_bot": false,
"headline": "fix: format",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-14T20:03:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "129640b0ac17e8dfe70b761c398011d184ad2983",
"body": "* feat: windows clipboard history\n\n* refactor: extract to constants and prioritize image to http uris\n\n* fix: format\n\n* refactor: remove already defined headers",
"is_bot": false,
"headline": "feat: windows clipboard history (#1665)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-14T19:59:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "133506c26c800cf62cbdc18296c4da96a2e70d0c",
"body": null,
"is_bot": false,
"headline": "chore: remove Windows specific popup code",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-14T16:15:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0d1d390274df953af9197becef80a1d338ce47b7",
"body": "* feat: use native windows chrome for window and hud\n\n* fix: format\n\n* chore: add Windows formatting instructions\n\n* fix: shortcut activation and keyboard focus\n\n* refactor: get rid of resetAfterHide trick\n\n* refactor: remove adoptWindows hack\n\n* feat: always use in scene popups\n\n* fix: get rid of acrylic popup opacity",
"is_bot": false,
"headline": "feat: use native windows chrome for window and hud (#1662)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-14T16:14:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "94f9570f096a407d27e18073d1b01dae13c4d064",
"body": "Raycast types `filtering` as `boolean | { keepSectionOrder: boolean }`, but the\nrender-payload parser only accepted a boolean. A payload containing\n`\"filtering\":{\"keepSectionOrder\":true}` aborted with `expected_true_or_false`,\nthe view never rendered, and the extension worker exited. This broke stoc\n[…]\nFilteringOptionsWire>`,\nmirroring the existing ActionPanel submenu handling, and collapse it to the\nenabled bool — the object form enables filtering (keepSectionOrder is not\nhonored yet).\n\nFixes #1581",
"is_bot": false,
"headline": "fix: accept object form of List/Grid `filtering` prop (#1651)",
"author_name": "Noam Stolero",
"author_login": "noamsto",
"committed_at": "2026-07-13T19:51:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ece22bda174350adc8a4da0b8aa283ce2284439f",
"body": null,
"is_bot": false,
"headline": "feat: force utf8 active code page (#1660)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-13T11:45:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4a3f964965d44565189f22d388b181a9e8be5cf0",
"body": null,
"is_bot": false,
"headline": "nix: fixed misleading option description (#1659)",
"author_name": "janquednau",
"author_login": "janquednau",
"committed_at": "2026-07-13T10:51:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d02d0325c45b006d7dc13c5fd32319362efe0077",
"body": "* feat: windows global shortcut backend\n\n* fix: format",
"is_bot": false,
"headline": "feat: windows global shortcut backend (#1655)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-13T10:00:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4933bfd829dcfba4a9b0a1f83a08ce8d29f16691",
"body": "* feat: windows app provider poc\n\n* feat: watch packaged apps\n\n* fix: compute proper app id for accurate dedup\n\n* add windows-relwithdebinfo preset\n\nbecause full debug builds run way too slow with MSVC and qt debug libs.\n\n* fix: resolve PIDL in .lnk files\n\n* fix: find all associations for directory\n\n[…]\nract common logic in helpers\n\n* fix: format\n\n* refactor: use std::variant to represent app kinds\n\n* fix: format\n\n* refactor: use ScopedCom for icon as well\n\n* feat: add run as admin action and cleanup",
"is_bot": false,
"headline": "feat: windows app provider (#1654)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-13T00:36:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8802754abf1c1db7db3a70004df0ea8783bed582",
"body": "address review feedback",
"is_bot": false,
"headline": "nix: add module options for the NixOS module (#1649)",
"author_name": "cswimr",
"author_login": "cswimr",
"committed_at": "2026-07-12T17:08:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e7e34695371737b371d6488c7f680b436d82093e",
"body": "* build: successful vicinae-server compile on windows\n\n* refactor: snake_case for config structs\n\nThis is unfortunately needed in order to work around an MSVC bug where\nthe transformer silently corrupts some keys.\n\nWe just use snake case directly in the code instead of converting them\nto camelCase a\n[…]\ne sccache\n\n* fix: format\n\n* feat: add clean script\n\n* fix: do not log crash on extension manager quit\n\n* build: add cmake presets for macOS and linux\n\n* build: only allow MSVC as a compiler on windows",
"is_bot": false,
"headline": "feat: build with MSVC (#1648)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-11T18:20:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "57a2e614edb0e1494b9ec73aa24b0656efa3d33c",
"body": null,
"is_bot": false,
"headline": "refactor(nav): guard native meaning behind platform checks",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-11T15:04:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b3e201ce37824db85fe9c44728750a93424b5c5a",
"body": null,
"is_bot": false,
"headline": "fix: multi file copy (#1646)",
"author_name": "Eric Kuck",
"author_login": "EricKuck",
"committed_at": "2026-07-11T15:02:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bafd52f3fee2d464b9293a72684a7dfd6ef729d4",
"body": null,
"is_bot": false,
"headline": "feat: platform specific navigation keys (#1647)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-11T14:58:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "001b8283205d6475c10d6cd85389a1cce113d92a",
"body": "* nix: implement SoulverCore nix module support for soulver-cpp\n\n* ci(cachix): build and cache soulver backend\n\n* nix: format\n\n* nix: refactor soulver to use with-soulver pkg\n\n* ci(nix): only build .#with-soulver",
"is_bot": false,
"headline": "nix: SoulverCore support (#1641)",
"author_name": "vMohammad",
"author_login": "vMohammad24",
"committed_at": "2026-07-10T14:14:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "81d9a9b50b19d1b90ed682d5fd24a192e56c1b4b",
"body": null,
"is_bot": false,
"headline": "chore: bump to v0.23.1",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-09T23:21:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cdf50b10db56525eff175b369ef8339b38bfb8ab",
"body": null,
"is_bot": false,
"headline": "fix: libqalc tests",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-09T23:07:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b408f4eeec58cbed25133c01b398292c25fdcbb7",
"body": "* feat: add digit grouping to calculator extension\n\n* fix: make digit grouping the default; remove related preference\n\n* fix: tests\n\n---------\n\nCo-authored-by: Aurelien Brabant <gh@aurelle.dev>",
"is_bot": false,
"headline": "feat: add digit grouping to libqalc backend (#1640)",
"author_name": "Yan Li",
"author_login": "Yusyuriv",
"committed_at": "2026-07-09T22:10:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9a22ab04cb2587ee7632a1c2d2ba715b6ad003c4",
"body": "* fix(api): expose Grid.throttle\n\nFor some reason the `Grid` root component didn't expose a `throttle` prop like `List` does, although fully implemented. This fixes that.\n\n* fix: pass prop properly",
"is_bot": false,
"headline": "fix(api): expose Grid.throttle (#1644)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-09T22:03:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6bfcc50926d801f290539422cb13f60d32e63c5e",
"body": "* feat: add active key to WindowManagement.Screen\n\nAdd `active` key to `WindowManagement.Screen` so that the callers can\nknow which screen the vicinae window is currently shown on. Always set\nto false if the vicinae window is not shown (e.g the extension runs in\nthe background at a given interval).\n\n* fix: use reinterpret_cast to cast winId",
"is_bot": false,
"headline": "feat: add active key to WindowManagement.Screen (#1643)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-09T21:21:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "034df6645a5d33ebc5ba6542ed05189496fb3c1f",
"body": "Use the native macOS API to get screen information since QT does not\nallow us to know the physical resolution of the current mode.",
"is_bot": false,
"headline": "feat: use native macOS API to enumerate screens (#1642)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-09T20:22:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f55008bb888de0dab565ef21c75f6091b69d818",
"body": "* feat(api): report screen physical resolution\n\n* feat: WindowManagement.Screen.physicalResolution\n\nAdd a `physicalResolution` key to `WindowManagement.Screen` so that\nextensions can know the physical resolution of the screen, as the\n`bounds` key reports logical coordinates (after scaling is applied\n[…]\ncularly useful for e.g wallpaper extensions where we might\nwant to suggest wallpapers that match the exact resolution\n\n* refactor: remove PixelSize in favor of QSize\n\n* fix: background effect listener",
"is_bot": false,
"headline": "feat(api): WindowManagement.Screen.physicalResolution (#1638)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-09T19:08:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "efb88407898eb791436c084e570d128ecc193643",
"body": null,
"is_bot": false,
"headline": "fix(ui): image scale in extension grid (#1631)",
"author_name": "Eric Kuck",
"author_login": "EricKuck",
"committed_at": "2026-07-09T17:18:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09ba8d35ff0403e1c3df50685fdccbcc26e2ac49",
"body": "text/uri-list should never be stored in the clipboard as a plain text string.\n\nPresumably this works on linux because QMimeDatabase does not categorize text/uri-list as inheriting from text/plain.",
"is_bot": false,
"headline": "fix: copy/paste file from macOS clipboard history (#1639)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-09T17:07:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f439e139c53a96fe15f3a7286e7fe054e25ae1c",
"body": "In some scenarios, the QT clipboard is filled with the application/x-qt-image type which means we can request the raw image data and then convert it to another format. When that happens, we now convert it to PNG automatically.\n\nCurrently the image conversion happens on the main thread, as clipboard access is not thread safe, for big images it could theoretically become a problem, but it's fine for now.\n\nFixes #1634",
"is_bot": false,
"headline": "fix: image not saved in macOS clipboard history (#1637)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-09T13:37:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c219f83872f8bd8432fd2ea5972df64580a5eaef",
"body": null,
"is_bot": false,
"headline": "fix: qmlls support in Nix devshells (#1636)",
"author_name": "Bodya",
"author_login": "bpavuk",
"committed_at": "2026-07-09T12:43:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f8ba9ab22132c0f358b99d057ffa5307ed8845c4",
"body": null,
"is_bot": false,
"headline": "ci: publish release once all assets are uploaded",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-08T11:06:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b96d953b74c1e1a250d3282f3857c9935aeca3f2",
"body": null,
"is_bot": false,
"headline": "chore: bump to v0.23.0",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T20:38:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5dfc2bc3c9a82c92f49be20e3be21229d246d6fe",
"body": "…ivity monitor",
"is_bot": false,
"headline": "chore: hardlink node to vicinae-ext-runtime to make it clearer in act…",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T20:24:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "29dd3ffb3f2b757c5f2b0fab3e829d5814f87750",
"body": null,
"is_bot": false,
"headline": "feat: support for sendDesktopNotification on macOS (#1627)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-07T20:12:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e642dd677feb1fa290a08b105a3be4c3c9f96021",
"body": null,
"is_bot": false,
"headline": "build: use npm ci to install deps",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T19:45:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bb7ebf59c41d0a66f2d3bfbf8554382b6b57661c",
"body": null,
"is_bot": false,
"headline": "fix: remove subtitle from create extension boilerplate",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T19:36:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9eb06d34f58e2216189769feac49771358a4c9dc",
"body": "Fix excessively small gifs especially on high DPI screens.",
"is_bot": false,
"headline": "fix: compute effective dpr from frame res for gifs",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T19:19:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd3f08282665c03a19ba7c01960d16de7f9b2cec",
"body": null,
"is_bot": false,
"headline": "fix: grid cell inset calculations",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T19:19:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "750053a732c8c4ff1dac7ed50d17b8a109c23754",
"body": "We used to cache extensions and never evicted them until next restart.",
"is_bot": false,
"headline": "fix: remove vicinae store caching",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T19:19:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3502aef7c47355714519b2458b5ebdb180bd3d08",
"body": "* fix(extensions): do not miss detail updates\n\nWe didn't update the list detail if the update came from a subsequent\nrender. Also we added a slight debounce so that quick detail changes do\nnot flicker.\n\n* fix: set detail to current after debounce, not null",
"is_bot": false,
"headline": "fix(extensions): do not miss detail updates (#1626)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-07T16:57:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aea311cb8a0b04982ff5f6d86531d19c4483073d",
"body": "actually required for proper file search",
"is_bot": false,
"headline": "fix: put back FDA permission in onboarding",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T15:28:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1f369ef4af10f4eaa40c9c9ed26f7af153d7c5a2",
"body": "Per the xdg-terminal-exec spec, when an X-TerminalArg* flag is defined\nas ending with '=', its value must be appended to the same argument\nwithout whitespace. The flag and value were always emitted as two\nseparate argv entries, which breaks terminals declaring the '=' form.\n\nWith ghostty (X-Terminal\n[…]\ns=' and the\napp id as separate arguments. Ghostty does not accept space-separated\nflag values and rejected the bare app id argument with a\n\"Configuration Errors\" dialog: cli:3:<app-id>: invalid field.",
"is_bot": false,
"headline": "fix(xdg): append terminal arg value to flags ending with '=' (#1623)",
"author_name": "stvsu",
"author_login": "stvsu",
"committed_at": "2026-07-07T12:56:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4096191dbb8e613a668492eb255994c49445db2e",
"body": null,
"is_bot": false,
"headline": "ci: macOS dmg workflow",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T12:29:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "356c907e4589e407778569b98cca921746e12ff3",
"body": null,
"is_bot": false,
"headline": "fix: bundle libqtquickshapesdesignhelpersplugin.dylib",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T11:14:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bb4edb45ad7aa7eeb540c9a14cd0868ea15895ff",
"body": null,
"is_bot": false,
"headline": "chore: remove fda permission requirement from onboarding",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T10:49:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e3b30a3f8d96dcf80ee23e6115efdc5b33c6aebc",
"body": null,
"is_bot": false,
"headline": "style: reduce contrast of selection colors for vicinae inkwell",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-07T01:15:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "10112686d1a458a224bc005374973b0dfabb6352",
"body": "Untie navigation primitive from the launcher global and move it into a proper Keyboard global helper. This way it also works outside of the launcher window.",
"is_bot": false,
"headline": "refactor: move keyboard navigation to global helper (#1622)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-07T01:07:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eca1ee9c1bdd4c1dc8c4177b8d0c7e17967b036c",
"body": "remap `cmd` key to `control` on linux and add specific names for the\nmeta keys: `meta` | `windows`.",
"is_bot": false,
"headline": "feat: cross platform extension keybinds (#1621)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-07T00:52:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "223aba710eba0ca6b2dd2d3d668eaf5f6cc1cf31",
"body": "Fixes a URL encoding bug and make the bug report info relevant to macOS as well.",
"is_bot": false,
"headline": "feat: macOS report bug command (#1620)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-06T23:14:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "855ce3717f126887ed2730545a5358dc53695e12",
"body": null,
"is_bot": false,
"headline": "fix: manage fallback command state and ordering (#1619)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-06T22:42:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1fd3299ff0929713cf45d45ec0d1e2c7072d9c4b",
"body": "* feat: bundle SoulverCore as default calculator backend on macOS\n\n* fix: do not preprocess soulver core input\n\n* refactor: move bundle soulver core in separate function\n\n* refactor: move SwiftRuntime.cmake to top level cmake dir\n\n* chore: add utm parameters for soulver link",
"is_bot": false,
"headline": "feat: bundle SoulverCore as default calculator backend on macOS (#1617)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-06T21:40:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6e50108f70bf9d74e758294419e5e0400f9a0a72",
"body": null,
"is_bot": false,
"headline": "fix: do not use QDBusInterface for desktop notifications (#1618)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-06T21:07:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c9ad0ede8d09fd796b30be235837acb0a11e8a8b",
"body": "* feat: macOS onboarding process\n\n* feat: make sure tap is restarted after accessibility is granted\n\n* fix: mark onboarding as finished only when last step is completed\n\n* refactor: use glaze to store onboarding json state\n\n* fix: proper background blend rect for buttons",
"is_bot": false,
"headline": "feat: macOS onboarding process (#1614)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-06T17:30:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4fc71570f49915cb654b2f42fac6654d176224a6",
"body": "* feat: implement environment.canAccess API\n\n* fix: format",
"is_bot": false,
"headline": "feat: implement environment.canAccess API (#1613)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-06T13:27:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6dfc50a326a54a67d0daf76ce29fcd7ebc2652b5",
"body": null,
"is_bot": false,
"headline": "feat(api): expose BrowserExtension.getTabs to extensions (#1612)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-05T23:09:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "23d6131b8dbfed5b6420880db3608ca0072fe746",
"body": null,
"is_bot": false,
"headline": "feat(api): throw when raycast compat shim is unavailable (#1611)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-05T20:55:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f313acfe6607ab6d2f2466aa2658e56a7a8f5c4f",
"body": "* feat: better contrast for selection colors\n\n* fix: macOS theme awareness and light theme adjustments\n\n* fix: do not force opacity on alert dialog",
"is_bot": false,
"headline": "feat(theming): better contrast for selection colors (#1610)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-05T20:45:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "90d180e76a2bfe2cd585c50e9b6eda0032ad6752",
"body": null,
"is_bot": false,
"headline": "ci: fix version labeling",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-05T17:20:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1fd642a7c93e744e7aa5fa0d2667eaddf241aeba",
"body": "Signed-off-by: Marvin Beckers <mail@embik.me>",
"is_bot": false,
"headline": "build: split qrc based on build conditions (extensions vs core) (#1609)",
"author_name": "Marvin Beckers",
"author_login": "embik",
"committed_at": "2026-07-05T16:24:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f7b687b34c93a8952cb544f60038ad0ea3922804",
"body": "* fix: make vicinae extension CLI cross platform\n\nSo far we have been calling the vicinae binary and passing it a deeplink in order to communicate with the daemon, which doesn't fit the macOS model very well. So in this PR we just implement a tiny IPC client in TypeScript to communicate with the daemon as any regular client does.\n\n* refactor: generate typescript ipc code using figura",
"is_bot": false,
"headline": "fix: make vicinae extension CLI cross platform (#1606)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-05T16:16:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9878d64f2d964752a200647b7956afbbe51b288c",
"body": "* feat: macOS auto start\n\n* refactor: reword cmake auto start option name\n\n* fix: typo",
"is_bot": false,
"headline": "feat: macOS auto start (#1604)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-04T22:54:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b0b907e610333501d1512c53a576d37a8698f72a",
"body": null,
"is_bot": false,
"headline": "feat: macOS url scheme support (#1603)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-04T21:43:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6886cf113b6c7f9d76a2718df48efa35fcfae2d6",
"body": "shared-mime-info 2.5.1 upgrade broke the loading of .sh script commands.",
"is_bot": false,
"headline": "fix: script command loading after shared-mime-info upgrade (#1602)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-04T21:41:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e2d66ed75277871c48908bb1d606dd92cdf547e4",
"body": "* feat: fetch pinned node version for self packaged builds\n\n* feat: shell out to tar instead of linking to zlib + nits\n\n* fix: do not fallback on homebrew node on macOS",
"is_bot": false,
"headline": "feat: fetch pinned node version for self packaged builds (#1598)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-04T20:39:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "25831a499e9523b71f085d2be0470a574321b8f8",
"body": "* feat: install browser extension native host manifests at runtime\n\n* fix: cross platform socket path\n\n* fix: simplify readme\n\n* nix: do not auto install manifests",
"is_bot": false,
"headline": "feat: install browser extension native host manifests at runtime (#1599)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-04T20:17:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4568ef7ee5afa4db103e5bd7328305ba697d1d63",
"body": null,
"is_bot": false,
"headline": "build(macos): purge unused qt modules",
"author_name": "Aurelien Brabant",
"author_login": "aurelleb",
"committed_at": "2026-07-04T15:01:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e12be8423637739d8b0d3766d0f771ef45e44b2d",
"body": "* feat: dmg and notarization setup\n\n* chore: use correct icon size for vicinae\n\n* build: add shim to fix qtkeychain include path",
"is_bot": false,
"headline": "feat: dmg and notarization setup (#1597)",
"author_name": "Aurelle",
"author_login": "aurelleb",
"committed_at": "2026-07-04T14:49:03Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 100,
"commits_last_year": 1818,
"latest_release_at": "2026-07-18T15:34:23Z",
"latest_release_tag": "v0.23.2",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 52,
"days_since_latest_release": 5,
"mean_days_between_releases": 5.2
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 62,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "scripts",
"exists": true,
"license": null,
"keywords": [
"require",
"path"
],
"ecosystem": "npm",
"matches_repo": false,
"registry_url": "https://www.npmjs.com/package/scripts",
"is_deprecated": false,
"latest_version": "0.1.0",
"repository_url": "https://github.com/jaredhanson/node-scripts",
"versions_count": 1,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 30001,
"first_published_at": "2013-08-16T22:08:11.637000Z",
"latest_published_at": "2013-08-16T22:08:13.087000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 4724
},
{
"name": "template",
"exists": true,
"license": "MIT",
"keywords": [
"atpl",
"coffee",
"compile",
"consolidate",
"dot",
"dust",
"dustjs",
"dustjs-helpers",
"dustjs-linkedin",
"eco",
"ect",
"ejs",
"engine",
"engines",
"express",
"haml",
"haml-coffee",
"hamljs",
"handlebars",
"helpers",
"hogan.js",
"jade",
"jazz",
"jqtpl",
"liquor",
"lo-dash",
"lodash",
"markdown",
"mote",
"mustache",
"nunjucks",
"process",
"qejs",
"ractive",
"render",
"swig",
"template",
"templates",
"templayed",
"toffee",
"underscore",
"view",
"walrus",
"whiskers",
"yaml"
],
"ecosystem": "npm",
"matches_repo": false,
"registry_url": "https://www.npmjs.com/package/template",
"is_deprecated": false,
"latest_version": "0.17.5",
"repository_url": "https://github.com/jonschlinkert/template",
"versions_count": 60,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 2,
"monthly_downloads": 5353,
"first_published_at": "2014-01-27T12:39:48.073000Z",
"latest_published_at": "2016-12-12T17:20:45.339000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 3510
}
]
},
"popularity": {
"forks": 249,
"stars": 8563,
"watchers": 13,
"fork_history": {
"days": [
{
"date": "2025-08-15",
"count": 2
},
{
"date": "2025-08-16",
"count": 4
},
{
"date": "2025-08-17",
"count": 2
},
{
"date": "2025-08-19",
"count": 1
},
{
"date": "2025-08-20",
"count": 1
},
{
"date": "2025-08-21",
"count": 2
},
{
"date": "2025-08-23",
"count": 1
},
{
"date": "2025-08-24",
"count": 1
},
{
"date": "2025-08-25",
"count": 1
},
{
"date": "2025-08-26",
"count": 3
},
{
"date": "2025-08-27",
"count": 1
},
{
"date": "2025-08-29",
"count": 1
},
{
"date": "2025-08-30",
"count": 2
},
{
"date": "2025-08-31",
"count": 1
},
{
"date": "2025-09-02",
"count": 1
},
{
"date": "2025-09-05",
"count": 1
},
{
"date": "2025-09-07",
"count": 1
},
{
"date": "2025-09-10",
"count": 2
},
{
"date": "2025-09-11",
"count": 1
},
{
"date": "2025-09-14",
"count": 4
},
{
"date": "2025-09-15",
"count": 3
},
{
"date": "2025-09-16",
"count": 2
},
{
"date": "2025-09-17",
"count": 1
},
{
"date": "2025-09-18",
"count": 1
},
{
"date": "2025-09-19",
"count": 1
},
{
"date": "2025-09-20",
"count": 2
},
{
"date": "2025-09-21",
"count": 1
},
{
"date": "2025-09-22",
"count": 1
},
{
"date": "2025-09-23",
"count": 1
},
{
"date": "2025-09-24",
"count": 1
},
{
"date": "2025-09-26",
"count": 1
},
{
"date": "2025-09-28",
"count": 2
},
{
"date": "2025-10-01",
"count": 1
},
{
"date": "2025-10-03",
"count": 1
},
{
"date": "2025-10-04",
"count": 2
},
{
"date": "2025-10-06",
"count": 2
},
{
"date": "2025-10-07",
"count": 1
},
{
"date": "2025-10-08",
"count": 1
},
{
"date": "2025-10-11",
"count": 2
},
{
"date": "2025-10-14",
"count": 1
},
{
"date": "2025-10-15",
"count": 1
},
{
"date": "2025-10-16",
"count": 1
},
{
"date": "2025-10-23",
"count": 1
},
{
"date": "2025-10-24",
"count": 1
},
{
"date": "2025-10-25",
"count": 2
},
{
"date": "2025-10-26",
"count": 1
},
{
"date": "2025-10-27",
"count": 1
},
{
"date": "2025-10-31",
"count": 1
},
{
"date": "2025-11-01",
"count": 2
},
{
"date": "2025-11-05",
"count": 1
},
{
"date": "2025-11-07",
"count": 1
},
{
"date": "2025-11-09",
"count": 3
},
{
"date": "2025-11-11",
"count": 1
},
{
"date": "2025-11-12",
"count": 1
},
{
"date": "2025-11-13",
"count": 1
},
{
"date": "2025-11-14",
"count": 2
},
{
"date": "2025-11-15",
"count": 1
},
{
"date": "2025-11-17",
"count": 1
},
{
"date": "2025-11-18",
"count": 2
},
{
"date": "2025-11-19",
"count": 1
},
{
"date": "2025-11-20",
"count": 1
},
{
"date": "2025-11-21",
"count": 1
},
{
"date": "2025-11-22",
"count": 1
},
{
"date": "2025-11-24",
"count": 1
},
{
"date": "2025-11-25",
"count": 1
},
{
"date": "2025-11-26",
"count": 1
},
{
"date": "2025-11-28",
"count": 1
},
{
"date": "2025-11-29",
"count": 1
},
{
"date": "2025-12-02",
"count": 1
},
{
"date": "2025-12-05",
"count": 1
},
{
"date": "2025-12-06",
"count": 2
},
{
"date": "2025-12-07",
"count": 1
},
{
"date": "2025-12-09",
"count": 1
},
{
"date": "2025-12-10",
"count": 1
},
{
"date": "2025-12-13",
"count": 1
},
{
"date": "2025-12-15",
"count": 1
},
{
"date": "2025-12-17",
"count": 1
},
{
"date": "2025-12-21",
"count": 1
},
{
"date": "2025-12-23",
"count": 1
},
{
"date": "2025-12-24",
"count": 1
},
{
"date": "2025-12-28",
"count": 1
},
{
"date": "2025-12-29",
"count": 2
},
{
"date": "2026-01-01",
"count": 1
},
{
"date": "2026-01-02",
"count": 1
},
{
"date": "2026-01-04",
"count": 1
},
{
"date": "2026-01-05",
"count": 1
},
{
"date": "2026-01-06",
"count": 1
},
{
"date": "2026-01-08",
"count": 1
},
{
"date": "2026-01-11",
"count": 1
},
{
"date": "2026-01-12",
"count": 1
},
{
"date": "2026-01-14",
"count": 1
},
{
"date": "2026-01-16",
"count": 1
},
{
"date": "2026-01-17",
"count": 1
},
{
"date": "2026-01-18",
"count": 2
},
{
"date": "2026-01-20",
"count": 1
},
{
"date": "2026-01-23",
"count": 1
},
{
"date": "2026-01-26",
"count": 2
},
{
"date": "2026-01-31",
"count": 1
},
{
"date": "2026-02-01",
"count": 1
},
{
"date": "2026-02-03",
"count": 1
},
{
"date": "2026-02-05",
"count": 2
},
{
"date": "2026-02-10",
"count": 4
},
{
"date": "2026-02-13",
"count": 1
},
{
"date": "2026-02-15",
"count": 1
},
{
"date": "2026-02-18",
"count": 1
},
{
"date": "2026-02-19",
"count": 2
},
{
"date": "2026-02-20",
"count": 2
},
{
"date": "2026-02-23",
"count": 1
},
{
"date": "2026-02-26",
"count": 1
},
{
"date": "2026-02-27",
"count": 3
},
{
"date": "2026-02-28",
"count": 4
},
{
"date": "2026-03-02",
"count": 1
},
{
"date": "2026-03-04",
"count": 3
},
{
"date": "2026-03-05",
"count": 1
},
{
"date": "2026-03-12",
"count": 1
},
{
"date": "2026-03-13",
"count": 1
},
{
"date": "2026-03-16",
"count": 1
},
{
"date": "2026-03-17",
"count": 3
},
{
"date": "2026-03-18",
"count": 2
},
{
"date": "2026-03-19",
"count": 1
},
{
"date": "2026-03-20",
"count": 1
},
{
"date": "2026-03-22",
"count": 1
},
{
"date": "2026-03-25",
"count": 1
},
{
"date": "2026-03-28",
"count": 1
},
{
"date": "2026-03-30",
"count": 1
},
{
"date": "2026-04-04",
"count": 1
},
{
"date": "2026-04-05",
"count": 1
},
{
"date": "2026-04-06",
"count": 1
},
{
"date": "2026-04-07",
"count": 2
},
{
"date": "2026-04-10",
"count": 1
},
{
"date": "2026-04-13",
"count": 2
},
{
"date": "2026-04-14",
"count": 1
},
{
"date": "2026-04-16",
"count": 1
},
{
"date": "2026-04-20",
"count": 1
},
{
"date": "2026-04-21",
"count": 1
},
{
"date": "2026-04-23",
"count": 1
},
{
"date": "2026-04-25",
"count": 2
},
{
"date": "2026-04-26",
"count": 1
},
{
"date": "2026-05-04",
"count": 1
},
{
"date": "2026-05-09",
"count": 1
},
{
"date": "2026-05-11",
"count": 1
},
{
"date": "2026-05-13",
"count": 1
},
{
"date": "2026-05-14",
"count": 1
},
{
"date": "2026-05-15",
"count": 1
},
{
"date": "2026-05-17",
"count": 1
},
{
"date": "2026-05-18",
"count": 1
},
{
"date": "2026-05-19",
"count": 2
},
{
"date": "2026-05-20",
"count": 1
},
{
"date": "2026-05-22",
"count": 1
},
{
"date": "2026-05-25",
"count": 1
},
{
"date": "2026-05-27",
"count": 1
},
{
"date": "2026-05-28",
"count": 1
},
{
"date": "2026-06-01",
"count": 1
},
{
"date": "2026-06-04",
"count": 1
},
{
"date": "2026-06-05",
"count": 1
},
{
"date": "2026-06-06",
"count": 1
},
{
"date": "2026-06-07",
"count": 1
},
{
"date": "2026-06-11",
"count": 1
},
{
"date": "2026-06-12",
"count": 1
},
{
"date": "2026-06-13",
"count": 4
},
{
"date": "2026-06-15",
"count": 3
},
{
"date": "2026-06-19",
"count": 1
},
{
"date": "2026-06-22",
"count": 2
},
{
"date": "2026-06-23",
"count": 3
},
{
"date": "2026-06-25",
"count": 1
},
{
"date": "2026-06-26",
"count": 1
},
{
"date": "2026-06-27",
"count": 2
},
{
"date": "2026-07-02",
"count": 3
},
{
"date": "2026-07-03",
"count": 1
},
{
"date": "2026-07-04",
"count": 2
},
{
"date": "2026-07-06",
"count": 1
},
{
"date": "2026-07-08",
"count": 1
},
{
"date": "2026-07-09",
"count": 2
},
{
"date": "2026-07-10",
"count": 2
},
{
"date": "2026-07-12",
"count": 2
},
{
"date": "2026-07-13",
"count": 1
},
{
"date": "2026-07-14",
"count": 3
},
{
"date": "2026-07-16",
"count": 1
},
{
"date": "2026-07-18",
"count": 2
},
{
"date": "2026-07-23",
"count": 1
}
],
"complete": true,
"collected": 249,
"total_forks": 249
},
"star_history": null,
"open_issues_and_prs": 237
},
"ai_readiness": {
"has_nix": true,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [
"Makefile",
"src/browser-extension/Makefile",
"src/lib/figura/Makefile",
"src/lib/glyph/Makefile",
"src/lib/script-command/Makefile",
"src/lib/vicinae-ipc/Makefile",
"src/lib/xdgpp/Makefile",
"src/server/Makefile",
"src/snippet/Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"extra/extension-boilerplate/tsconfig.json",
"src/typescript/api/tsconfig.json",
"src/typescript/extension-manager/tsconfig.json",
"src/typescript/raycast-api-compat/tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 2496074,
"source_files_sampled": 1061,
"oversized_source_files": 1,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 6267
},
"dependencies": {
"manifests": [
"scripts/package.json"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@omnicast/api",
"manifest": "scripts/package.json",
"ecosystem": "npm",
"version_constraint": "file:../api/omnicast-api-1.0.0.tgz"
},
{
"name": "@omnicast/utils",
"manifest": "scripts/package.json",
"ecosystem": "npm",
"version_constraint": "file:../api-utils/omnicast-utils-1.0.0.tgz"
},
{
"name": "@vicinae/api",
"manifest": "extra/extension-boilerplate/package.json",
"ecosystem": "npm",
"version_constraint": "file:../../src/typescript/api"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 25,
"merged_prs": 861,
"open_issues": 212,
"closed_ratio": 0.698,
"closed_issues": 489,
"closed_unmerged_prs": 45
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "aurelleb",
"commits": 1942,
"avatar_url": "https://avatars.githubusercontent.com/u/72200344?v=4"
},
{
"type": "User",
"login": "cilginc",
"commits": 40,
"avatar_url": "https://avatars.githubusercontent.com/u/104676201?v=4"
},
{
"type": "User",
"login": "rithvikvibhu",
"commits": 34,
"avatar_url": "https://avatars.githubusercontent.com/u/5113343?v=4"
},
{
"type": "User",
"login": "dagimg-dot",
"commits": 30,
"avatar_url": "https://avatars.githubusercontent.com/u/106905365?v=4"
},
{
"type": "User",
"login": "quadratech188",
"commits": 29,
"avatar_url": "https://avatars.githubusercontent.com/u/117572566?v=4"
},
{
"type": "User",
"login": "SiriusCrain",
"commits": 15,
"avatar_url": "https://avatars.githubusercontent.com/u/22578495?v=4"
},
{
"type": "User",
"login": "AntoineGS",
"commits": 12,
"avatar_url": "https://avatars.githubusercontent.com/u/16911399?v=4"
},
{
"type": "User",
"login": "pavle99",
"commits": 12,
"avatar_url": "https://avatars.githubusercontent.com/u/73827472?v=4"
},
{
"type": "User",
"login": "schromp",
"commits": 9,
"avatar_url": "https://avatars.githubusercontent.com/u/103186360?v=4"
},
{
"type": "User",
"login": "ThatOneCalculator",
"commits": 8,
"avatar_url": "https://avatars.githubusercontent.com/u/44733677?v=4"
}
],
"contributors_sampled": 100,
"top_contributor_share": 0.849
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"api-release.yml",
"build-appimage-image.yaml",
"build-appimage.yaml",
"build-arch-image.yaml",
"build-linux.yaml",
"build-macos.yaml",
"build-windows.yaml",
"cachix.yaml",
"format.yaml",
"macos-dmg.yaml",
"nix-format.yaml",
"nix-support.yml",
"release.yml"
],
"has_docs_dir": false,
"linter_configs": [
"biome.json"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"package-lock.json"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"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": 9,
"reason": "25 out of 26 merged PRs checked by a CI test -- score normalized to 9",
"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": 2,
"reason": "Found 7/30 approved changesets -- score normalized to 2",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 20 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": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"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 0 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": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"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": 3,
"reason": "7 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "de75102a08956b339c3b282dd43ec9eef3b743a0",
"ran_at": "2026-07-23T23:24:47Z",
"aggregate_score": 3.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-07-23T22:29:41Z",
"oldest_open_prs": [
{
"number": 559,
"created_at": "2025-10-27T02:07:00Z",
"last_comment_at": "2025-10-31T20:36:38Z",
"last_comment_author": "AntoineGS"
},
{
"number": 568,
"created_at": "2025-10-28T14:00:45Z",
"last_comment_at": "2025-12-28T17:04:44Z",
"last_comment_author": "AntoineGS"
},
{
"number": 951,
"created_at": "2026-01-11T09:34:03Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 984,
"created_at": "2026-01-20T21:37:41Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 985,
"created_at": "2026-01-20T23:41:03Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1004,
"created_at": "2026-01-23T17:13:03Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1036,
"created_at": "2026-01-31T08:50:41Z",
"last_comment_at": "2026-02-03T08:27:41Z",
"last_comment_author": "dagimg-dot"
},
{
"number": 1107,
"created_at": "2026-02-20T21:33:08Z",
"last_comment_at": "2026-02-27T22:39:28Z",
"last_comment_author": "aurelleb"
},
{
"number": 1158,
"created_at": "2026-03-03T18:10:39Z",
"last_comment_at": "2026-03-31T17:16:09Z",
"last_comment_author": "bpavuk"
},
{
"number": 1212,
"created_at": "2026-03-13T18:57:17Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1228,
"created_at": "2026-03-17T13:29:01Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1230,
"created_at": "2026-03-18T03:11:04Z",
"last_comment_at": "2026-06-07T07:05:09Z",
"last_comment_author": "Jelloeater"
},
{
"number": 1259,
"created_at": "2026-03-25T16:55:00Z",
"last_comment_at": "2026-04-13T21:38:34Z",
"last_comment_author": "vMohammad24"
},
{
"number": 1295,
"created_at": "2026-04-07T17:26:39Z",
"last_comment_at": "2026-05-06T11:15:14Z",
"last_comment_author": "SiriusCrain"
},
{
"number": 1426,
"created_at": "2026-05-20T19:35:57Z",
"last_comment_at": "2026-05-21T00:25:41Z",
"last_comment_author": "vMohammad24"
},
{
"number": 1468,
"created_at": "2026-06-01T08:33:59Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1490,
"created_at": "2026-06-07T19:10:40Z",
"last_comment_at": "2026-07-13T14:20:23Z",
"last_comment_author": "arturict"
},
{
"number": 1516,
"created_at": "2026-06-14T11:47:51Z",
"last_comment_at": "2026-07-13T14:20:23Z",
"last_comment_author": "arturict"
},
{
"number": 1551,
"created_at": "2026-06-24T09:54:58Z",
"last_comment_at": "2026-07-13T14:19:29Z",
"last_comment_author": "arturict"
},
{
"number": 1607,
"created_at": "2026-07-05T10:07:41Z",
"last_comment_at": "2026-07-13T14:19:29Z",
"last_comment_author": "arturict"
}
],
"last_merged_pr_at": "2026-07-23T22:22:38Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 12,
"created_at": "2025-08-14T22:17:12Z",
"last_comment_at": "2025-08-14T23:29:09Z",
"last_comment_author": "aurelleb"
},
{
"number": 72,
"created_at": "2025-08-17T16:53:11Z",
"last_comment_at": "2025-11-12T10:22:17Z",
"last_comment_author": "aurelleb"
},
{
"number": 75,
"created_at": "2025-08-17T18:53:28Z",
"last_comment_at": "2026-07-15T18:54:58Z",
"last_comment_author": "aurelleb"
},
{
"number": 91,
"created_at": "2025-08-20T17:39:35Z",
"last_comment_at": "2026-06-23T12:40:13Z",
"last_comment_author": "porridgewithraisins"
},
{
"number": 105,
"created_at": "2025-08-22T11:37:56Z",
"last_comment_at": "2025-11-12T06:29:36Z",
"last_comment_author": "rithvikvibhu"
},
{
"number": 117,
"created_at": "2025-08-23T05:22:15Z",
"last_comment_at": "2025-08-24T06:57:35Z",
"last_comment_author": "daxisunder"
},
{
"number": 167,
"created_at": "2025-08-28T22:46:48Z",
"last_comment_at": "2025-10-31T20:02:23Z",
"last_comment_author": "cloudglides"
},
{
"number": 175,
"created_at": "2025-08-30T06:04:10Z",
"last_comment_at": "2025-10-04T00:32:31Z",
"last_comment_author": "aurelleb"
},
{
"number": 183,
"created_at": "2025-08-30T20:50:26Z",
"last_comment_at": "2025-09-03T18:22:11Z",
"last_comment_author": "soymadip"
},
{
"number": 208,
"created_at": "2025-09-03T15:02:36Z",
"last_comment_at": "2025-10-07T09:20:19Z",
"last_comment_author": "officialnochill"
},
{
"number": 209,
"created_at": "2025-09-03T15:05:53Z",
"last_comment_at": "2026-01-15T17:23:28Z",
"last_comment_author": "EL-File4138"
},
{
"number": 246,
"created_at": "2025-09-08T15:38:33Z",
"last_comment_at": "2025-09-14T09:56:53Z",
"last_comment_author": "quadratech188"
},
{
"number": 248,
"created_at": "2025-09-08T18:52:14Z",
"last_comment_at": "2025-09-09T10:33:48Z",
"last_comment_author": "maggster165"
},
{
"number": 255,
"created_at": "2025-09-09T11:45:40Z",
"last_comment_at": "2026-04-27T02:56:47Z",
"last_comment_author": "aroman"
},
{
"number": 268,
"created_at": "2025-09-10T14:11:00Z",
"last_comment_at": "2026-06-09T18:12:49Z",
"last_comment_author": "cslamar"
},
{
"number": 269,
"created_at": "2025-09-10T14:16:26Z",
"last_comment_at": "2026-03-17T12:52:00Z",
"last_comment_author": "aurelleb"
},
{
"number": 278,
"created_at": "2025-09-11T15:50:07Z",
"last_comment_at": "2025-10-08T18:17:06Z",
"last_comment_author": "dagimg-dot"
},
{
"number": 279,
"created_at": "2025-09-11T15:50:31Z",
"last_comment_at": "2025-09-21T19:31:38Z",
"last_comment_author": "Damnjelly"
},
{
"number": 282,
"created_at": "2025-09-12T10:36:42Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 288,
"created_at": "2025-09-13T13:59:00Z",
"last_comment_at": "2025-09-13T14:00:53Z",
"last_comment_author": "aurelleb"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/vicinaehq/vicinae",
"host": "github.com",
"name": "vicinae",
"owner": "vicinaehq"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 69,
"inputs": {
"security": 36,
"vitality": 96,
"community": 79,
"governance": 53,
"engineering": 75
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 96,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"commits_last_year": 1818,
"human_commit_share": 1,
"days_since_last_push": 0,
"active_weeks_last_year": 52
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "52/52 weeks with commits",
"points": 36,
"status": "met",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 52
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "1818 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 1818
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 0 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": "v0.23.2",
"releases_from_tags": false,
"days_since_latest_release": 5,
"mean_days_between_releases": 5.2
},
"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 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~5.2 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 5.2
}
}
],
"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": 0,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 0 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 0
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "good",
"name": "Community & Adoption",
"value": 79,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 86,
"inputs": {
"forks": 249,
"stars": 8563,
"watchers": 13,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "8,563 stars",
"points": 60,
"status": "met",
"details": [
{
"code": "stars",
"params": {
"count": 8563
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "249 forks",
"points": 20,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 249
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "13 watchers",
"points": 6,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 13
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"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": "recognized license (GPL-3.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "GPL-3.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"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": 53,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 36,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 100,
"top_contributor_share": 0.849
},
"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 85% of commits",
"points": 3.4,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 85
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "100 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 100
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 20 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 72,
"inputs": {
"merged_prs": 861,
"open_issues": 212,
"closed_issues": 489,
"issue_closed_ratio": 0.698,
"closed_unmerged_prs": 45
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "70% of issues closed",
"points": 32.6,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 70
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "861/906 decided PRs merged",
"points": 36.4,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 861,
"decided": 906
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 7/30 approved changesets -- score normalized to 2",
"points": 3,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 53,
"inputs": {
"followers": 88,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "vicinaehq",
"public_repos": 9,
"account_age_days": 360
},
"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": "88 followers of vicinaehq",
"points": 14,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 88,
"login": "vicinaehq"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "9 public repos, account ~0 yr old",
"points": 9.3,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 9
}
},
{
"code": "account_age_years",
"params": {
"years": 0
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 75,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 82,
"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": "13 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 13
}
}
],
"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": "biome.json",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "biome.json"
}
}
],
"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": "25 out of 26 merged PRs checked by a CI test -- score normalized to 9",
"points": 18,
"status": "partial",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [
"linux",
"poweruser",
"productivity",
"app-launcher",
"nodejs",
"qt",
"react",
"raycast",
"cpp23",
"macos"
],
"has_wiki": false,
"homepage": "https://vicinae.com",
"has_readme": true,
"has_docs_dir": false,
"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": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://vicinae.com",
"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": "10 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 10
}
}
],
"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": 36,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 36,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 3.6
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"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": "25 out of 26 merged PRs checked by a CI test -- score normalized to 9",
"points": 2.2,
"status": "partial",
"details": [],
"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 7/30 approved changesets -- score normalized to 2",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 20 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": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 0 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 not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"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": "7 existing vulnerabilities detected",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"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"
],
"review_only_matches": 0,
"assessed_self_published_locations": 7
},
"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": "good",
"name": "AI Readiness",
"value": 82,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 1,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 6267
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md, CLAUDE.md"
}
}
],
"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": "100 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 100,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 72,
"inputs": {
"has_nix": true,
"has_tests": true,
"lockfiles": [
"package-lock.json"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [
"Makefile",
"src/browser-extension/Makefile",
"src/lib/figura/Makefile",
"src/lib/glyph/Makefile",
"src/lib/script-command/Makefile",
"src/lib/vicinae-ipc/Makefile",
"src/lib/xdgpp/Makefile",
"src/server/Makefile",
"src/snippet/Makefile"
],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"extra/extension-boilerplate/tsconfig.json",
"src/typescript/api/tsconfig.json",
"src/typescript/extension-manager/tsconfig.json",
"src/typescript/raycast-api-compat/tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile, src/browser-extension/Makefile, src/lib/figura/Makefile, src/lib/glyph/Makefile, src/lib/script-command/Makefile, src/lib/vicinae-ipc/Makefile, src/lib/xdgpp/Makefile, src/server/Makefile, src/snippet/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile, src/browser-extension/Makefile, src/lib/figura/Makefile, src/lib/glyph/Makefile, src/lib/script-command/Makefile, src/lib/vicinae-ipc/Makefile, src/lib/xdgpp/Makefile, src/server/Makefile, src/snippet/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": "biome.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "biome.json"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "extra/extension-boilerplate/tsconfig.json, src/typescript/api/tsconfig.json, src/typescript/extension-manager/tsconfig.json, src/typescript/raycast-api-compat/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "extra/extension-boilerplate/tsconfig.json, src/typescript/api/tsconfig.json, src/typescript/extension-manager/tsconfig.json, src/typescript/raycast-api-compat/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, Nix, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, Nix, 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 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "C++",
"largest_source_bytes": 2496074,
"source_files_sampled": 1061,
"oversized_source_files": 1
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "C++ (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C++"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "1/1061 source files over 60KB",
"points": 54.9,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 1061,
"oversized": 1
}
}
],
"max_points": 55
}
]
}
],
"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.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"npm package 'scripts' points at a different repository (https://github.com/jaredhanson/node-scripts); excluded from ecosystem scoring",
"npm package 'template' points at a different repository (https://github.com/jonschlinkert/template); excluded from ecosystem scoring",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-23T23:25:17.337326Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/v/vicinaehq/vicinae.svg",
"full_name": "vicinaehq/vicinae",
"license_state": "standard",
"license_spdx": "GPL-3.0"
}