{"id":1193,"name":"Awesome Green Software","description":"Research, tools, code, libraries and training to for building applications that emit less carbon into our atmosphere.","url":"https://github.com/Green-Software-Foundation/awesome-green-software","last_synced_at":"2026-08-13T19:00:27.325Z","repository":{"id":37080236,"uuid":"387275735","full_name":"Green-Software-Foundation/awesome-green-software","owner":"Green-Software-Foundation","description":null,"archived":false,"fork":false,"pushed_at":"2026-08-04T07:07:05.000Z","size":12590,"stargazers_count":690,"open_issues_count":3,"forks_count":111,"subscribers_count":37,"default_branch":"main","last_synced_at":"2026-08-10T17:23:14.478Z","etag":null,"topics":["awesome","awesome-list","climate","green-ai","green-computing","green-software","hacktoberfest","sustainability","sustainable-ai","sustainable-software"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Green-Software-Foundation.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"license","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-07-18T21:52:25.000Z","updated_at":"2026-08-05T19:00:40.000Z","dependencies_parsed_at":"2025-11-17T06:02:33.255Z","dependency_job_id":null,"html_url":"https://github.com/Green-Software-Foundation/awesome-green-software","commit_stats":{"total_commits":152,"total_committers":43,"mean_commits":"3.5348837209302326","dds":0.6644736842105263,"last_synced_commit":"7f1c830bb8d29fcfe768bb37b4d0f3a041aed4e2"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Green-Software-Foundation/awesome-green-software","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Green-Software-Foundation%2Fawesome-green-software","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Green-Software-Foundation%2Fawesome-green-software/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Green-Software-Foundation%2Fawesome-green-software/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Green-Software-Foundation%2Fawesome-green-software/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Green-Software-Foundation","download_url":"https://codeload.github.com/Green-Software-Foundation/awesome-green-software/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Green-Software-Foundation%2Fawesome-green-software/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36532024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-11T02:00:06.871Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"Green-Software-Foundation","name":"Green Software Foundation","uuid":"84547728","kind":"organization","description":"The Green Software Foundation is a non-profit with the mission to create a trusted ecosystem of people, standards, tooling and best practices for green software","email":null,"website":"https://greensoftware.foundation","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/84547728?v=4","repositories_count":22,"last_synced_at":"2023-03-03T23:14:56.837Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/Green-Software-Foundation","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-14T06:25:51.088Z","updated_at":"2023-03-03T23:14:56.864Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Green-Software-Foundation","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Green-Software-Foundation/repositories"},"packages":[],"commits":{"id":1254672,"full_name":"Green-Software-Foundation/awesome-green-software","default_branch":"main","total_commits":234,"total_committers":62,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":3.774193548387097,"dds":0.782051282051282,"past_year_total_commits":48,"past_year_total_committers":16,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":3.0,"past_year_dds":0.6875,"last_synced_at":"2026-08-12T18:31:12.717Z","last_synced_commit":"b0fe7c55faa193ef3d872ccc010c3191dfacade3","created_at":"2023-03-27T11:50:41.789Z","updated_at":"2026-08-12T18:31:11.924Z","committers":[{"name":"Abhishek Gupta","email":"3943612+atg-abhishek","login":"atg-abhishek","count":51},{"name":"Ahmad Antar","email":"166929986+prof-antar","login":"prof-antar","count":26},{"name":"Josh Rauvola","email":"jrauvola@Mac.lan","login":null,"count":17},{"name":"Dan Lewis-Toakley","email":"d.lewistoakley@gmail.com","login":"dtoakley","count":16},{"name":"Satish Gadekar","email":"satish.r.gadekar@gmail.com","login":"code-srg","count":15},{"name":"Dan Lewis-Toakley","email":"dan.lewistoakley@thoughtworks.com","login":"dtoakley-tw","count":10},{"name":"Chirag Sachdeva","email":"chiragsachdeva100@gmail.com","login":"c-sachdeva","count":8},{"name":"jrauvola","email":"jrauvola@gmail.com","login":"jrauvola","count":7},{"name":"Olivier Le Goaër","email":"olivier.legoaer@univ-pau.fr","login":"olegoaer","count":6},{"name":"Ben Logan","email":"1737958+benlogan","login":"benlogan","count":6},{"name":"Josh Rauvola","email":"jrauvola@Joshs-MBP.lan","login":null,"count":6},{"name":"Gottfried Szing","email":"gottfried@szing.eu","login":"gottfriedsz","count":4},{"name":"Asim Hussain","email":"asim@codecraft.tv","login":"jawache","count":3},{"name":"RoderickB","email":"13252390+webtonize","login":"webtonize","count":3},{"name":"Arne Tarara","email":"arne@datafuse.de","login":"ArneTR","count":2},{"name":"Lagarde","email":"pierlag@microsoft.com","login":"pierlag","count":2},{"name":"Thom McKiernan","email":"thommck@gmail.com","login":"thommck","count":2},{"name":"bpetit","email":"bpetit@hubblo.org","login":"bpetit","count":2},{"name":"fnikscon","email":"223229950+fnikscon","login":"fnikscon","count":2},{"name":"Bertrand Martin","email":"32521698+bertysentry","login":"bertysentry","count":2},{"name":"Chris Adams","email":"chris@productscience.co.uk","login":"mrchrisadams","count":2},{"name":"Navveen Balani","email":"88837066+navveenb","login":"navveenb","count":2},{"name":"Nishal K","email":"104292450+nishal21","login":"nishal21","count":1},{"name":"Philipp Wiesner","email":"pwiesner@posteo.de","login":"birnbaum","count":1},{"name":"Frazer Smith","email":"frazer.dev@outlook.com","login":"Fdawgs","count":1},{"name":"Sam Partington","email":"sampart@github.com","login":"sampart","count":1},{"name":"Shayokh Shuvro","email":"56217851+ShayokhShorfuddin","login":"ShayokhShorfuddin","count":1},{"name":"Sophie Trinder","email":"144015600+Sophietn","login":"Sophietn","count":1},{"name":"Stefan Cosquer","email":"stefan.cosquer@gmail.com","login":"stefancosquer","count":1},{"name":"Szymon Duchniewicz","email":"szymon.duchniewicz@avanade.com","login":"Willmish","count":1},{"name":"Tobi","email":"22715034+twobiers","login":"twobiers","count":1},{"name":"Vaughan Knight","email":"vaughan@vaughanknight.com","login":"vaughanknight","count":1},{"name":"Vitalii","email":"2556969@gmail.com","login":"Vitalini","count":1},{"name":"William Caban Babilonia","email":"william.caban@gmail.com","login":"williamcaban","count":1},{"name":"ahkok","email":"auke-jan.h.kok@intel.com","login":"ahkok","count":1},{"name":"tal","email":"t.alegre@castsoftware.com","login":null,"count":1},{"name":"charles","email":"charles@MacBook-de-charles.local","login":null,"count":1},{"name":"Sean Mcilroy","email":"smcilroy@omaorg.org","login":null,"count":1},{"name":"Julien Sikoutris","email":"asrat@MacBook-Air-de-A.local","login":null,"count":1},{"name":"Abhishek Gupta","email":"abhishekgupta@Abhisheks-MacBook-Pro.local","login":null,"count":1},{"name":"con_schy","email":"connorschultze1@gmail.com","login":"con-schy1","count":1},{"name":"fvaleye","email":"florian.valeye@gmail.com","login":"fvaleye","count":1},{"name":"Marta Torre","email":"hola@martatorre.dev","login":"martatorredev","count":1},{"name":"Marina Emsing","email":"marina.emsing@syngenio.de","login":"memsyn","count":1},{"name":"Mahendra Paipuri","email":"mahendra.paipuri@gmail.com","login":"mahendrapaipuri","count":1},{"name":"Lewis Pour","email":"103068259+lewispour","login":"lewispour","count":1},{"name":"Ioannis Kolaxis","email":"ikolaxis@gmail.com","login":"ikolaxis","count":1},{"name":"Guillaume Gallon","email":"1760659+gridboy","login":"gridboy","count":1},{"name":"Fabio Cicerchia","email":"info@fabiocicerchia.it","login":"fabiocicerchia","count":1},{"name":"Dryden","email":"hello@drydenwilliams.co.uk","login":"drydenwilliams","count":1},{"name":"Mauricio Alvarez Leon","email":"65101411+BBBmau","login":"BBBmau","count":1},{"name":"Michał Piszczek","email":"michal@piszczek.pl","login":"pich","count":1},{"name":"Ben van Werkhoven","email":"2337546+benvanwerkhoven","login":"benvanwerkhoven","count":1},{"name":"Bartosz Kotrys","email":"bartosz.kotrys@gmail.com","login":"bkotrys","count":1},{"name":"Artur Skowronski","email":"me@arturskowronski.com","login":"ArturSkowronski","count":1},{"name":"Antoine ABELARD","email":"a.abelard@specinov.fr","login":"specinov-antoine","count":1},{"name":"Angel Patricio Olivares Espinosa","email":"olivares.angelp@gmail.com","login":"angelOlivares","count":1},{"name":"Adel Noureddine","email":"adelnoureddine","login":"adelnoureddine","count":1},{"name":"Romain Rouvoy","email":"romain.rouvoy@univ-lille.fr","login":"rouvoy","count":1},{"name":"Michel Murabito","email":"mich.murabito@gmail.com","login":"akelity","count":1},{"name":"Mitsuru Kariya","email":"Mitsuru.Kariya@nttdata.com","login":"kariya-mitsuru","count":1},{"name":"Nicolas Le Cam","email":"niko.lecam@gmail.com","login":"KuSh","count":1}],"past_year_committers":[{"name":"Josh Rauvola","email":"jrauvola@Mac.lan","login":null,"count":15},{"name":"Ahmad Antar","email":"166929986+prof-antar","login":"prof-antar","count":9},{"name":"Chirag Sachdeva","email":"chiragsachdeva100@gmail.com","login":"c-sachdeva","count":8},{"name":"fnikscon","email":"223229950+fnikscon","login":"fnikscon","count":2},{"name":"Thom McKiernan","email":"thommck@gmail.com","login":"thommck","count":2},{"name":"Arne Tarara","email":"arne@datafuse.de","login":"ArneTR","count":2},{"name":"Vitalii","email":"2556969@gmail.com","login":"Vitalini","count":1},{"name":"Olivier Le Goaër","email":"olivier.legoaer@univ-pau.fr","login":"olegoaer","count":1},{"name":"Nishal K","email":"104292450+nishal21","login":"nishal21","count":1},{"name":"Michał Piszczek","email":"michal@piszczek.pl","login":"pich","count":1},{"name":"Guillaume Gallon","email":"1760659+gridboy","login":"gridboy","count":1},{"name":"Dryden","email":"hello@drydenwilliams.co.uk","login":"drydenwilliams","count":1},{"name":"Bartosz Kotrys","email":"bartosz.kotrys@gmail.com","login":"bkotrys","count":1},{"name":"Angel Patricio Olivares Espinosa","email":"olivares.angelp@gmail.com","login":"angelOlivares","count":1},{"name":"charles","email":"charles@MacBook-de-charles.local","login":null,"count":1},{"name":"Julien Sikoutris","email":"asrat@MacBook-Air-de-A.local","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/Green-Software-Foundation%2Fawesome-green-software/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-13T00:00:06.963Z","repositories_count":6651805,"commits_count":935019891,"contributors_count":39785231,"owners_count":1336471,"committers_count":3302318,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"Green-Software-Foundation/awesome-green-software","html_url":"https://github.com/Green-Software-Foundation/awesome-green-software","last_synced_at":"2026-08-05T14:03:26.259Z","status":null,"issues_count":29,"pull_requests_count":220,"avg_time_to_close_issue":16604918.0,"avg_time_to_close_pull_request":6325367.432692308,"issues_closed_count":25,"pull_requests_closed_count":208,"pull_request_authors_count":89,"issue_authors_count":20,"avg_comments_per_issue":2.586206896551724,"avg_comments_per_pull_request":1.0136363636363637,"merged_pull_requests_count":153,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":2,"past_year_pull_requests_count":26,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":6350100.625,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":24,"past_year_pull_request_authors_count":19,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":0.3076923076923077,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":20,"created_at":"2023-05-09T10:37:24.894Z","updated_at":"2026-08-12T10:58:49.180Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/Green-Software-Foundation%2Fawesome-green-software","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/Green-Software-Foundation%2Fawesome-green-software/issues","issue_labels_count":{"documentation":2,"help wanted":1},"pull_request_labels_count":{},"issue_author_associations_count":{"CONTRIBUTOR":15,"NONE":12,"MEMBER":2},"pull_request_author_associations_count":{"NONE":93,"CONTRIBUTOR":71,"MEMBER":55,"COLLABORATOR":1},"issue_authors":{"jawache":4,"Sophietn":3,"bsab":3,"atg-abhishek":2,"dtoakley":2,"MarcePSS":1,"memsyn":1,"dschien":1,"ashraflx71":1,"ng-druid":1,"martatorredev":1,"Leamsi9":1,"fnikscon":1,"ElmarBorgmeier":1,"olegoaer":1,"pierlag":1,"vaughanknight":1,"buchananwp":1,"con-schy1":1,"sampart":1},"pull_request_authors":{"atg-abhishek":53,"dtoakley":9,"prof-antar":8,"benlogan":6,"glalloue":6,"birnbaum":6,"ArneTR":4,"webtonize":3,"Julien361":3,"thommck":3,"williamcaban":3,"olegoaer":3,"gmasse":3,"dtoakley-tw":3,"lewispour":2,"ldevernay":2,"JulianLegler":2,"KMakowsky":2,"FinancialPenguin":2,"ReversedHourglass":2,"navveenb":2,"poojaruhal":2,"SudeshnaMitra":2,"rutpal":2,"JonJC":2,"twobiers":2,"dbahlbeck":2,"pierlag":2,"akelity":2,"dan-mm":2,"bertysentry":2,"willlie1":2,"ArturSkowronski":2,"fabiocicerchia":2,"rouvoy":2,"c-sachdeva":2,"ShayokhShorfuddin":2,"ikolaxis":2,"sebastianwis":2,"russelltrow":2,"ribalba":2,"iivanoo":2,"jaywonchung":2,"mahendrapaipuri":2,"AydinMirMohammadi":2,"sampart":2,"mrchrisadams":1,"Willmish":1,"kariya-mitsuru":1,"Zwony":1,"nishal21":1,"vittor1o":1,"specinov-antoine":1,"martatorredev":1,"rossf7":1,"screenspan":1,"jnioche":1,"fnikscon":1,"LadbotOneLad":1,"pich":1,"KuSh":1,"memsyn":1,"drydenwilliams":1,"bsab":1,"benvanwerkhoven":1,"pgregrivera":1,"michaellilltokiwa":1,"stefancosquer":1,"con-schy1":1,"vaughanknight":1,"ahkok":1,"angelOlivares":1,"gottfriedsz":1,"adelnoureddine":1,"jrauvola":1,"seanmcilroy29":1,"Vitalini":1,"lav-julien":1,"axiomaxllc":1,"bkotrys":1,"bpetit":1,"fvaleye":1,"jawache":1,"BBBmau":1,"EmileRolley":1,"Sophietn":1,"gridboy":1,"Fdawgs":1,"heristop":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-12T00:00:07.634Z","repositories_count":16026382,"issues_count":40536820,"pull_requests_count":131048287,"authors_count":11440391,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"CONTRIBUTOR":1,"NONE":1},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":16,"NONE":7,"MEMBER":2,"COLLABORATOR":1},"past_year_issue_authors":{"ashraflx71":1,"fnikscon":1},"past_year_pull_request_authors":{"prof-antar":3,"Julien361":3,"ArneTR":2,"c-sachdeva":2,"russelltrow":2,"Zwony":1,"Vitalini":1,"thommck":1,"pich":1,"olegoaer":1,"nishal21":1,"LadbotOneLad":1,"jrauvola":1,"gridboy":1,"fnikscon":1,"drydenwilliams":1,"bkotrys":1,"axiomaxllc":1,"angelOlivares":1},"maintainers":[{"login":"atg-abhishek","count":55,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/atg-abhishek"},{"login":"russelltrow","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/russelltrow"},{"login":"jrauvola","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jrauvola"}],"active_maintainers":[{"login":"russelltrow","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/russelltrow"},{"login":"jrauvola","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jrauvola"}]},"events":{"total":{"MemberEvent":1,"PullRequestEvent":37,"ForkEvent":26,"IssuesEvent":2,"WatchEvent":108,"IssueCommentEvent":14,"PushEvent":48,"PullRequestReviewEvent":8,"CreateEvent":3},"last_year":{"PullRequestEvent":5,"ForkEvent":5,"IssuesEvent":1,"WatchEvent":21,"PushEvent":6,"PullRequestReviewEvent":4}},"keywords":["awesome","awesome-list","climate","green-ai","green-computing","green-software","hacktoberfest","sustainability","sustainable-ai","sustainable-software"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/astro-sync-deploy.yml","sha":null,"kind":"manifest","created_at":"2025-11-17T06:02:15.216Z","updated_at":"2025-11-17T06:02:15.216Z","repository_link":"https://github.com/Green-Software-Foundation/awesome-green-software/blob/main/.github/workflows/astro-sync-deploy.yml","dependencies":[{"id":25747942895,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":25747942896,"package_name":"actions/setup-node","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":25747942897,"package_name":"withastro/action","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":25747942898,"package_name":"actions/deploy-pages","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"npm","filepath":"package-lock.json","sha":null,"kind":"lockfile","created_at":"2025-11-17T06:02:15.270Z","updated_at":"2025-11-17T06:02:15.270Z","repository_link":"https://github.com/Green-Software-Foundation/awesome-green-software/blob/main/package-lock.json","dependencies":[{"id":25747942899,"package_name":"@algolia/cache-browser-local-storage","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747944178,"package_name":"@algolia/cache-common","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747944743,"package_name":"@algolia/cache-in-memory","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747944753,"package_name":"@algolia/client-account","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747945525,"package_name":"@algolia/client-analytics","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747945526,"package_name":"@algolia/client-common","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747945527,"package_name":"@algolia/client-personalization","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747945528,"package_name":"@algolia/client-search","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747945529,"package_name":"@algolia/events","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747945793,"package_name":"@algolia/logger-common","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747945796,"package_name":"@algolia/logger-console","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946214,"package_name":"@algolia/recommend","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946215,"package_name":"@algolia/requester-browser-xhr","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946216,"package_name":"@algolia/requester-common","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946465,"package_name":"@algolia/requester-node-http","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946466,"package_name":"@algolia/transporter","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946535,"package_name":"@alloc/quick-lru","ecosystem":"npm","requirements":"5.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747946536,"package_name":"@ampproject/remapping","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747946537,"package_name":"@astrojs/compiler","ecosystem":"npm","requirements":"2.10.3","direct":false,"kind":"runtime","optional":false},{"id":25747946538,"package_name":"@astrojs/internal-helpers","ecosystem":"npm","requirements":"0.4.1","direct":false,"kind":"runtime","optional":false},{"id":25747946539,"package_name":"@astrojs/markdown-remark","ecosystem":"npm","requirements":"5.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747946540,"package_name":"@astrojs/prism","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946541,"package_name":"@astrojs/react","ecosystem":"npm","requirements":"3.6.2","direct":false,"kind":"runtime","optional":false},{"id":25747946542,"package_name":"@astrojs/tailwind","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"runtime","optional":false},{"id":25747946543,"package_name":"@astrojs/telemetry","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946544,"package_name":"@astrojs/ts-plugin","ecosystem":"npm","requirements":"1.10.4","direct":false,"kind":"development","optional":false},{"id":25747946545,"package_name":"@astrojs/yaml2ts","ecosystem":"npm","requirements":"0.2.2","direct":false,"kind":"development","optional":false},{"id":25747946546,"package_name":"@babel/code-frame","ecosystem":"npm","requirements":"7.26.2","direct":false,"kind":"runtime","optional":false},{"id":25747946547,"package_name":"@babel/compat-data","ecosystem":"npm","requirements":"7.26.0","direct":false,"kind":"runtime","optional":false},{"id":25747946548,"package_name":"@babel/core","ecosystem":"npm","requirements":"7.26.0","direct":false,"kind":"runtime","optional":false},{"id":25747946549,"package_name":"semver","ecosystem":"npm","requirements":"6.3.1","direct":false,"kind":"runtime","optional":false},{"id":25747946550,"package_name":"@babel/generator","ecosystem":"npm","requirements":"7.26.0","direct":false,"kind":"runtime","optional":false},{"id":25747946551,"package_name":"@babel/helper-annotate-as-pure","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946552,"package_name":"@babel/helper-compilation-targets","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946553,"package_name":"@babel/helper-module-imports","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946554,"package_name":"@babel/helper-module-transforms","ecosystem":"npm","requirements":"7.26.0","direct":false,"kind":"runtime","optional":false},{"id":25747946555,"package_name":"@babel/helper-plugin-utils","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946556,"package_name":"@babel/helper-string-parser","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946557,"package_name":"@babel/helper-validator-identifier","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946558,"package_name":"@babel/helper-validator-option","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946559,"package_name":"@babel/helpers","ecosystem":"npm","requirements":"7.27.0","direct":false,"kind":"runtime","optional":false},{"id":25747946560,"package_name":"@babel/parser","ecosystem":"npm","requirements":"7.27.0","direct":false,"kind":"runtime","optional":false},{"id":25747946561,"package_name":"@babel/plugin-syntax-jsx","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946562,"package_name":"@babel/plugin-transform-react-jsx","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946563,"package_name":"@babel/plugin-transform-react-jsx-self","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946564,"package_name":"@babel/plugin-transform-react-jsx-source","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946565,"package_name":"@babel/runtime","ecosystem":"npm","requirements":"7.27.0","direct":false,"kind":"runtime","optional":false},{"id":25747946566,"package_name":"@babel/template","ecosystem":"npm","requirements":"7.27.0","direct":false,"kind":"runtime","optional":false},{"id":25747946567,"package_name":"@babel/traverse","ecosystem":"npm","requirements":"7.25.9","direct":false,"kind":"runtime","optional":false},{"id":25747946568,"package_name":"@babel/types","ecosystem":"npm","requirements":"7.27.0","direct":false,"kind":"runtime","optional":false},{"id":25747946569,"package_name":"@cspotcode/source-map-support","ecosystem":"npm","requirements":"0.8.1","direct":false,"kind":"development","optional":false},{"id":25747946570,"package_name":"@jridgewell/trace-mapping","ecosystem":"npm","requirements":"0.3.9","direct":false,"kind":"development","optional":false},{"id":25747946571,"package_name":"@emnapi/runtime","ecosystem":"npm","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":25747946572,"package_name":"@esbuild/aix-ppc64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946573,"package_name":"@esbuild/android-arm","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946574,"package_name":"@esbuild/android-arm64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946575,"package_name":"@esbuild/android-x64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946576,"package_name":"@esbuild/darwin-arm64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946577,"package_name":"@esbuild/darwin-x64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946578,"package_name":"@esbuild/freebsd-arm64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946579,"package_name":"@esbuild/freebsd-x64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946580,"package_name":"@esbuild/linux-arm","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946581,"package_name":"@esbuild/linux-arm64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946582,"package_name":"@esbuild/linux-ia32","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946583,"package_name":"@esbuild/linux-loong64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946584,"package_name":"@esbuild/linux-mips64el","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946585,"package_name":"@esbuild/linux-ppc64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946586,"package_name":"@esbuild/linux-riscv64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946587,"package_name":"@esbuild/linux-s390x","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946588,"package_name":"@esbuild/linux-x64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946624,"package_name":"@esbuild/netbsd-x64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946625,"package_name":"@esbuild/openbsd-x64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946626,"package_name":"@esbuild/sunos-x64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946627,"package_name":"@esbuild/win32-arm64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946628,"package_name":"@esbuild/win32-ia32","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946629,"package_name":"@esbuild/win32-x64","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747946630,"package_name":"@img/sharp-darwin-arm64","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747946631,"package_name":"@img/sharp-darwin-x64","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747946632,"package_name":"@img/sharp-libvips-darwin-arm64","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747946633,"package_name":"@img/sharp-libvips-darwin-x64","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747946634,"package_name":"@img/sharp-libvips-linux-arm","ecosystem":"npm","requirements":"1.0.5","direct":false,"kind":"runtime","optional":false},{"id":25747946635,"package_name":"@img/sharp-libvips-linux-arm64","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747946636,"package_name":"@img/sharp-libvips-linux-s390x","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747946637,"package_name":"@img/sharp-libvips-linux-x64","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747946638,"package_name":"@img/sharp-libvips-linuxmusl-arm64","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747946639,"package_name":"@img/sharp-libvips-linuxmusl-x64","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747946640,"package_name":"@img/sharp-linux-arm","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747946641,"package_name":"@img/sharp-linux-arm64","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747946642,"package_name":"@img/sharp-linux-s390x","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747946643,"package_name":"@img/sharp-linux-x64","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747946644,"package_name":"@img/sharp-linuxmusl-arm64","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747946645,"package_name":"@img/sharp-linuxmusl-x64","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747946646,"package_name":"@img/sharp-wasm32","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747946647,"package_name":"@img/sharp-win32-ia32","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747946648,"package_name":"@img/sharp-win32-x64","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747946649,"package_name":"@isaacs/cliui","ecosystem":"npm","requirements":"8.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747946650,"package_name":"emoji-regex","ecosystem":"npm","requirements":"9.2.2","direct":false,"kind":"runtime","optional":false},{"id":25747946651,"package_name":"string-width","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"runtime","optional":false},{"id":25747946652,"package_name":"wrap-ansi","ecosystem":"npm","requirements":"8.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946653,"package_name":"@jridgewell/gen-mapping","ecosystem":"npm","requirements":"0.3.5","direct":false,"kind":"runtime","optional":false},{"id":25747946654,"package_name":"@jridgewell/resolve-uri","ecosystem":"npm","requirements":"3.1.2","direct":false,"kind":"runtime","optional":false},{"id":25747946655,"package_name":"@jridgewell/set-array","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"runtime","optional":false},{"id":25747946656,"package_name":"@jridgewell/sourcemap-codec","ecosystem":"npm","requirements":"1.5.0","direct":false,"kind":"runtime","optional":false},{"id":25747946657,"package_name":"@jridgewell/trace-mapping","ecosystem":"npm","requirements":"0.3.25","direct":false,"kind":"runtime","optional":false},{"id":25747946658,"package_name":"@nodelib/fs.scandir","ecosystem":"npm","requirements":"2.1.5","direct":false,"kind":"runtime","optional":false},{"id":25747946659,"package_name":"@nodelib/fs.stat","ecosystem":"npm","requirements":"2.0.5","direct":false,"kind":"runtime","optional":false},{"id":25747946660,"package_name":"@nodelib/fs.walk","ecosystem":"npm","requirements":"1.2.8","direct":false,"kind":"runtime","optional":false},{"id":25747946661,"package_name":"@notionhq/client","ecosystem":"npm","requirements":"2.2.15","direct":false,"kind":"runtime","optional":false},{"id":25747946683,"package_name":"node-fetch","ecosystem":"npm","requirements":"2.7.0","direct":false,"kind":"runtime","optional":false},{"id":25747946684,"package_name":"@oslojs/encoding","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946685,"package_name":"@pkgjs/parseargs","ecosystem":"npm","requirements":"0.11.0","direct":false,"kind":"runtime","optional":false},{"id":25747946686,"package_name":"@radix-ui/primitive","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946687,"package_name":"@radix-ui/react-accordion","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"runtime","optional":false},{"id":25747946688,"package_name":"@radix-ui/react-collapsible","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747946689,"package_name":"@radix-ui/react-collection","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946690,"package_name":"@radix-ui/react-context","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946691,"package_name":"@radix-ui/react-compose-refs","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946692,"package_name":"@radix-ui/react-context","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747946693,"package_name":"@radix-ui/react-direction","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946694,"package_name":"@radix-ui/react-id","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946695,"package_name":"@radix-ui/react-presence","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747946696,"package_name":"@radix-ui/react-primitive","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747946697,"package_name":"@radix-ui/react-slot","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946698,"package_name":"@radix-ui/react-use-callback-ref","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946699,"package_name":"@radix-ui/react-use-controllable-state","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946700,"package_name":"@radix-ui/react-use-layout-effect","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946701,"package_name":"@rollup/pluginutils","ecosystem":"npm","requirements":"5.1.3","direct":false,"kind":"runtime","optional":false},{"id":25747946702,"package_name":"estree-walker","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747946703,"package_name":"@rollup/rollup-android-arm-eabi","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946704,"package_name":"@rollup/rollup-android-arm64","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946705,"package_name":"@rollup/rollup-darwin-arm64","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946706,"package_name":"@rollup/rollup-darwin-x64","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946707,"package_name":"@rollup/rollup-linux-arm-gnueabihf","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946708,"package_name":"@rollup/rollup-linux-arm-musleabihf","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946709,"package_name":"@rollup/rollup-linux-arm64-gnu","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946710,"package_name":"@rollup/rollup-linux-arm64-musl","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946711,"package_name":"@rollup/rollup-linux-powerpc64le-gnu","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946712,"package_name":"@rollup/rollup-linux-riscv64-gnu","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946713,"package_name":"@rollup/rollup-linux-s390x-gnu","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946714,"package_name":"@rollup/rollup-linux-x64-gnu","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946715,"package_name":"@rollup/rollup-linux-x64-musl","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946716,"package_name":"@rollup/rollup-win32-arm64-msvc","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946717,"package_name":"@rollup/rollup-win32-ia32-msvc","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946718,"package_name":"@rollup/rollup-win32-x64-msvc","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946719,"package_name":"@shikijs/core","ecosystem":"npm","requirements":"1.29.2","direct":false,"kind":"runtime","optional":false},{"id":25747946720,"package_name":"@shikijs/engine-javascript","ecosystem":"npm","requirements":"1.29.2","direct":false,"kind":"runtime","optional":false},{"id":25747946721,"package_name":"@shikijs/engine-oniguruma","ecosystem":"npm","requirements":"1.29.2","direct":false,"kind":"runtime","optional":false},{"id":25747946722,"package_name":"@shikijs/langs","ecosystem":"npm","requirements":"1.29.2","direct":false,"kind":"runtime","optional":false},{"id":25747946723,"package_name":"@shikijs/themes","ecosystem":"npm","requirements":"1.29.2","direct":false,"kind":"runtime","optional":false},{"id":25747946724,"package_name":"@shikijs/types","ecosystem":"npm","requirements":"1.29.2","direct":false,"kind":"runtime","optional":false},{"id":25747946725,"package_name":"@shikijs/vscode-textmate","ecosystem":"npm","requirements":"10.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747946726,"package_name":"@tsconfig/node10","ecosystem":"npm","requirements":"1.0.11","direct":false,"kind":"development","optional":false},{"id":25747946727,"package_name":"@tsconfig/node12","ecosystem":"npm","requirements":"1.0.11","direct":false,"kind":"development","optional":false},{"id":25747946728,"package_name":"@tsconfig/node14","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":25747946729,"package_name":"@tsconfig/node16","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":25747946730,"package_name":"@types/babel__core","ecosystem":"npm","requirements":"7.20.5","direct":false,"kind":"runtime","optional":false},{"id":25747946731,"package_name":"@types/babel__generator","ecosystem":"npm","requirements":"7.6.8","direct":false,"kind":"runtime","optional":false},{"id":25747946732,"package_name":"@types/babel__template","ecosystem":"npm","requirements":"7.4.4","direct":false,"kind":"runtime","optional":false},{"id":25747946733,"package_name":"@types/babel__traverse","ecosystem":"npm","requirements":"7.20.6","direct":false,"kind":"runtime","optional":false},{"id":25747946734,"package_name":"@types/cookie","ecosystem":"npm","requirements":"0.6.0","direct":false,"kind":"runtime","optional":false},{"id":25747946735,"package_name":"@types/debug","ecosystem":"npm","requirements":"4.1.12","direct":false,"kind":"runtime","optional":false},{"id":25747946736,"package_name":"@types/dom-speech-recognition","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946737,"package_name":"@types/estree","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"runtime","optional":false},{"id":25747946738,"package_name":"@types/google.maps","ecosystem":"npm","requirements":"3.58.1","direct":false,"kind":"runtime","optional":false},{"id":25747946770,"package_name":"@types/hast","ecosystem":"npm","requirements":"3.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747946771,"package_name":"@types/hogan.js","ecosystem":"npm","requirements":"3.0.5","direct":false,"kind":"runtime","optional":false},{"id":25747946838,"package_name":"@types/mdast","ecosystem":"npm","requirements":"4.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747946839,"package_name":"@types/ms","ecosystem":"npm","requirements":"0.7.34","direct":false,"kind":"runtime","optional":false},{"id":25747946840,"package_name":"@types/nlcst","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747946841,"package_name":"@types/node","ecosystem":"npm","requirements":"22.8.0","direct":false,"kind":"runtime","optional":false},{"id":25747946842,"package_name":"@types/node-fetch","ecosystem":"npm","requirements":"2.6.11","direct":false,"kind":"runtime","optional":false},{"id":25747946843,"package_name":"@types/prop-types","ecosystem":"npm","requirements":"15.7.13","direct":false,"kind":"runtime","optional":false},{"id":25747946844,"package_name":"@types/qs","ecosystem":"npm","requirements":"6.9.16","direct":false,"kind":"runtime","optional":false},{"id":25747946845,"package_name":"@types/react","ecosystem":"npm","requirements":"18.3.12","direct":false,"kind":"runtime","optional":false},{"id":25747946846,"package_name":"@types/react-dom","ecosystem":"npm","requirements":"18.3.1","direct":false,"kind":"runtime","optional":false},{"id":25747946847,"package_name":"@types/unist","ecosystem":"npm","requirements":"3.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747946848,"package_name":"@ungap/structured-clone","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747946849,"package_name":"@vitejs/plugin-react","ecosystem":"npm","requirements":"4.3.3","direct":false,"kind":"runtime","optional":false},{"id":25747946850,"package_name":"@volar/language-core","ecosystem":"npm","requirements":"2.4.7","direct":false,"kind":"development","optional":false},{"id":25747946851,"package_name":"@volar/source-map","ecosystem":"npm","requirements":"2.4.7","direct":false,"kind":"development","optional":false},{"id":25747946852,"package_name":"@volar/typescript","ecosystem":"npm","requirements":"2.4.7","direct":false,"kind":"development","optional":false},{"id":25747946853,"package_name":"abbrev","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747946854,"package_name":"acorn","ecosystem":"npm","requirements":"8.14.1","direct":false,"kind":"runtime","optional":false},{"id":25747946855,"package_name":"acorn-walk","ecosystem":"npm","requirements":"8.3.4","direct":false,"kind":"development","optional":false},{"id":25747946856,"package_name":"algoliasearch","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747946857,"package_name":"algoliasearch-helper","ecosystem":"npm","requirements":"3.22.5","direct":false,"kind":"runtime","optional":false},{"id":25747946946,"package_name":"ansi-align","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946947,"package_name":"ansi-regex","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946948,"package_name":"emoji-regex","ecosystem":"npm","requirements":"8.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747946949,"package_name":"string-width","ecosystem":"npm","requirements":"4.2.3","direct":false,"kind":"runtime","optional":false},{"id":25747946950,"package_name":"strip-ansi","ecosystem":"npm","requirements":"6.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946951,"package_name":"ansi-regex","ecosystem":"npm","requirements":"6.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946952,"package_name":"ansi-styles","ecosystem":"npm","requirements":"6.2.1","direct":false,"kind":"runtime","optional":false},{"id":25747946953,"package_name":"any-promise","ecosystem":"npm","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747946954,"package_name":"anymatch","ecosystem":"npm","requirements":"3.1.3","direct":false,"kind":"runtime","optional":false},{"id":25747946955,"package_name":"picomatch","ecosystem":"npm","requirements":"2.3.1","direct":false,"kind":"runtime","optional":false},{"id":25747946956,"package_name":"arg","ecosystem":"npm","requirements":"5.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747946957,"package_name":"argparse","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946958,"package_name":"aria-query","ecosystem":"npm","requirements":"5.3.2","direct":false,"kind":"runtime","optional":false},{"id":25747946959,"package_name":"array-iterate","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946960,"package_name":"astro","ecosystem":"npm","requirements":"4.16.18","direct":false,"kind":"runtime","optional":false},{"id":25747946961,"package_name":"asynckit","ecosystem":"npm","requirements":"0.4.0","direct":false,"kind":"runtime","optional":false},{"id":25747946962,"package_name":"autoprefixer","ecosystem":"npm","requirements":"10.4.20","direct":false,"kind":"runtime","optional":false},{"id":25747946963,"package_name":"axobject-query","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946964,"package_name":"bail","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747946965,"package_name":"balanced-match","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747946966,"package_name":"base-64","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747946967,"package_name":"binary-extensions","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747946968,"package_name":"boxen","ecosystem":"npm","requirements":"8.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946969,"package_name":"brace-expansion","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946970,"package_name":"braces","ecosystem":"npm","requirements":"3.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747946971,"package_name":"browserslist","ecosystem":"npm","requirements":"4.24.2","direct":false,"kind":"runtime","optional":false},{"id":25747946972,"package_name":"camelcase","ecosystem":"npm","requirements":"8.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747946973,"package_name":"camelcase-css","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946974,"package_name":"caniuse-lite","ecosystem":"npm","requirements":"1.0.30001669","direct":false,"kind":"runtime","optional":false},{"id":25747946975,"package_name":"ccount","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946976,"package_name":"chalk","ecosystem":"npm","requirements":"5.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747946977,"package_name":"character-entities","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747946978,"package_name":"character-entities-html4","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747946979,"package_name":"character-entities-legacy","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747946980,"package_name":"chokidar","ecosystem":"npm","requirements":"3.6.0","direct":false,"kind":"runtime","optional":false},{"id":25747946981,"package_name":"ci-info","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747946982,"package_name":"classnames","ecosystem":"npm","requirements":"2.5.1","direct":false,"kind":"runtime","optional":false},{"id":25747946983,"package_name":"cli-boxes","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747946984,"package_name":"cli-cursor","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747946985,"package_name":"cli-spinners","ecosystem":"npm","requirements":"2.9.2","direct":false,"kind":"runtime","optional":false},{"id":25747946986,"package_name":"clsx","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747946987,"package_name":"color","ecosystem":"npm","requirements":"4.2.3","direct":false,"kind":"runtime","optional":false},{"id":25747946988,"package_name":"color-convert","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946989,"package_name":"color-name","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"runtime","optional":false},{"id":25747946990,"package_name":"color-string","ecosystem":"npm","requirements":"1.9.1","direct":false,"kind":"runtime","optional":false},{"id":25747946991,"package_name":"combined-stream","ecosystem":"npm","requirements":"1.0.8","direct":false,"kind":"runtime","optional":false},{"id":25747946992,"package_name":"comma-separated-tokens","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747946993,"package_name":"commander","ecosystem":"npm","requirements":"4.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747946994,"package_name":"common-ancestor-path","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747946995,"package_name":"convert-source-map","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747946996,"package_name":"cookie","ecosystem":"npm","requirements":"0.7.2","direct":false,"kind":"runtime","optional":false},{"id":25747946997,"package_name":"create-require","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":25747946998,"package_name":"cross-spawn","ecosystem":"npm","requirements":"7.0.6","direct":false,"kind":"runtime","optional":false},{"id":25747946999,"package_name":"cssesc","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947000,"package_name":"csstype","ecosystem":"npm","requirements":"3.1.3","direct":false,"kind":"runtime","optional":false},{"id":25747947001,"package_name":"data-uri-to-buffer","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947002,"package_name":"date-fns","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947003,"package_name":"debug","ecosystem":"npm","requirements":"4.3.7","direct":false,"kind":"runtime","optional":false},{"id":25747947004,"package_name":"decode-named-character-reference","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947005,"package_name":"delayed-stream","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947006,"package_name":"dequal","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747947007,"package_name":"detect-libc","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747947008,"package_name":"deterministic-object-hash","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947009,"package_name":"devalue","ecosystem":"npm","requirements":"5.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947010,"package_name":"devlop","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947011,"package_name":"didyoumean","ecosystem":"npm","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":25747947012,"package_name":"diff","ecosystem":"npm","requirements":"5.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947013,"package_name":"dlv","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"runtime","optional":false},{"id":25747947014,"package_name":"dotenv","ecosystem":"npm","requirements":"16.4.5","direct":false,"kind":"runtime","optional":false},{"id":25747947015,"package_name":"dset","ecosystem":"npm","requirements":"3.1.4","direct":false,"kind":"runtime","optional":false},{"id":25747947016,"package_name":"eastasianwidth","ecosystem":"npm","requirements":"0.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947017,"package_name":"electron-to-chromium","ecosystem":"npm","requirements":"1.5.46","direct":false,"kind":"runtime","optional":false},{"id":25747947018,"package_name":"emoji-regex","ecosystem":"npm","requirements":"10.4.0","direct":false,"kind":"runtime","optional":false},{"id":25747947019,"package_name":"emoji-regex-xs","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947020,"package_name":"entities","ecosystem":"npm","requirements":"4.5.0","direct":false,"kind":"runtime","optional":false},{"id":25747947021,"package_name":"es-module-lexer","ecosystem":"npm","requirements":"1.5.4","direct":false,"kind":"runtime","optional":false},{"id":25747947022,"package_name":"esbuild","ecosystem":"npm","requirements":"0.21.5","direct":false,"kind":"runtime","optional":false},{"id":25747947023,"package_name":"escalade","ecosystem":"npm","requirements":"3.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947024,"package_name":"escape-string-regexp","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947025,"package_name":"esprima","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947026,"package_name":"estree-walker","ecosystem":"npm","requirements":"3.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747947027,"package_name":"eventemitter3","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947028,"package_name":"extend","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947029,"package_name":"extend-shallow","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947030,"package_name":"fast-glob","ecosystem":"npm","requirements":"3.3.2","direct":false,"kind":"runtime","optional":false},{"id":25747947031,"package_name":"fastq","ecosystem":"npm","requirements":"1.17.1","direct":false,"kind":"runtime","optional":false},{"id":25747947032,"package_name":"fetch-blob","ecosystem":"npm","requirements":"3.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947033,"package_name":"fill-range","ecosystem":"npm","requirements":"7.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947034,"package_name":"find-up","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947035,"package_name":"find-up-simple","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947036,"package_name":"find-yarn-workspace-root2","ecosystem":"npm","requirements":"1.2.16","direct":false,"kind":"runtime","optional":false},{"id":25747947037,"package_name":"flattie","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947038,"package_name":"foreground-child","ecosystem":"npm","requirements":"3.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747947039,"package_name":"form-data","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947040,"package_name":"formdata-polyfill","ecosystem":"npm","requirements":"4.0.10","direct":false,"kind":"runtime","optional":false},{"id":25747947041,"package_name":"fraction.js","ecosystem":"npm","requirements":"4.3.7","direct":false,"kind":"runtime","optional":false},{"id":25747947042,"package_name":"fsevents","ecosystem":"npm","requirements":"2.3.3","direct":false,"kind":"runtime","optional":false},{"id":25747947043,"package_name":"function-bind","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"runtime","optional":false},{"id":25747947044,"package_name":"gensync","ecosystem":"npm","requirements":"1.0.0-beta.2","direct":false,"kind":"runtime","optional":false},{"id":25747947045,"package_name":"get-east-asian-width","ecosystem":"npm","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747947046,"package_name":"github-slugger","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947047,"package_name":"glob","ecosystem":"npm","requirements":"10.4.5","direct":false,"kind":"runtime","optional":false},{"id":25747947048,"package_name":"glob-parent","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"runtime","optional":false},{"id":25747947049,"package_name":"globals","ecosystem":"npm","requirements":"11.12.0","direct":false,"kind":"runtime","optional":false},{"id":25747947050,"package_name":"graceful-fs","ecosystem":"npm","requirements":"4.2.11","direct":false,"kind":"runtime","optional":false},{"id":25747947051,"package_name":"gray-matter","ecosystem":"npm","requirements":"4.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747947052,"package_name":"argparse","ecosystem":"npm","requirements":"1.0.10","direct":false,"kind":"runtime","optional":false},{"id":25747947053,"package_name":"js-yaml","ecosystem":"npm","requirements":"3.14.1","direct":false,"kind":"runtime","optional":false},{"id":25747947055,"package_name":"hasown","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947056,"package_name":"hast-util-from-html","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747947059,"package_name":"hast-util-from-parse5","ecosystem":"npm","requirements":"8.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947060,"package_name":"hast-util-is-element","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947062,"package_name":"hast-util-parse-selector","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947064,"package_name":"hast-util-raw","ecosystem":"npm","requirements":"9.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747947065,"package_name":"hast-util-to-html","ecosystem":"npm","requirements":"9.0.5","direct":false,"kind":"runtime","optional":false},{"id":25747947066,"package_name":"property-information","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947067,"package_name":"hast-util-to-parse5","ecosystem":"npm","requirements":"8.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947068,"package_name":"hast-util-to-text","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947069,"package_name":"hast-util-whitespace","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947070,"package_name":"hastscript","ecosystem":"npm","requirements":"8.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947071,"package_name":"hogan.js","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947184,"package_name":"htm","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947189,"package_name":"html-escaper","ecosystem":"npm","requirements":"3.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747947190,"package_name":"html-void-elements","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947191,"package_name":"http-cache-semantics","ecosystem":"npm","requirements":"4.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947192,"package_name":"import-meta-resolve","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947193,"package_name":"instantsearch-ui-components","ecosystem":"npm","requirements":"0.9.0","direct":false,"kind":"runtime","optional":false},{"id":25747947226,"package_name":"instantsearch.js","ecosystem":"npm","requirements":"4.75.3","direct":false,"kind":"runtime","optional":false},{"id":25747947242,"package_name":"is-arrayish","ecosystem":"npm","requirements":"0.3.2","direct":false,"kind":"runtime","optional":false},{"id":25747947243,"package_name":"is-binary-path","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947244,"package_name":"is-core-module","ecosystem":"npm","requirements":"2.15.1","direct":false,"kind":"runtime","optional":false},{"id":25747947245,"package_name":"is-docker","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947246,"package_name":"is-extendable","ecosystem":"npm","requirements":"0.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947247,"package_name":"is-extglob","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947248,"package_name":"is-fullwidth-code-point","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947249,"package_name":"is-glob","ecosystem":"npm","requirements":"4.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747947250,"package_name":"is-inside-container","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947251,"package_name":"is-interactive","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947252,"package_name":"is-number","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947253,"package_name":"is-plain-obj","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947254,"package_name":"is-unicode-supported","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947255,"package_name":"is-wsl","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947256,"package_name":"isexe","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947257,"package_name":"jackspeak","ecosystem":"npm","requirements":"3.4.3","direct":false,"kind":"runtime","optional":false},{"id":25747947258,"package_name":"jiti","ecosystem":"npm","requirements":"1.21.6","direct":false,"kind":"runtime","optional":false},{"id":25747947259,"package_name":"js-tokens","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947260,"package_name":"js-yaml","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947261,"package_name":"jsesc","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947262,"package_name":"json5","ecosystem":"npm","requirements":"2.2.3","direct":false,"kind":"runtime","optional":false},{"id":25747947263,"package_name":"kind-of","ecosystem":"npm","requirements":"6.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747947264,"package_name":"kleur","ecosystem":"npm","requirements":"4.1.5","direct":false,"kind":"runtime","optional":false},{"id":25747947265,"package_name":"lilconfig","ecosystem":"npm","requirements":"3.1.2","direct":false,"kind":"runtime","optional":false},{"id":25747947266,"package_name":"lines-and-columns","ecosystem":"npm","requirements":"1.2.4","direct":false,"kind":"runtime","optional":false},{"id":25747947267,"package_name":"load-yaml-file","ecosystem":"npm","requirements":"0.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947268,"package_name":"pify","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947269,"package_name":"locate-path","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947270,"package_name":"log-symbols","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947271,"package_name":"is-unicode-supported","ecosystem":"npm","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747947272,"package_name":"longest-streak","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947273,"package_name":"loose-envify","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"runtime","optional":false},{"id":25747947274,"package_name":"lru-cache","ecosystem":"npm","requirements":"5.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947275,"package_name":"lucide-react","ecosystem":"npm","requirements":"0.344.0","direct":false,"kind":"runtime","optional":false},{"id":25747947276,"package_name":"magic-string","ecosystem":"npm","requirements":"0.30.17","direct":false,"kind":"runtime","optional":false},{"id":25747947277,"package_name":"magicast","ecosystem":"npm","requirements":"0.3.5","direct":false,"kind":"runtime","optional":false},{"id":25747947278,"package_name":"make-error","ecosystem":"npm","requirements":"1.3.6","direct":false,"kind":"development","optional":false},{"id":25747947279,"package_name":"markdown-table","ecosystem":"npm","requirements":"3.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747947280,"package_name":"mdast-util-definitions","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947281,"package_name":"mdast-util-find-and-replace","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947282,"package_name":"mdast-util-from-markdown","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947283,"package_name":"mdast-util-gfm","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947284,"package_name":"mdast-util-gfm-autolink-literal","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947285,"package_name":"mdast-util-gfm-footnote","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947286,"package_name":"mdast-util-gfm-strikethrough","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947287,"package_name":"mdast-util-gfm-table","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947288,"package_name":"mdast-util-gfm-task-list-item","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947289,"package_name":"mdast-util-phrasing","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947290,"package_name":"mdast-util-to-hast","ecosystem":"npm","requirements":"13.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947291,"package_name":"mdast-util-to-markdown","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947292,"package_name":"mdast-util-to-string","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947293,"package_name":"merge2","ecosystem":"npm","requirements":"1.4.1","direct":false,"kind":"runtime","optional":false},{"id":25747947294,"package_name":"micromark","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947295,"package_name":"micromark-core-commonmark","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947296,"package_name":"micromark-extension-gfm","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947297,"package_name":"micromark-extension-gfm-autolink-literal","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947298,"package_name":"micromark-extension-gfm-footnote","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947299,"package_name":"micromark-extension-gfm-strikethrough","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947300,"package_name":"micromark-extension-gfm-table","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947301,"package_name":"micromark-extension-gfm-tagfilter","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947302,"package_name":"micromark-extension-gfm-task-list-item","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947303,"package_name":"micromark-factory-destination","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947304,"package_name":"micromark-factory-label","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947305,"package_name":"micromark-factory-space","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947306,"package_name":"micromark-factory-title","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947307,"package_name":"micromark-factory-whitespace","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947308,"package_name":"micromark-util-character","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947309,"package_name":"micromark-util-chunked","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947310,"package_name":"micromark-util-classify-character","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947311,"package_name":"micromark-util-combine-extensions","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947312,"package_name":"micromark-util-decode-numeric-character-reference","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947313,"package_name":"micromark-util-decode-string","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947314,"package_name":"micromark-util-encode","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947315,"package_name":"micromark-util-html-tag-name","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947316,"package_name":"micromark-util-normalize-identifier","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947317,"package_name":"micromark-util-resolve-all","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947318,"package_name":"micromark-util-sanitize-uri","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947319,"package_name":"micromark-util-subtokenize","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947320,"package_name":"micromark-util-symbol","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947321,"package_name":"micromark-util-types","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947322,"package_name":"micromatch","ecosystem":"npm","requirements":"4.0.8","direct":false,"kind":"runtime","optional":false},{"id":25747947323,"package_name":"mime-db","ecosystem":"npm","requirements":"1.52.0","direct":false,"kind":"runtime","optional":false},{"id":25747947324,"package_name":"mime-types","ecosystem":"npm","requirements":"2.1.35","direct":false,"kind":"runtime","optional":false},{"id":25747947325,"package_name":"mimic-function","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947326,"package_name":"minimatch","ecosystem":"npm","requirements":"9.0.5","direct":false,"kind":"runtime","optional":false},{"id":25747947327,"package_name":"minipass","ecosystem":"npm","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":25747947328,"package_name":"mkdirp","ecosystem":"npm","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747947329,"package_name":"moment","ecosystem":"npm","requirements":"2.30.1","direct":false,"kind":"runtime","optional":false},{"id":25747947330,"package_name":"mrmime","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947331,"package_name":"ms","ecosystem":"npm","requirements":"2.1.3","direct":false,"kind":"runtime","optional":false},{"id":25747947332,"package_name":"mz","ecosystem":"npm","requirements":"2.7.0","direct":false,"kind":"runtime","optional":false},{"id":25747947333,"package_name":"nanoid","ecosystem":"npm","requirements":"3.3.11","direct":false,"kind":"runtime","optional":false},{"id":25747947334,"package_name":"neotraverse","ecosystem":"npm","requirements":"0.6.18","direct":false,"kind":"runtime","optional":false},{"id":25747947335,"package_name":"nlcst-to-string","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947336,"package_name":"node-domexception","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947337,"package_name":"node-fetch","ecosystem":"npm","requirements":"3.3.2","direct":false,"kind":"runtime","optional":false},{"id":25747947338,"package_name":"node-releases","ecosystem":"npm","requirements":"2.0.18","direct":false,"kind":"runtime","optional":false},{"id":25747947339,"package_name":"nopt","ecosystem":"npm","requirements":"1.0.10","direct":false,"kind":"runtime","optional":false},{"id":25747947340,"package_name":"normalize-path","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947341,"package_name":"normalize-range","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":25747947342,"package_name":"object-assign","ecosystem":"npm","requirements":"4.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947343,"package_name":"object-hash","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947344,"package_name":"onetime","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947345,"package_name":"oniguruma-to-es","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747947346,"package_name":"ora","ecosystem":"npm","requirements":"8.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947347,"package_name":"p-limit","ecosystem":"npm","requirements":"6.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947348,"package_name":"p-locate","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947349,"package_name":"p-limit","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747947350,"package_name":"p-queue","ecosystem":"npm","requirements":"8.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947351,"package_name":"p-timeout","ecosystem":"npm","requirements":"6.1.3","direct":false,"kind":"runtime","optional":false},{"id":25747947352,"package_name":"p-try","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947353,"package_name":"package-json-from-dist","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947354,"package_name":"parse-latin","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947355,"package_name":"parse5","ecosystem":"npm","requirements":"7.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947356,"package_name":"path-browserify","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":25747947357,"package_name":"path-exists","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947358,"package_name":"path-key","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947359,"package_name":"path-parse","ecosystem":"npm","requirements":"1.0.7","direct":false,"kind":"runtime","optional":false},{"id":25747947360,"package_name":"path-scurry","ecosystem":"npm","requirements":"1.11.1","direct":false,"kind":"runtime","optional":false},{"id":25747947361,"package_name":"lru-cache","ecosystem":"npm","requirements":"10.4.3","direct":false,"kind":"runtime","optional":false},{"id":25747947362,"package_name":"picocolors","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947363,"package_name":"picomatch","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947364,"package_name":"pify","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747947365,"package_name":"pirates","ecosystem":"npm","requirements":"4.0.6","direct":false,"kind":"runtime","optional":false},{"id":25747947366,"package_name":"pkg-dir","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947367,"package_name":"postcss","ecosystem":"npm","requirements":"8.4.47","direct":false,"kind":"runtime","optional":false},{"id":25747947368,"package_name":"postcss-import","ecosystem":"npm","requirements":"15.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947369,"package_name":"postcss-js","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947370,"package_name":"postcss-load-config","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947371,"package_name":"postcss-nested","ecosystem":"npm","requirements":"6.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947372,"package_name":"postcss-selector-parser","ecosystem":"npm","requirements":"6.1.2","direct":false,"kind":"runtime","optional":false},{"id":25747947373,"package_name":"postcss-value-parser","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947374,"package_name":"preact","ecosystem":"npm","requirements":"10.24.3","direct":false,"kind":"runtime","optional":false},{"id":25747947375,"package_name":"preferred-pm","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947376,"package_name":"prismjs","ecosystem":"npm","requirements":"1.30.0","direct":false,"kind":"runtime","optional":false},{"id":25747947377,"package_name":"prompts","ecosystem":"npm","requirements":"2.4.2","direct":false,"kind":"runtime","optional":false},{"id":25747947378,"package_name":"kleur","ecosystem":"npm","requirements":"3.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747947379,"package_name":"prop-types","ecosystem":"npm","requirements":"15.8.1","direct":false,"kind":"runtime","optional":false},{"id":25747947380,"package_name":"property-information","ecosystem":"npm","requirements":"6.5.0","direct":false,"kind":"runtime","optional":false},{"id":25747947381,"package_name":"qs","ecosystem":"npm","requirements":"6.9.7","direct":false,"kind":"runtime","optional":false},{"id":25747947382,"package_name":"queue-microtask","ecosystem":"npm","requirements":"1.2.3","direct":false,"kind":"runtime","optional":false},{"id":25747947383,"package_name":"react","ecosystem":"npm","requirements":"18.3.1","direct":false,"kind":"runtime","optional":false},{"id":25747947384,"package_name":"react-dom","ecosystem":"npm","requirements":"18.3.1","direct":false,"kind":"runtime","optional":false},{"id":25747947385,"package_name":"react-fast-compare","ecosystem":"npm","requirements":"3.2.2","direct":false,"kind":"runtime","optional":false},{"id":25747947386,"package_name":"react-icons","ecosystem":"npm","requirements":"5.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747947387,"package_name":"react-instantsearch","ecosystem":"npm","requirements":"7.13.6","direct":false,"kind":"runtime","optional":false},{"id":25747947473,"package_name":"react-instantsearch-core","ecosystem":"npm","requirements":"7.13.6","direct":false,"kind":"runtime","optional":false},{"id":25747947496,"package_name":"react-instantsearch-dom","ecosystem":"npm","requirements":"6.40.4","direct":false,"kind":"runtime","optional":false},{"id":25747947693,"package_name":"algoliasearch-helper","ecosystem":"npm","requirements":"3.14.0","direct":false,"kind":"runtime","optional":false},{"id":25747947694,"package_name":"react-instantsearch-core","ecosystem":"npm","requirements":"6.40.4","direct":false,"kind":"runtime","optional":false},{"id":25747947695,"package_name":"react-is","ecosystem":"npm","requirements":"16.13.1","direct":false,"kind":"runtime","optional":false},{"id":25747947696,"package_name":"react-refresh","ecosystem":"npm","requirements":"0.14.2","direct":false,"kind":"runtime","optional":false},{"id":25747947697,"package_name":"read-cache","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947698,"package_name":"readdirp","ecosystem":"npm","requirements":"3.6.0","direct":false,"kind":"runtime","optional":false},{"id":25747947699,"package_name":"regenerator-runtime","ecosystem":"npm","requirements":"0.14.1","direct":false,"kind":"runtime","optional":false},{"id":25747947700,"package_name":"regex","ecosystem":"npm","requirements":"5.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947701,"package_name":"regex-recursion","ecosystem":"npm","requirements":"5.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947702,"package_name":"regex-utilities","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747947703,"package_name":"rehype","ecosystem":"npm","requirements":"13.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947704,"package_name":"rehype-parse","ecosystem":"npm","requirements":"9.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947705,"package_name":"rehype-raw","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947706,"package_name":"rehype-stringify","ecosystem":"npm","requirements":"10.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947707,"package_name":"remark-gfm","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947708,"package_name":"remark-parse","ecosystem":"npm","requirements":"11.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947709,"package_name":"remark-rehype","ecosystem":"npm","requirements":"11.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747947710,"package_name":"remark-smartypants","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947711,"package_name":"remark-stringify","ecosystem":"npm","requirements":"11.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947712,"package_name":"resolve","ecosystem":"npm","requirements":"1.22.8","direct":false,"kind":"runtime","optional":false},{"id":25747947713,"package_name":"restore-cursor","ecosystem":"npm","requirements":"5.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947714,"package_name":"retext","ecosystem":"npm","requirements":"9.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947715,"package_name":"retext-latin","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947716,"package_name":"retext-smartypants","ecosystem":"npm","requirements":"6.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947717,"package_name":"retext-stringify","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947718,"package_name":"reusify","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747947719,"package_name":"rollup","ecosystem":"npm","requirements":"4.24.0","direct":false,"kind":"runtime","optional":false},{"id":25747947720,"package_name":"run-parallel","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947721,"package_name":"scheduler","ecosystem":"npm","requirements":"0.23.2","direct":false,"kind":"runtime","optional":false},{"id":25747947722,"package_name":"search-insights","ecosystem":"npm","requirements":"2.17.2","direct":false,"kind":"runtime","optional":false},{"id":25747947965,"package_name":"section-matter","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947966,"package_name":"semver","ecosystem":"npm","requirements":"7.6.3","direct":false,"kind":"runtime","optional":false},{"id":25747947967,"package_name":"sharp","ecosystem":"npm","requirements":"0.33.5","direct":false,"kind":"runtime","optional":false},{"id":25747947968,"package_name":"shebang-command","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947969,"package_name":"shebang-regex","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947970,"package_name":"shiki","ecosystem":"npm","requirements":"1.29.2","direct":false,"kind":"runtime","optional":false},{"id":25747947971,"package_name":"signal-exit","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947972,"package_name":"simple-swizzle","ecosystem":"npm","requirements":"0.2.2","direct":false,"kind":"runtime","optional":false},{"id":25747947973,"package_name":"sisteransi","ecosystem":"npm","requirements":"1.0.5","direct":false,"kind":"runtime","optional":false},{"id":25747947974,"package_name":"source-map-js","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"runtime","optional":false},{"id":25747947975,"package_name":"space-separated-tokens","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947976,"package_name":"sprintf-js","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747947977,"package_name":"stdin-discarder","ecosystem":"npm","requirements":"0.2.2","direct":false,"kind":"runtime","optional":false},{"id":25747947978,"package_name":"string-width","ecosystem":"npm","requirements":"7.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947979,"package_name":"stringify-entities","ecosystem":"npm","requirements":"4.0.4","direct":false,"kind":"runtime","optional":false},{"id":25747947980,"package_name":"strip-ansi","ecosystem":"npm","requirements":"7.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947981,"package_name":"strip-bom","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947982,"package_name":"strip-bom-string","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947983,"package_name":"sucrase","ecosystem":"npm","requirements":"3.35.0","direct":false,"kind":"runtime","optional":false},{"id":25747947984,"package_name":"supports-preserve-symlinks-flag","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747947985,"package_name":"tailwind-merge","ecosystem":"npm","requirements":"2.5.4","direct":false,"kind":"runtime","optional":false},{"id":25747947986,"package_name":"tailwindcss","ecosystem":"npm","requirements":"3.4.14","direct":false,"kind":"runtime","optional":false},{"id":25747947987,"package_name":"glob-parent","ecosystem":"npm","requirements":"6.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747947988,"package_name":"lilconfig","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747947989,"package_name":"thenify","ecosystem":"npm","requirements":"3.3.1","direct":false,"kind":"runtime","optional":false},{"id":25747947990,"package_name":"thenify-all","ecosystem":"npm","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":25747947991,"package_name":"tinyexec","ecosystem":"npm","requirements":"0.3.1","direct":false,"kind":"runtime","optional":false},{"id":25747947992,"package_name":"to-regex-range","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947993,"package_name":"tr46","ecosystem":"npm","requirements":"0.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747947994,"package_name":"trim-lines","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747947995,"package_name":"trough","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747947996,"package_name":"ts-interface-checker","ecosystem":"npm","requirements":"0.1.13","direct":false,"kind":"runtime","optional":false},{"id":25747947997,"package_name":"ts-node","ecosystem":"npm","requirements":"10.9.2","direct":false,"kind":"development","optional":false},{"id":25747947998,"package_name":"arg","ecosystem":"npm","requirements":"4.1.3","direct":false,"kind":"development","optional":false},{"id":25747947999,"package_name":"diff","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"development","optional":false},{"id":25747948000,"package_name":"tsconfck","ecosystem":"npm","requirements":"3.1.4","direct":false,"kind":"runtime","optional":false},{"id":25747948001,"package_name":"tslib","ecosystem":"npm","requirements":"2.8.0","direct":false,"kind":"runtime","optional":false},{"id":25747948002,"package_name":"type-fest","ecosystem":"npm","requirements":"4.26.1","direct":false,"kind":"runtime","optional":false},{"id":25747948003,"package_name":"typescript","ecosystem":"npm","requirements":"5.6.3","direct":false,"kind":"runtime","optional":false},{"id":25747948004,"package_name":"ultrahtml","ecosystem":"npm","requirements":"1.5.3","direct":false,"kind":"runtime","optional":false},{"id":25747948005,"package_name":"undici-types","ecosystem":"npm","requirements":"6.19.8","direct":false,"kind":"runtime","optional":false},{"id":25747948006,"package_name":"unified","ecosystem":"npm","requirements":"11.0.5","direct":false,"kind":"runtime","optional":false},{"id":25747948007,"package_name":"unist-util-find-after","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948008,"package_name":"unist-util-is","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948009,"package_name":"unist-util-modify-children","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948010,"package_name":"unist-util-position","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948011,"package_name":"unist-util-remove-position","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948012,"package_name":"unist-util-stringify-position","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948013,"package_name":"unist-util-visit","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948014,"package_name":"unist-util-visit-children","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948015,"package_name":"unist-util-visit-parents","ecosystem":"npm","requirements":"6.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747948016,"package_name":"update-browserslist-db","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747948017,"package_name":"use-sync-external-store","ecosystem":"npm","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":25747948018,"package_name":"util-deprecate","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747948019,"package_name":"v8-compile-cache-lib","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"development","optional":false},{"id":25747948020,"package_name":"vfile","ecosystem":"npm","requirements":"6.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747948021,"package_name":"vfile-location","ecosystem":"npm","requirements":"5.0.3","direct":false,"kind":"runtime","optional":false},{"id":25747948022,"package_name":"vfile-message","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747948023,"package_name":"vite","ecosystem":"npm","requirements":"5.4.18","direct":false,"kind":"runtime","optional":false},{"id":25747948024,"package_name":"vitefu","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"runtime","optional":false},{"id":25747948025,"package_name":"vscode-languageserver-textdocument","ecosystem":"npm","requirements":"1.0.12","direct":false,"kind":"development","optional":false},{"id":25747948026,"package_name":"vscode-uri","ecosystem":"npm","requirements":"3.0.8","direct":false,"kind":"development","optional":false},{"id":25747948027,"package_name":"web-namespaces","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747948028,"package_name":"web-streams-polyfill","ecosystem":"npm","requirements":"3.3.3","direct":false,"kind":"runtime","optional":false},{"id":25747948029,"package_name":"webidl-conversions","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":25747948030,"package_name":"whatwg-url","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948031,"package_name":"which","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":25747948032,"package_name":"which-pm","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948033,"package_name":"which-pm-runs","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747948034,"package_name":"widest-line","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948035,"package_name":"wrap-ansi","ecosystem":"npm","requirements":"9.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948036,"package_name":"wrap-ansi","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"runtime","optional":false},{"id":25747948037,"package_name":"ansi-styles","ecosystem":"npm","requirements":"4.3.0","direct":false,"kind":"runtime","optional":false},{"id":25747948038,"package_name":"xxhash-wasm","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25747948039,"package_name":"yallist","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747948040,"package_name":"yaml","ecosystem":"npm","requirements":"2.6.0","direct":false,"kind":"runtime","optional":false},{"id":25747948041,"package_name":"yargs-parser","ecosystem":"npm","requirements":"21.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747948042,"package_name":"yn","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"development","optional":false},{"id":25747948043,"package_name":"yocto-queue","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25747948044,"package_name":"zod","ecosystem":"npm","requirements":"3.23.8","direct":false,"kind":"runtime","optional":false},{"id":25747948045,"package_name":"zod-to-json-schema","ecosystem":"npm","requirements":"3.23.5","direct":false,"kind":"runtime","optional":false},{"id":25747948046,"package_name":"zod-to-ts","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":25747948047,"package_name":"zwitch","ecosystem":"npm","requirements":"2.0.4","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"npm","filepath":"package.json","sha":null,"kind":"manifest","created_at":"2025-11-17T06:02:33.176Z","updated_at":"2025-11-17T06:02:33.176Z","repository_link":"https://github.com/Green-Software-Foundation/awesome-green-software/blob/main/package.json","dependencies":[{"id":25747948092,"package_name":"@astrojs/react","ecosystem":"npm","requirements":"^3.6.2","direct":true,"kind":"runtime","optional":false},{"id":25747948093,"package_name":"@astrojs/tailwind","ecosystem":"npm","requirements":"^5.1.2","direct":true,"kind":"runtime","optional":false},{"id":25747948094,"package_name":"@notionhq/client","ecosystem":"npm","requirements":"^2.2.5","direct":true,"kind":"runtime","optional":false},{"id":25747948095,"package_name":"@radix-ui/react-accordion","ecosystem":"npm","requirements":"^1.1.2","direct":true,"kind":"runtime","optional":false},{"id":25747948096,"package_name":"algoliasearch","ecosystem":"npm","requirements":"^4.14.2","direct":true,"kind":"runtime","optional":false},{"id":25747948097,"package_name":"astro","ecosystem":"npm","requirements":"^4.16.0","direct":true,"kind":"runtime","optional":false},{"id":25747948098,"package_name":"clsx","ecosystem":"npm","requirements":"^2.1.0","direct":true,"kind":"runtime","optional":false},{"id":25747948099,"package_name":"date-fns","ecosystem":"npm","requirements":"^4.1.0","direct":true,"kind":"runtime","optional":false},{"id":25747948100,"package_name":"dotenv","ecosystem":"npm","requirements":"^16.3.1","direct":true,"kind":"runtime","optional":false},{"id":25747948101,"package_name":"lucide-react","ecosystem":"npm","requirements":"^0.344.0","direct":true,"kind":"runtime","optional":false},{"id":25747948102,"package_name":"moment","ecosystem":"npm","requirements":"^2.30.1","direct":true,"kind":"runtime","optional":false},{"id":25747948103,"package_name":"node-fetch","ecosystem":"npm","requirements":"^3.3.1","direct":true,"kind":"runtime","optional":false},{"id":25747948104,"package_name":"react","ecosystem":"npm","requirements":"^18.3.1","direct":true,"kind":"runtime","optional":false},{"id":25747948105,"package_name":"react-dom","ecosystem":"npm","requirements":"^18.2.0","direct":true,"kind":"runtime","optional":false},{"id":25747948106,"package_name":"react-icons","ecosystem":"npm","requirements":"^5.3.0","direct":true,"kind":"runtime","optional":false},{"id":25747948107,"package_name":"react-instantsearch","ecosystem":"npm","requirements":"^7.0.0","direct":true,"kind":"runtime","optional":false},{"id":25747948108,"package_name":"react-instantsearch-dom","ecosystem":"npm","requirements":"^6.40.4","direct":true,"kind":"runtime","optional":false},{"id":25747948109,"package_name":"tailwind-merge","ecosystem":"npm","requirements":"^2.5.4","direct":true,"kind":"runtime","optional":false},{"id":25747948110,"package_name":"@astrojs/ts-plugin","ecosystem":"npm","requirements":"^1.10.2","direct":true,"kind":"development","optional":false},{"id":25747948111,"package_name":"autoprefixer","ecosystem":"npm","requirements":"^10.4.20","direct":true,"kind":"development","optional":false},{"id":25747948112,"package_name":"postcss","ecosystem":"npm","requirements":"^8.4.47","direct":true,"kind":"development","optional":false},{"id":25747948113,"package_name":"tailwindcss","ecosystem":"npm","requirements":"^3.4.14","direct":true,"kind":"development","optional":false},{"id":25747948114,"package_name":"ts-node","ecosystem":"npm","requirements":"^10.9.2","direct":true,"kind":"development","optional":false},{"id":25747948115,"package_name":"typescript","ecosystem":"npm","requirements":"^5.6.3","direct":true,"kind":"development","optional":false}]}],"score":10.668164384234995,"created_at":"2023-09-11T11:54:37.243Z","updated_at":"2026-08-13T19:00:27.330Z","avatar_url":"https://github.com/Green-Software-Foundation.png","language":"TypeScript","category":"Sustainable Development","sub_category":"Curated Lists","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Green Software [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)\n\n\u003e Research, tools, code, libraries, and training for building applications that emit less carbon into our atmosphere.\n\nAn [awesome list](https://awesome.re) created and managed by the [Open Source Working Group](https://directory.greensoftware.foundation/working-groups/software-wg/) in the [Green Software Foundation](https://greensoftware.foundation).\n\nEvery entry is a link with a one-line summary: what it does, and the number behind it where one exists. Tooling comes first, grouped by what it measures — AI workloads, a cloud provider, source code, an operating system, a website. Then the organizations doing the work, the courses and books to learn from, and the research the whole field rests on.\n\n# Disclaimer\n\nThis list is created for informational purposes only and any links do not constitute an endorsement, recommendation, or favoring by the Green Software Foundation, its member organizations, or contributors to the list.\n\n**THESE MATERIALS ARE PROVIDED \"AS IS.\"** The parties expressly disclaim any warranties (express, implied, or otherwise), including implied warranties of merchantability, non-infringement, fitness for a particular purpose, or title, related to the materials. The entire risk of implementing or otherwise using the materials is assumed by the implementer and user. **IN NO EVENT WILL THE PARTIES BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THIS DELIVERABLE OR ITS GOVERNING AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR NOT THE OTHER MEMBER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.**\n\n**Topics:** [AI](#ai--carbon) · [AWS](#cloud--aws) · [Azure](#cloud--azure) · [Google Cloud](#cloud--google) · [Multicloud](#cloud--multicloud) · [Source code](#code-based) · [Carbon-aware scheduling](#general-purpose--emissions) · [Energy monitoring](#general-purpose--energy) · [Linux](#os--linux) · [Mobile](#os--android) · [Websites](#web) · [Windows](#os--windows) · [Organizations](#organizations) · [Courses](#courses) · [Research](#research)\n\n# ![Awesome](https://github.com/Green-Software-Foundation/awesome-green-software/blob/main/src/assets/fonts/GSF%20AGS%20Banner.png)\n\n## Contents\n\n- [Tooling](#tooling)\n- [Organizations](#organizations)\n- [Courses](#courses)\n- [Articles](#articles)\n- [Books](#books)\n- [Research](#research)\n- [Related Lists](#related-lists)\n- [About the Directory](#about-the-directory)\n- [Contributing](#contributing)\n\n## Legend\n\nEach entry ends with a kind badge: ![tool](https://img.shields.io/badge/tool-blue?style=flat-square) for software you can run, and a gray badge for ![paper](https://img.shields.io/badge/paper-555?style=flat-square), ![thesis](https://img.shields.io/badge/thesis-555?style=flat-square), ![report](https://img.shields.io/badge/report-555?style=flat-square), ![guide](https://img.shields.io/badge/guide-555?style=flat-square), ![book](https://img.shields.io/badge/book-555?style=flat-square), ![course](https://img.shields.io/badge/course-555?style=flat-square), ![video](https://img.shields.io/badge/video-555?style=flat-square), ![list](https://img.shields.io/badge/list-555?style=flat-square), ![org](https://img.shields.io/badge/org-555?style=flat-square) for organizations, and ![co](https://img.shields.io/badge/co-555?style=flat-square) for commercial products and vendor pages. Plain entries are articles. Entries marked **unmaintained** point at archived or abandoned projects kept for reference.\n\n## Tooling\n\n### AI — Carbon\n\n- [1ClickImpact](https://1clickimpact.com) - A commercial API and platform for offsetting carbon emissions from AI workloads, with real-time tracking and Zapier integration for automated carbon accounting. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [AXIOMAX ESG Carbon Shield](https://github.com/axiomaxllc/esg-carbon-shield) - An MIT-licensed SDK for Python, Node.js, and Bash that signs AI inference calls with ed25519 and SHA-256 hash chains to produce auditable carbon attestations for CSRD and SEC reporting; calibration coefficients and keys remain server-side, and the project advertises a pending USPTO patent. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [ebb-ai](https://www.ebb-ai.com) - An Apache-2.0 MCP server exposing nine tools that defer non-urgent LLM jobs to the cleanest grid hour within a deadline across 31 regions, logging per-task carbon receipts to SQLite. ([source](https://github.com/Vitalini/ebb-ai)) ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Experiment Impact Tracker](https://github.com/Breakend/experiment-impact-tracker) - A Python library that calculates the carbon cost of a machine learning job; **unmaintained**, archived October 2025. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### AI — Energy\n\n- [carbontracker](https://github.com/saintslab/carbontracker) - Tracks and predicts the energy consumption and carbon footprint of training deep learning models, as described in [Anthony et al. (2020)](https://arxiv.org/abs/2007.03051). ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [FedZero](https://github.com/dos-group/fedzero) - A federated learning system for zero-carbon distributed AI training, successor to Lowcarb, which won the GSF CarbonHack 2022. ([paper](https://arxiv.org/pdf/2305.15092)) ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [ML.ENERGY Leaderboard](https://ml.energy/leaderboard) - A public leaderboard from the ML.ENERGY Initiative showing time and energy consumption of generative AI models on GPU inference, covering LLMs, multimodal LLMs, and diffusion models. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Zeus](https://ml.energy/zeus) - An Apache-2.0 library for measuring and optimizing deep learning energy use across NVIDIA and AMD GPUs, Apple Silicon, Jetson, and CPU/DRAM, with power-limit and batch-size optimizers. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### Cloud — AWS\n\n- [Customer Carbon Footprint Tool](https://aws.amazon.com/blogs/aws/new-customer-carbon-footprint-tool/) - A free AWS Billing console dashboard reporting Scope 1 and Scope 2 emissions in metric tons of CO2e by month, service, and geography, with a three-month data lag. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [Green Cost Explorer](https://github.com/thegreenwebfoundation/green-cost-explorer) - A climate-related spend analysis for AWS from the Green Web Foundation; **unmaintained**, archived September 2023. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### Cloud — Azure\n\n- [Azure Carbon Optimization](https://learn.microsoft.com/azure/carbon-optimization/) - Resource-level emissions detail plus recommendations to reduce them, available from within the Azure Portal. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [Carbon Service REST API](https://learn.microsoft.com/rest/api/carbon/carbon-service) - Programmatic export of the data behind the Emissions Impact Dashboard and Azure Carbon Optimization. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [Well-Architected Framework for Sustainable Workloads](https://learn.microsoft.com/azure/well-architected/sustainability/sustainability-get-started) - Microsoft's guidance on designing an Azure workload following Green Software Foundation best practices. ![guide](https://img.shields.io/badge/guide-555?style=flat-square)\n\n### Cloud — Google\n\n- [Carbon Footprint](https://cloud.google.com/carbon-footprint) - A free console dashboard reporting Scope 1, 2, and 3 emissions per project, service, region, and month, with dual location- and market-based Scope 2 accounting and BigQuery export. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [Cloud Jewels](https://github.com/etsy/cloud-jewels) - An MIT-licensed set of energy-estimation coefficients and scripts converting GCP billing data into trailing 30-day kWh estimates for CPU, GPU, memory, storage, and network; **unmaintained** since 2020. ([blog post](https://www.etsy.com/codeascraft/cloud-jewels-estimating-kwh-in-the-cloud)) ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### Cloud — OVHcloud\n\n- [OVHcloud Carbon Calculator](https://www.ovhcloud.com/sites/default/files/external_files/ovh-calculatrice-onepager.pdf) - A customer-facing calculator estimating monthly and yearly greenhouse gas emissions from manufacturing, use, and other indirect phases, covering over 300,000 bare metal servers outside the USA. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n\n### Cloud — Multicloud\n\n- [Carbonifer](https://github.com/carboniferio/carbonifer) - A command line tool to estimate and control the carbon emissions of cloud infrastructure before it is provisioned. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Cloud Carbon Footprint](https://www.cloudcarbonfootprint.org/) - An open-source cloud energy and carbon emissions measurement tool spanning AWS, Azure, and GCP. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Green Metrics Tool](https://www.green-coding.io/projects/green-metrics-tool/) - A free open-source tool to measure the energy and CO2 consumption of a software architecture. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [kube-green](https://github.com/kube-green/kube-green) - An open-source Kubernetes addon that automatically shuts down selected resources when you do not need them. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### Code-Based\n\n- [1ClickImpact Sustainability API](https://docs.1clickimpact.com/) - A RESTful API for integrating environmental actions such as tree planting, carbon capture, and ocean cleanup into software and workflows. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [carbon-text](https://github.com/ShayokhShorfuddin/carbon-text) - A syntax highlighter and snippets extension for [carbon.txt](https://carbontxt.org/) files. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [CarbonLint](https://github.com/nishal21/CarbonLint) - An MIT-licensed Tauri/Rust desktop app and npm CLI that tracks CPU, memory, disk, network, and GPU use, converts it to CO2 via regional grid intensity, and scores projects 0-100. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [CAST Highlight](https://learn.castsoftware.com/green-software/) - Automated source code analysis that identifies green deficiencies and tracks improvement across an application portfolio. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [codecarbon.io](https://codecarbon.io/) - A Python library that tracks and helps reduce the CO2 emissions of your computing. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Creedengo (formerly ecoCode)](https://github.com/green-code-initiative/creedengo-rules-specifications) - SonarQube plugins for PHP, Python, Java, JavaScript, and more, providing static analyzers that highlight code structures with a negative ecological impact. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [energy-consumption-measuring-toolkit](https://github.com/Accenture/energy-consumption-measuring-toolkit) - Accenture's RAPL-based toolkit for measuring the energy consumption of Python applications. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Green CodeQL](https://github.com/green-code-initiative/green-codeql-queries) - A GPL-3.0 collection of custom CodeQL queries flagging energy-related sustainability issues across six packs covering Java/Kotlin, Python, C/C++, JavaScript, C#, and GitHub Actions. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [JoularJX](https://github.com/joular/joularjx) - Java software power monitoring at the source code level, in real time. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Kernel Tuner](https://github.com/KernelTuner/kernel_tuner) - An auto-tuner capable of [optimizing GPU code for energy efficiency](https://github.com/KernelTuner/kernel_tuner/blob/master/examples/cuda/going_green_performance_model.py). ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [oaklean.io](https://oaklean.io/) - A VS Code extension and test-framework integration that visualizes JavaScript and TypeScript energy consumption, identifies energy-intensive code sections, and suggests alternatives. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Tracarbon](https://github.com/fvaleye/tracarbon) - Tracks a device's energy consumption and calculates carbon emissions using your location. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### General Purpose — Emissions\n\n- [Carbon AppInsights](https://github.com/cloudyspells/carbon-appinsights) - An Azure Functions solution logging Electricity Maps emissions data for Azure regions into Azure Monitor for alerting triggers and automated actions. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Carbon Aware Computing — Tools and Free Forecast Data](https://github.com/bluehands/Carbon-Aware-Computing) - A NuGet package, PowerShell cmdlets, and a live SDK instance, plus an open carbon forecast for Europe in the Carbon Aware SDK's JSON format. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Carbon Aware Computing Hangfire Extension](https://github.com/bluehands/Hangfire.Community.CarbonAwareExecution) - A Hangfire extension that schedules tasks into the window of minimal grid carbon intensity, based on emission forecasts. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Carbon Aware SDK](https://github.com/Green-Software-Foundation/carbon-aware-sdk) - A Web API and command line for unified forecast and historical power grid emissions data by location and time, to help build carbon-aware software. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [GreenScheduled](https://github.com/carbonintensityio/green-scheduler) - An Apache-2.0 Java library adding a `@GreenScheduled` annotation for Spring Boot and Quarkus that shifts jobs to the lowest-carbon hour in a window using the carbonintensity.io API. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [PSElectricityMaps](https://github.com/cloudyspells/PSElectricityMaps) - A PowerShell module for retrieving current power grid carbon emissions data with a free Electricity Maps or CO2signal account. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [PSWattTime](https://github.com/cloudyspells/PSWattTime) - A PowerShell module for retrieving current power grid carbon emissions data with a free WattTime.org account. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### General Purpose — Energy\n\n- [CEEMS](https://ceems-dev.github.io/ceems/) - The Compute Energy and Emissions Monitoring Stack: energy and equivalent emissions alongside performance, I/O, and network metrics for SLURM, OpenStack, and Kubernetes workloads. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [CO2Scope](https://www.easyvirt.com/en/co2scope-reduce-the-carbon-footprint-of-it-services/) - A commercial solution monitoring the real-time CO2 emissions of IT services, virtual machines, and servers. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [Eco-CI](https://github.com/green-coding-solutions/eco-ci-energy-estimation) - A plugin for GitHub Actions and GitLab that measures CI runs and estimates their energy use. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Energy Rebate Calculator](https://energyrebatecalculator.com/) - A consumer-facing US home energy rebate finder covering HOMES and HEAR programs, heat pumps, and insulation tax credits. *Flagged for review: unrelated to green software engineering.* ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [Kepler](https://github.com/sustainable-computing-io/kepler) - The Kubernetes-based Efficient Power Level Exporter uses eBPF to probe energy-related system stats and exports them as Prometheus metrics. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [PowerJoular](https://github.com/joular/powerjoular) - Monitors the power consumption of software and hardware components in real time. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [scaphandre](https://github.com/hubblo-org/scaphandre) - Power measurement for bare metal hosts, Prometheus, and workloads inside Docker containers. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Vessim](https://vessim.readthedocs.io/en/latest/) - A co-simulation testbed for carbon-aware applications, connecting renewable generation and energy storage simulators to real software and hardware; published at HotCarbon'24. ([source](https://github.com/dos-group/vessim)) ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### General Purpose — Extensions\n\n- [Globemallow.io](https://globemallow.io/) - A browser extension producing sustainable web development and design best-practice reports, with an analytics and ad blocker that reduces page-load energy. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [GreenIT-Analysis](https://github.com/cnumr/GreenIT-Analysis) - A DevTools extension measuring a website's ecoIndex and verifying the web eco-design best practices defined by the Collectif Numérique Responsable. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [WeDeex](https://chromewebstore.google.com/detail/wedeex/ojlagggckhpedblhemgjhecbggnibale) - A Chrome extension estimating the CO2 emissions of web browsing locally from transferred data volume and ranking the five most data-heavy sites; **unmaintained**, last updated 2021. Also on [Edge](https://microsoftedge.microsoft.com/addons/detail/wedeex/jbocoolinibenmobjadejejdbanalfee). ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### OS — Android\n\n- [PowDroid](https://github.com/powdroid-project/powdroid) - A GPL-3.0 off-device Android energy profiler, written in Go and Python, deriving energy metrics from a device trace via CLI or GUI. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### OS — iOS\n\n- [creedengo-ios](https://github.com/green-code-initiative/creedengo-ios) - A SonarQube plugin highlighting code structures in iOS projects that may have a negative ecological impact. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### OS — Linux\n\n- [FreeIPMI](https://www.gnu.org/software/freeipmi/) - Reads the power consumption of a bare metal machine through DCMI, the IPMI extension. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [ipmitool](https://github.com/ipmitool/ipmitool) - Reads the power consumption of a bare metal machine through DCMI, the IPMI extension. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [PowerAPI](https://powerapi.org) - A Linux software-defined power meter estimating process-scale power consumption in real time. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [PowerTOP](https://github.com/fenrus75/powertop) - A Linux tool to diagnose issues with power consumption and power management. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [turbostress](https://github.com/teads/turbostress) - Generates load on a machine and outputs the computer's power metrics for that load. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### OS — Windows\n\n- [powercfg](https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/powercfg-command-line-options) - A built-in Windows command line tool whose `/energy`, `/batteryreport`, and `/sleepstudy` switches produce HTML or XML reports on energy-efficiency problems, battery wear, and modern-standby quality. ([blog post](https://devblogs.microsoft.com/sustainable-software/measuring-your-application-power-and-carbon-impact-part-1/)) ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [WedeexApp](https://github.com/Wedeex-DevTeam/WedeexApp) - An MIT-licensed UWP sample app in C# demonstrating the Wedeex API by showing real-time French grid CO2 intensity and Microsoft Surface power draw. ([blog post](https://devblogs.microsoft.com/sustainable-software/we-need-a-yuka-for-electricity-to-ease-the-energy-transition/)) ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### Web\n\n- [Beacon](https://digitalbeacon.co/) - Calculates the environmental impact of a single web page. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Carbon Footprint of Sending Data](https://observablehq.com/@mrchrisadams/carbon-footprint-of-sending-data-around) - An online calculator estimating carbon emissions from network traffic, based on The Shift Project's Lean ICT report. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Carbonara](https://github.com/digital4better/carbonara/) - A custom element from Digital4Better that displays the carbon footprint of web navigation. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [CO2.js](https://github.com/thegreenwebfoundation/co2.js/) - An npm module for accessing the Green Web API and estimating the carbon emissions of digital services. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [ec0lint](https://github.com/ec0lint/ec0lint) - A static code analysis tool providing hints for reducing the carbon footprint of websites. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [EcoGrader.com](https://ecograder.com/) - An online website carbon estimator. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [ecoIndex](https://www.ecoindex.fr/) - Estimates the carbon footprint of public websites and pages; interface in French. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Fruggr](https://www.fruggr.io) - Evaluates the environmental and social efficiency of web and mobile applications. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [GreenFrame.io](https://greenframe.io) - Calculates the carbon footprint of a website from a full user scenario rather than a single page load. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Kastor.green](https://kastor.green/) - Evaluates the ecodesign compliance of websites and web applications against the GR491 standard. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [webNRG](https://website-tester.green-coding.io) - A hosted website tester from Green Coding Solutions measuring browser rendering energy alongside network-transfer emissions, reporting CO2 for a typical 10,000 monthly visitors. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n- [Website Carbon Calculator](https://www.websitecarbon.com/) - An online website carbon estimator giving a per-pageview figure and a letter grade. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n## Organizations\n\n- [Climate Action Tech](https://climateaction.tech) - A Slack-based community of practice with over 10,000 tech workers driving climate action through green software, sustainable product design, and low-carbon infrastructure. ![org](https://img.shields.io/badge/org-555?style=flat-square)\n- [Climate Change AI](https://www.climatechange.ai/) - A global nonprofit catalyzing work at the intersection of machine learning and climate change through workshops at NeurIPS and ICLR, summer schools, and innovation grants. ![org](https://img.shields.io/badge/org-555?style=flat-square)\n- [Digital Emissions](https://www.digitalemissions.org) - A US 501(c)(3) nonprofit focused on responsible, green, and ethical AI, publishing educational resources, digital carbon footprint simulators, and a sustainability learning platform. ![org](https://img.shields.io/badge/org-555?style=flat-square)\n- [Green Code Initiative](https://green-code-initiative.org) - A France-based open-source community of 36 repositories maintaining Creedengo, a set of SonarQube plugins flagging eco-design rule violations in Java, Python, and PHP. ([GitHub](https://github.com/green-code-initiative)) ![org](https://img.shields.io/badge/org-555?style=flat-square)\n- [Green Software Design](https://www.greensoftwaredesign.com/en/) - A German association, Bundesverband Green Software e.V., uniting companies and research institutes, offering the Green Software Expertyzer assessment tool and a Green Software Design certification label. ![org](https://img.shields.io/badge/org-555?style=flat-square)\n- [Green Software Foundation](https://greensoftware.foundation) - A Linux Foundation-affiliated nonprofit of over 100 member organizations publishing green software standards, including the ISO-certified Software Carbon Intensity specification, plus free practitioner training. ![org](https://img.shields.io/badge/org-555?style=flat-square)\n- [Roll the Cloud](https://rtc.eco/) - A US 501(c)(3) nonprofit building low-carbon software tools, plus community gardens and awareness apparel about technology's environmental footprint. ![org](https://img.shields.io/badge/org-555?style=flat-square)\n- [SustainableIT.org](https://www.sustainableIT.org) - A 501(c)(6) trade association of 70+ member organizations led by technology executives, publishing IT sustainability standards covering 240 ESG topics and metrics. ![org](https://img.shields.io/badge/org-555?style=flat-square)\n- [Team for the Planet](https://team-planet.com/) - A French nonprofit with 133,000 shareholders that has raised €41 million to create and fund companies deploying climate innovations, with 14 deployed so far. ![org](https://img.shields.io/badge/org-555?style=flat-square)\n- [The Green Grid](https://www.thegreengrid.org/) - An ITI-affiliated industry association founded in 2007 that develops data centre efficiency metrics such as Water Usage Impact and Data Center Resource Effectiveness. ![org](https://img.shields.io/badge/org-555?style=flat-square)\n- [The Green Web Foundation](https://www.thegreenwebfoundation.org/) - An independent nonprofit in Amsterdam and Berlin working toward a fossil-free internet by 2030, maintaining a green hosting dataset, CO2.js, and carbon.txt. ![org](https://img.shields.io/badge/org-555?style=flat-square)\n- [The Shift Project](https://theshiftproject.org/en/publications/lean-ict/) - A French think tank whose Lean ICT project produced the widely cited report on digital sobriety and the energy footprint of information technology. ![org](https://img.shields.io/badge/org-555?style=flat-square)\n\n## Courses\n\n- [Curso de Desarrollo de software medioambientalmente sostenible](https://www.adrformacion.com/cursos/greensoft/greensoft.html) - A paid 20-hour online Spanish-language course from ADR Formación covering data-centre footprints, green coding, carbon measurement, and nine practical exercises. ![course](https://img.shields.io/badge/course-555?style=flat-square)\n- [Harvard ENVR S-186: Enabling a Sustainable Digital Transformation](https://coursebrowser.dce.harvard.edu/course/enabling-a-sustainable-digital-transformation/) - A course taught online, covering digital carbon footprints, sustainable digital transformation, and digital justice. ![course](https://img.shields.io/badge/course-555?style=flat-square)\n- [MOOC Numérique Responsable](https://gridboy.github.io/MOOC-Numerique-Responsable/) - A free, CC0-licensed catalogue aggregating French-language courses on responsible digital practices, green IT, and responsible AI. ![course](https://img.shields.io/badge/course-555?style=flat-square)\n- [Sustainable Software Engineering by openHPI](https://open.hpi.de/courses/sustainablesoftware2022) - A free two-week self-paced MOOC from the Hasso Plattner Institute on resource-efficient software development, aimed at developers and architects. ![course](https://img.shields.io/badge/course-555?style=flat-square)\n- [The Principles of Sustainable Software Engineering](https://learn.microsoft.com/training/modules/sustainable-software-engineering-overview/) - Microsoft's free beginner-level Learn module covering the six principles of sustainable software engineering across ten self-paced units with an assessment. ![course](https://img.shields.io/badge/course-555?style=flat-square)\n\n## Articles\n\n- [Assessing the suitability of the Greenhouse Gas Protocol for calculation of emissions from public cloud computing workloads](https://link.springer.com/article/10.1186/s13677-020-00185-8) - Concludes cloud customers cannot apply the GHG Protocol's ICT guidance because AWS, Azure, and GCP withhold PUE, server counts, and utilisation data. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Beyond Single-Dimensional Metrics for Digital Sustainability](https://branch.climateaction.tech/issues/issue-3/beyond-single-dimensional-metrics-for-digital-sustainability/) - Argues single metrics invite Goodhart's-law gaming, showing how halving server draw from 50W to 25W paradoxically worsened PUE from 2.0 to 3.0.\n- [Complete Guide to Carbon Offsetting: APIs and Shopify App](https://1clickimpact.com/blog/carbon-offsetting-apis-shopify-app-guide) - A vendor guide pitching 1ClickImpact's own offsetting API and Shopify app, quoting $0.40 per tree or pound of carbon captured. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [Estimating the marginal carbon intensity of electricity with machine learning](https://www.electricitymaps.com/resources/publications/estimating-the-marginal-carbon-intensity-of-electricity-with-machine-learning) - Electricity Maps trained on 1,000+ grid variables and put Eastern Denmark's marginal intensity near 700 gCO2eq/kWh, though it has since withdrawn marginal signals as too limited.\n- [How to incorporate carbon-free energy for Google Cloud regions](https://cloud.google.com/sustainability/region-carbon) - Google's per-region table of hourly carbon-free-energy share and grid intensity, from Stockholm's 100% CFE and 3 gCO2eq/kWh down to 1% in Hong Kong and Doha. ![co](https://img.shields.io/badge/co-555?style=flat-square)\n- [How we're making Dropbox data centers 100% carbon neutral](https://dropbox.tech/infrastructure/making-dropbox-data-centers-carbon-neutral) - Dropbox's engineering blog details a 15% data-centre footprint cut in 18 months via PUE 17% below industry average and HDD standby saving 50% on storage hosts.\n- [Joule Wars: the AI race for useful intelligence per joule](https://piszczek.pl/joule-wars) - Argues electricity, not model architecture, is AI's binding constraint, so competition shifts to useful intelligence per joule, hardest in robots limited to 1-3 kWh batteries.\n- [Power consumption of JPEG, WebP, and AVIF](https://fershad.com/writing/power-consumption-jpeg-webp-and-avif) - Firefox power-profiler tests on Apple Silicon found WebP cheapest at roughly 100-106 µWh per page load while AVIF cost 133-137 µWh, on admittedly small samples.\n- [RAPL in Action: Experiences in Using RAPL for Power Measurements](https://www.researchgate.net/publication/322308215_RAPL_in_Action_Experiences_in_Using_RAPL_for_Power_Measurements) - Validates Intel's RAPL counters against wall power at 0.99 correlation on Haswell, with 1.7% MAPE for full-system power modelling and under 1% overhead. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Software Carbon Intensity (SCI): Crafting A Standard](https://greensoftware.foundation/articles/software-carbon-intensity-crafting-a-standard) - Explains why the SCI metric deliberately excludes market-based offsets and infrastructure measures, scoring consequentially to reward efficiency rather than procurement.\n- [The Staggering Ecological Impacts of Computation and the Cloud](https://thereader.mitpress.mit.edu/the-staggering-ecological-impacts-of-computation-and-the-cloud/) - An MIT Press essay quantifying the cloud's materiality: 200 TWh yearly, 0.3% of global emissions, and seven million gallons of water daily at the NSA's Utah facility.\n- [What are the greenest programming languages?](https://medium.com/codex/what-are-the-greenest-programming-languages-e738774b1957) - Relays the 2017 Portuguese study benchmarking energy use across 27 popular programming languages, arguing its rankings still held after a 2021 update.\n- [What Do We Need To Build More Sustainable AI Systems?](https://greensoftware.foundation/articles/what-do-we-need-to-build-more-sustainable-ai-systems) - Prescribes four fixes: better grid data, measurement standards with independent certification, workflow-native tooling, and carbon accounting taught in curricula.\n- [Why Should Sustainability Be A First-Class Consideration For AI Systems?](https://greensoftware.foundation/articles/why-should-sustainability-be-a-first-class-consideration-for-ai-systems) - Notes MLCommons submissions reporting energy consumption fell by about 50%, and ties large-model scaling to exploitative data collection and concentration of compute power.\n\n## Books\n\n- [101 Green Software: A Practical Guide for Developers \u0026 Architects](https://www.amazon.com/dp/B0BPPF82H9) - Ioannis Kolaxis's short self-published guide with practical guidelines for reducing the resources used by data centres, networks, and end-user devices. ![book](https://img.shields.io/badge/book-555?style=flat-square)\n- [Building Green Software: A Sustainable Approach to Software Development and Operations](https://www.oreilly.com/library/view/building-green-software/9781098150617/) - An O'Reilly book by Anne Currie, Sarah Hsu, and Sara Bergman on carbon awareness, code and hardware efficiency, and operating greener cloud systems. ![book](https://img.shields.io/badge/book-555?style=flat-square)\n- [Designing for Sustainability: A Guide to Building Greener Digital Products and Services](https://www.amazon.co.uk/dp/1491935774) - Tim Frick's O'Reilly book presenting a sustainability framework for digital products spanning content strategy, performance, user experience, and green hosting. ![book](https://img.shields.io/badge/book-555?style=flat-square)\n- [Empowering Green Initiatives with IT: A Strategy and Implementation Guide](https://www.amazon.co.uk/dp/0470587520) - Carl H. Speshock's Wiley guide to aligning IT departments and tooling with corporate green initiatives, sustainability reporting, and environmental management systems. ![book](https://img.shields.io/badge/book-555?style=flat-square)\n- [Green IT For Dummies](https://www.amazon.co.uk/dp/0470386886) - Carol Baroudi and co-authors' Wiley introduction to energy audits, data-centre efficiency, equipment lifespan, and organisation-wide green IT programmes. ![book](https://img.shields.io/badge/book-555?style=flat-square)\n- [Green Software Essentials: A Q\u0026A Guide for Practitioners](https://www.amazon.com/dp/B0CNPZ3465) - A question-and-answer primer by Sanjay Podder and Navveen Balani introducing green software concepts and practices for engineering practitioners. ![book](https://img.shields.io/badge/book-555?style=flat-square)\n- [GreenOps \u0026 GreenCoding: Practical Approaches for Sustainable Software](https://greenops.fabiocicerchia.it/) - A free early-release ebook by Fabio Cicerchia covering energy-efficient code, GreenOps for cloud and DevOps, and lifecycle thinking across thirteen chapters. ![book](https://img.shields.io/badge/book-555?style=flat-square)\n- [Sustainable IT Playbook for Technology Leaders](https://www.amazon.co.uk/dp/1803230347) - Niklas Sundberg's Packt playbook on sustainable IT strategy, carbon accounting, data-centre efficiency, and circular economy, with corporate case studies. ![book](https://img.shields.io/badge/book-555?style=flat-square)\n- [Sustainable Web Design](https://www.goodreads.com/en/book/show/56861271-sustainable-web-design) - Tom Greenwood's A Book Apart title on measuring and reducing website carbon emissions through design, code, and hosting choices. ![book](https://img.shields.io/badge/book-555?style=flat-square)\n- [The Green IT Guide](https://www.oreilly.com/library/view/the-green-it/9781484280577/) - Mike Halsey's Apress guide to ten steps toward carbon-neutral IT infrastructure, covering power management, cloud provider policies, and e-waste reduction. ![book](https://img.shields.io/badge/book-555?style=flat-square)\n\n## Research\n\n### Artificial Intelligence\n\n- [Carbon-Neutralized Task Scheduling for Green Computing Networks](https://arxiv.org/abs/2209.02198) - A carbon-intensity-aware scheduling policy built on Lyapunov drift-plus-penalty optimization cut cumulative emissions from AI training tasks by 54% versus queue-length-based scheduling. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Chasing Low-Carbon Electricity for Practical and Sustainable DNN Training](https://www.climatechange.ai/papers/iclr2023/29) - Chase throttles GPU energy in response to real-time grid carbon intensity, cutting ResNet-50/ImageNet training emissions 13.6% for a 2.5% training-time increase. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Climate Change and AI: Recommendations for Government Action](https://www.gpai.ai/projects/climate-change-and-ai.pdf) - Offers governments recommendations across three fronts — enabling climate-beneficial AI, curbing AI's own emissions, and building governance capacity — while warning against techno-solutionism. ![report](https://img.shields.io/badge/report-555?style=flat-square)\n- [Counting Carbon: A Survey of Factors Influencing the Emissions of Machine Learning](https://arxiv.org/abs/2302.08476) - Analysis of 95 NLP and computer-vision models relates emissions to energy source, training time, and task performance, and proposes a central emissions repository. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Efficiency is Not Enough: A Critical Perspective of Environmentally Sustainable AI](https://arxiv.org/abs/2309.02065) - Argues compute efficiency does not reliably translate into energy or carbon savings and can paradoxically raise lifecycle emissions, urging systems-level thinking. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Energy and Policy Considerations for Deep Learning in NLP](https://arxiv.org/abs/1906.02243) - Training a Transformer with neural architecture search emits an estimated 626,155 lbs CO2e, roughly five cars' lifetime emissions, versus 1,438 lbs for BERT base on GPUs. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Energy-Efficient AI | Vivienne Sze | TEDxMIT](https://www.youtube.com/watch?v=Y0XGSnRrWiU) - Sze argues moving AI inference from cloud data centers onto phones and robots improves privacy, latency, and resilience, making power consumption the field's central engineering constraint. ![video](https://img.shields.io/badge/video-555?style=flat-square)\n- [Exploring the Carbon Footprint of Hugging Face's ML Models: A Repository Mining Study](https://arxiv.org/abs/2305.11164) - Mining 1,417 Hugging Face models shows carbon reporting has stalled, reported footprints dipped slightly over two years, and emissions correlate with model and dataset size. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Good News About the Carbon Footprint of Machine Learning Training](https://research.google/blog/good-news-about-the-carbon-footprint-of-machine-learning-training/) - Google's 4Ms — efficient model, machine, mechanization, and map optimization — cut Transformer training's carbon footprint 747x in four years; ML is 10-15% of company energy use. ![report](https://img.shields.io/badge/report-555?style=flat-square)\n- [How to estimate carbon footprint when training deep learning models? A guide and review](https://arxiv.org/abs/2306.08323) - Compares available energy-tracking tools by measuring two image-processing networks on different servers, then advises practitioners on selecting the right tool and infrastructure. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Measuring the Carbon Intensity of AI in Cloud Instances](https://arxiv.org/abs/2206.05229) - Measuring Azure workloads up to a 6.1-billion-parameter language model, the authors find region choice yields the largest operational emissions reduction, ahead of time-shifting or pausing. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Quantifying the Carbon Emissions of Machine Learning](https://arxiv.org/abs/1910.09700) - Introduces the ML Emissions Calculator, showing training footprint depends chiefly on server location and grid mix, training duration, and hardware model. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [SECure: A Social and Environmental Certificate for AI Systems](https://arxiv.org/abs/2006.06217) - Proposes an ESG-style certification with four pillars — compute efficiency, on-device distributed learning, data privacy, and standardized eco-social reporting. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [The AI Gambit — Leveraging Artificial Intelligence to Combat Climate Change](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3804983) - Offers 13 policy recommendations, arguing AI's climate benefits are a gambit whose payoff may be offset by the technology's own greenhouse gas emissions. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [The Carbon Footprint of Machine Learning Training Will Plateau, Then Shrink](https://www.techrxiv.org/articles/preprint/The_Carbon_Footprint_of_Machine_Learning_Training_Will_Plateau_Then_Shrink/19139645/1) - Claims best practices can cut training energy 100x and emissions 1000x, that prior studies overestimated footprints by up to 100,000x, and total emissions should decline by 2030. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [The Imperative for Sustainable AI Systems](https://thegradient.pub/sustainable-ai/) - Notes high-compute AI's electricity demand doubles every 3.4 months and up to 30x regional carbon-intensity gaps, urging compression, federated deployment, and carbon-aware scheduling. ![report](https://img.shields.io/badge/report-555?style=flat-square)\n- [The Two Faces of AI in Green Mobile Computing: A Literature Review](https://arxiv.org/abs/2308.04436) - Across 34 papers, 94% propose solutions but rarely release code, and AI's own energy cost as a mobile component is far less studied than AI for efficiency. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Towards Environmentally Equitable AI via Geographical Load Balancing](https://arxiv.org/abs/2307.05494) - Shows conventional geographical load balancing worsens regional environmental inequity, while an equity-aware alternative narrows carbon and water footprint disparities across ten simulated data centers. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Unraveling the hidden environmental impacts of AI solutions for the environment](https://arxiv.org/abs/2110.11822) - Argues no prior work assesses the full net environmental impact of AI-for-Green applications beyond greenhouse gases, and proposes lifecycle assessment to detect burden shifting. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Zeus: Understanding and Optimizing GPU Energy Consumption of DNN Training](https://www.usenix.org/conference/nsdi23/presentation/you) - Zeus automatically tunes job- and GPU-level knobs to navigate the energy-performance tradeoff, improving DNN training energy efficiency 15.3% to 75.8% without offline profiling. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n\n### Blockchain\n\n- [An Analysis of Energy Consumption and Carbon Footprints of Cryptocurrencies and Possible Solutions](https://arxiv.org/abs/2203.03717) - Compiling 2018-2021 estimates, it reports Bitcoin consuming roughly 26-177 TWh and emitting 64.18 MtCO2 annually as of July 2021, comparable to Greece. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Confronting the Carbon-footprint Challenge of Blockchain](https://arxiv.org/abs/2201.06929) - Argues that switching consensus from Proof of Work to Proof of Stake could virtually eliminate blockchain electricity demand, projecting energy and emissions for Bitcoin and Ethereum. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Ethereum Emissions: A Bottom-up Estimate](https://arxiv.org/abs/2112.01238) - Replaces prior top-down economic estimates with a bottom-up method deriving energy from hashrate and emissions factors from mining locations across Ethereum's proof-of-work history. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n\n### Computation\n\n- [A Comparative Study of Methods for Measurement of Energy of Computing](https://www.mdpi.com/1996-1073/12/11/2204) - Against external power meters, on-chip sensors show dynamic-energy errors averaging 73% (maximum 300%) and predictive models 32%, with optimization losses reaching 84%. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [An experiment-driven energy consumption model for virtual machine management systems](https://hal.science/hal-01632962) ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [EnergiBridge: Empowering Software Sustainability through Cross-Platform Energy Measurement](https://arxiv.org/abs/2312.13897) - Introduces an open-source energy measurement utility spanning Linux, Windows, and macOS with Intel, AMD, and Apple ARM support, lowering barriers to reproducible green-software research. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Going Green: Optimizing GPUs for Energy Efficiency Through Model-steered Auto-tuning](https://arxiv.org/abs/2211.07260) - Adds energy monitoring to the Kernel Tuner auto-tuner and uses a GPU power model predicting energy-efficient clock frequencies to shrink the tuning search space substantially. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Green Algorithms: Quantifying the Carbon Emissions of Computation](https://arxiv.org/abs/2007.07610) - Presents a standardised framework and free online tool estimating a computation's CO2e from runtime, hardware, and facility location, applied to physics, weather, and NLP workloads. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Green-aware Mobile Edge Computing for IoT: Challenges, Solutions, and Future Directions](https://arxiv.org/abs/2009.03598) - Surveys energy challenges in mobile edge computing for IoT, presenting a green-aware framework, a generic optimization model, and a comparison of workload offloading approaches. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Let's Wait Awhile: How Temporal Workload Shifting Can Reduce Carbon Emissions in the Cloud](https://arxiv.org/abs/2110.13234) - Characterizing delay-tolerant workloads, it quantifies emission savings from shifting them to low-carbon hours across Germany, Great Britain, France, and California during 2020. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Measuring IT Carbon Footprint: What is the Current Status Actually?](https://arxiv.org/abs/2306.10049) - Groups IT emissions measurement obstacles into four categories — software energy, server overhead, energy mix, and embodied carbon — and offers a CPU-based estimation framework. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n\n### Crypto\n\n- [Accounting for carbon emissions caused by cryptocurrency and token systems](https://arxiv.org/abs/2111.06477) - Compares candidate allocation approaches and proposes a framework combining key emission drivers in Proof-of-Work and Proof-of-Stake networks to attribute emissions to investors. ![report](https://img.shields.io/badge/report-555?style=flat-square)\n\n### Data Centers\n\n- [Architectural Tactics to Optimize Software for Energy Efficiency in the Public Cloud](https://github.com/so-vos/thesis/blob/main/Thesis_Vos_2021.pdf) - Interviews with 17 practitioners produced a reusable model of architectural tactics for cloud energy efficiency, though provider opacity still prevents straightforward energy-aware design decisions. ![thesis](https://img.shields.io/badge/thesis-555?style=flat-square)\n- [Balancing Power Systems with Datacenters Using a Virtual Interconnector](https://ieeexplore.ieee.org/document/7452537) ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Carbon-Aware Computing for Datacenters](https://arxiv.org/abs/2106.11750) - Google's production system uses day-ahead carbon-intensity forecasts and Virtual Capacity Curves to delay temporally flexible workloads into greener hours while preserving daily fleet capacity. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Hiding Greenhouse Gas Emissions in the Cloud](https://www.nature.com/articles/s41558-020-0837-6) - Moving IT to the cloud shifts emissions out of Scope 1 and 2 into Scope 3, letting firms obscure footprints as cloud spending reached $288 billion in 2019. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Power consumption and efficiency of cooling in a Data Center](https://ieeexplore.ieee.org/document/5697800) - Roughly half of CRAC airflow bypassed the racks; adding front covers to direct airflow raised cooling efficiency from 1.9 to 12.9. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Quantifying the Benefits of Carbon-Aware Temporal and Spatial Workload Shifting in the Cloud](https://arxiv.org/abs/2306.06502) - Across carbon-intensity data from 123 cloud regions, practical spatiotemporal shifting gains are limited, simple policies capture most of them, and benefits shrink as grids decarbonize. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Supporting energy-awareness for cloud users](https://hal.science/tel-01973083) ![thesis](https://img.shields.io/badge/thesis-555?style=flat-square)\n- [The Case for Energy-Proportional Computing](https://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/33387.pdf) - Servers spend most time at 10-50% utilization where efficiency is under half of peak; energy-proportional hardware could cut datacenter energy use roughly 50%. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [The Dirty Secret of SSDs: Embodied Carbon](https://arxiv.org/abs/2207.10793) - Flash manufacturing emits about 0.16 kg CO2 per gigabyte, so embodied carbon dominates SSD footprints, with storage device production totalling 20 Mt CO2 in 2021. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Treehouse: A Case For Carbon-Aware Datacenter Software](https://arxiv.org/abs/2201.02120) - Proposes exposing fine-grained energy and carbon metrics to developers and raising programming abstractions so datacenter software can trade performance against emissions. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Verifiable Sustainability in Data Centers](https://arxiv.org/abs/2307.11993) - Argues existing pipelines for collecting, aggregating, and reporting data center sustainability data are vulnerable to cyberattack and misuse, requiring privacy-preserving verifiable alternatives. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n\n### Emissions\n\n- [Methodological Guide - Bilan Carbone (French)](https://www.associationbilancarbone.fr/wp-content/uploads/2018/03/bilan-carbone-v8-guide-methodologique-final.pdf) - Defines the six-step Bilan Carbone v8 procedure for organizational greenhouse gas inventories, boundary setting, emission factors, and reduction action plans, aligned with ISO 14064-1. ![guide](https://img.shields.io/badge/guide-555?style=flat-square)\n- [Putting a CO2 figure on a piece of computation](https://ieeexplore.ieee.org/document/6128960) ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [The energy and carbon footprint of the ICT and E\u0026M sector in Sweden 1990-2015 and beyond](https://download.atlantis-press.com/article/25860385.pdf) - Swedish ICT and entertainment/media energy footprints fell about 10% between 2010 and 2015, to 4.1 and 2.8 TWh, despite exponentially growing data traffic. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [The Most Important GHG Accounting Concept You May Not Have Heard of: The Attributional Consequential Distinction](https://ghginstitute.org/2021/04/21/the-most-important-ghg-accounting-concept-you-may-not-have-heard-of-the-attributional-consequential-distinction/) - Conflating attributional inventory methods with consequential decision analysis drives bad decisions; both are needed, but each only for its appropriate purpose. ![guide](https://img.shields.io/badge/guide-555?style=flat-square)\n- [Tracking emissions in the US electricity system](https://www.pnas.org/doi/10.1073/pnas.1912950116) - Hourly consumption-based accounting across 66 US balancing authorities shows 40% of emissions tied to California's main grid occur outside the state. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n\n### Programming Languages\n\n- [Energy Efficiency Across Programming Languages](https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf) - Benchmarks ranked C most energy-efficient, with interpreted languages averaging 2,365J versus 120J for compiled languages, and found faster languages are not always greener. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [GreenC5: An Adaptive, Energy-Aware Collection for Green Software Development](https://digitalcommons.du.edu/cgi/viewcontent.cgi?article=2122\u0026context=etd) - A machine-learning-driven adaptive collection identifies energy-efficient data structures with 95.8% accuracy, yielding median energy savings above 60% and ranging from 18% to 95%. ![thesis](https://img.shields.io/badge/thesis-555?style=flat-square)\n\n### Software Engineering Practice\n\n- [Google Apps: Energy Efficiency in the Cloud](https://static.googleusercontent.com/media/www.google.com/en//green/pdf/google-apps.pdf) - A typical company switching to cloud-hosted office apps saves an estimated 68-87% of office computing energy; GSA's migration cut server energy nearly 90%. ![report](https://img.shields.io/badge/report-555?style=flat-square)\n- [Green and Sustainability in Software Development Lifecycle Process](https://www.intechopen.com/chapters/69865) - Reviews the GREENSOFT model and proposes a five-phase Green IT Star approach embedding sustainability across all lifecycle stages rather than only development and end-of-life. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Software development methodology in a Green IT environment](https://hal.science/tel-01724069) - Acar defines per-stage sustainability criteria and builds TEEC, a tool estimating whole-machine energy across CPU, memory, disk, and network to locate source-code energy hotspots. ![thesis](https://img.shields.io/badge/thesis-555?style=flat-square)\n\n### Quantum Computing\n\n- [Is quantum computing green? An estimate for an energy-efficiency quantum advantage](https://arxiv.org/abs/2205.12092) - Classical tensor-network emulation is currently more energy-efficient than NISQ hardware, with the green advantage threshold set by gate quality and entanglement. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n\n### Streaming\n\n- [DIMPACT](https://dimpact.org) - An SLR-convened coalition giving 17+ media firms, including BBC, Netflix, Disney, and Spotify, a Bristol-developed tool and methodology for measuring digital-service emissions. ![tool](https://img.shields.io/badge/tool-blue?style=flat-square)\n\n### Web\n\n- [CarbonTag: A browser-based method for approximating energy consumption of online ads](https://arxiv.org/abs/2211.00071) - A model trained on 25,000+ ads predicts per-ad rendering energy with R² of 0.67-0.97 and negligible overhead, enabling A-G energy labels for advertisements. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n- [Quantifying Carbon Emissions due to Online Third-Party Tracking](https://arxiv.org/abs/2304.00927) - Third-party tracking inflates web data transmission by upwards of 21%, implying roughly 11 megatonnes of additional greenhouse-gas emissions each year. ![paper](https://img.shields.io/badge/paper-555?style=flat-square)\n\n## Related Lists\n\n- [Awesome AI Tokenomics](https://github.com/QuesmaOrg/awesome-ai-tokenomics) - Roughly 190 tools, papers, and benchmarks for monitoring, optimizing, and governing LLM token cost and waste, including an energy and carbon category. ![list](https://img.shields.io/badge/list-555?style=flat-square)\n\n---\n\n## About the Directory\n\nThe Green Software Foundation Directory helps developers, organizations, and enthusiasts find and contribute to projects that reduce carbon emissions and promote sustainability in software development.\n\n### Adding New Entries\n\nUse the contribution form available on the website to add new projects or resources to the directory. Contributions are subject to review to ensure they meet the sustainability criteria of the Green Software Foundation.\n\n## Contributing\n\nContributions are welcome. To get started:\n\n1. **Fork the repository.**\n2. **Create a new branch.**\n   ```bash\n   git checkout -b feature/YourFeature\n   ```\n3. **Commit your changes.**\n   ```bash\n   git commit -m \"Add your feature\"\n   ```\n4. **Push to the branch.**\n   ```bash\n   git push origin feature/YourFeature\n   ```\n5. **Open a pull request against `dev`.**\n\nPlease ensure your contributions align with the [Code of Conduct](code-of-conduct.md) and the [Contributing Guidelines](contributing.md).\n\n### License\n\nThis project is licensed under the [MIT License](license).\n\n### Contact\n\nFor any inquiries or support, please reach out to [ags@digitalemissions.org](mailto:ags@digitalemissions.org).\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["energy-consumption","carbon-emissions","climate-change","carbon-footprint","community","green-software-foundation","gsf","virtual-machine","energy-efficiency","co2-emissions"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/1193","html_url":"https://ost.ecosyste.ms/projects/1193"}