[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71259":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},71259,"plasmo","PlasmoHQ\u002Fplasmo","PlasmoHQ","🧩 The Browser Extension Framework","https:\u002F\u002Fwww.plasmo.com",null,"TypeScript",13056,456,37,347,0,9,33,27,93.78,"MIT License",false,"main",true,[26,27,28,29,30,31,32,33,34],"browser-extension","bundler","chrome-extension","edge-addon","firefox-addon","parcel","reactjs","sdk","typescript","2026-06-12 04:01:00","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fplasmo.com\">\n    \u003Cimg alt=\"plasmo logo\" width=\"75%\" src=\"https:\u002F\u002Fwww.plasmo.com\u002Fassets\u002Fbanner-black-on-white.png\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca aria-label=\"License\" href=\"\u002Fcli\u002Fplasmo\u002FLICENSE\">\n    \u003Cimg alt=\"See License\" src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fplasmo\"\u002F>\n  \u003C\u002Fa>\n  \u003Ca aria-label=\"NPM\" href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fplasmo\">\n    \u003Cimg alt=\"NPM Install\" src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fplasmo?logo=npm\"\u002F>\n  \u003C\u002Fa>\n  \u003Ca aria-label=\"Twitter\" href=\"https:\u002F\u002Fwww.twitter.com\u002Fplasmohq\">\n    \u003Cimg alt=\"Follow PlasmoHQ on Twitter\" src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fplasmohq?logo=twitter\"\u002F>\n  \u003C\u002Fa>\n  \u003Ca aria-label=\"Twitch Stream\" href=\"https:\u002F\u002Fwww.twitch.tv\u002Fplasmohq\">\n    \u003Cimg alt=\"Watch our Live DEMO every Friday\" src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitch\u002Fstatus\u002Fplasmohq?logo=twitch&logoColor=white\"\u002F>\n  \u003C\u002Fa>\n  \u003Ca aria-label=\"Discord\" href=\"https:\u002F\u002Fwww.plasmo.com\u002Fs\u002Fd\">\n    \u003Cimg alt=\"Join our Discord for support and chat about our projects\" src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F946290204443025438?logo=discord&logoColor=white\"\u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  English | \u003Ca href=\"\u002Fcli\u002Fplasmo\u002Fi18n\u002FREADME.zh-CN.md\">简体中文\u003C\u002Fa> | \u003Ca href=\"\u002Fcli\u002Fplasmo\u002Fi18n\u002FREADME.vi-VN.md\">Tiếng Việt\u003C\u002Fa> | \u003Ca href=\"\u002Fcli\u002Fplasmo\u002Fi18n\u002FREADME.de-DE.md\">Deutsch\u003C\u002Fa> | \u003Ca href=\"\u002Fcli\u002Fplasmo\u002Fi18n\u002FREADME.fr-FR.md\">French\u003C\u002Fa> | \u003Ca href=\"\u002Fcli\u002Fplasmo\u002Fi18n\u002FREADME.id-ID.md\">Indonesian\u003C\u002Fa> | \u003Ca href=\"\u002Fcli\u002Fplasmo\u002Fi18n\u002FREADME.ru-RU.md\">Русский\u003C\u002Fa> | \u003Ca href=\"\u002Fcli\u002Fplasmo\u002Fi18n\u002FREADME.tr-TR.md\">Turkish\u003C\u002Fa> | \u003Ca href=\"\u002Fcli\u002Fplasmo\u002Fi18n\u002FREADME.ja-JP.md\">日本語\u003C\u002Fa> | \u003Ca href=\"\u002Fcli\u002Fplasmo\u002Fi18n\u002FREADME.ko-KR.md\">한국어\u003C\u002Fa>\n\u003C\u002Fp>\n\n**Production Cloud:** We've built a cloud offering for browser extensions called [Itero](https:\u002F\u002Fitero.plasmo.com). Check it out if you want instant beta testing and more awesome features.\n\n# Plasmo Framework\n\nThe [Plasmo](https:\u002F\u002Fwww.plasmo.com\u002F) Framework is a battery-packed browser extension SDK made by hackers for hackers. Build your product and stop worrying about config files and the odd peculiarities of building browser extensions.\n\n> It's like [Next.js](https:\u002F\u002Fnextjs.org\u002F) for browser extensions!\n\n![CLI Demo](https:\u002F\u002Fwww.plasmo.com\u002Fassets\u002Fplasmo-cli-demo.gif)\n\n## Highlighted Features\n\n- First-class [React](https:\u002F\u002Freactjs.org\u002F) + [Typescript](https:\u002F\u002Fwww.typescriptlang.org\u002F) Support\n- [Declarative Development](https:\u002F\u002Fdocs.plasmo.com\u002Fframework#where-is-the-manifestjson-file)\n- [Content Scripts UI](https:\u002F\u002Fdocs.plasmo.com\u002Fcsui)\n- [Tab Pages](https:\u002F\u002Fdocs.plasmo.com\u002Fframework\u002Ftab-pages)\n- Live-reloading + React HMR\n- [`.env*` files](https:\u002F\u002Fdocs.plasmo.com\u002Fframework\u002Fenv)\n- [Storage API](https:\u002F\u002Fdocs.plasmo.com\u002Fframework\u002Fstorage)\n- [Messaging API](https:\u002F\u002Fdocs.plasmo.com\u002Fframework\u002Fmessaging)\n- [Remote code bundling](https:\u002F\u002Fdocs.plasmo.com\u002Fframework\u002Fremote-code) (e.g., for Google Analytics)\n- Targeting [multiple browser and manifest pairs](https:\u002F\u002Fdocs.plasmo.com\u002Fframework\u002Fworkflows\u002Fbuild#with-specific-target)\n- [Automated deployment via BPP](https:\u002F\u002Fdocs.plasmo.com\u002Fframework\u002Fworkflows\u002Fsubmit)\n- Optional support for [Svelte](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fwith-svelte) and [Vue](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fwith-vue)\n\nAnd many, many more! 🚀\n\n## System Requirements\n\n- Node.js 16.x or later\n- MacOS, Windows, or Linux\n- (Strongly Recommended) [pnpm](https:\u002F\u002Fpnpm.io\u002F)\n\n## Examples\n\nWe have examples showcasing how one can use Plasmo with [Firebase Authentication](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fexamples\u002Ftree\u002Fmain\u002Fwith-firebase-auth), [Redux](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fexamples\u002Ftree\u002Fmain\u002Fwith-redux), [Supabase authentication](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fexamples\u002Ftree\u002Fmain\u002Fwith-supabase), [Tailwind](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fexamples\u002Ftree\u002Fmain\u002Fwith-tailwindcss), and many more. To check them out, [visit our examples repository](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fexamples).\n\n## Documentation\n\nCheck out the [documentation](https:\u002F\u002Fdocs.plasmo.com\u002F) to get a more in-depth view into the Plasmo Framework.\n\n## Browser Extensions Book\n\nFor a more in-depth view into how browser extensions work, and how to develop them, we highly recommend Matt Frisbie's new book [\"Building Browser Extensions\"](https:\u002F\u002Fbuildingbrowserextensions.com\u002Fplasmo)\n\n## Usage\n\n```\npnpm create plasmo example-dir\ncd example-dir\npnpm dev\n```\n\nThe road ahead is filled with many turns.\n\n- Popup changes go in `popup.tsx`\n- Options page changes go in `options.tsx`\n- Content script changes go in `content.ts`\n- Background service worker changes go in `background.ts`\n\n### Directories\n\nYou can also organize these files in their own directories:\n\n```\next-dir\n├───assets\n|   └───icon.png\n├───popup\n|   ├───index.tsx\n|   └───button.tsx\n├───options\n|   ├───index.tsx\n|   ├───utils.ts\n|   └───input.tsx\n├───contents\n|   ├───site-one.ts\n|   ├───site-two.ts\n|   └───site-three.ts\n...\n```\n\nFinally, you can also avoid putting source code in your root directory by putting them in a `src` sub-directory, [following this guide](https:\u002F\u002Fdocs.plasmo.com\u002Fframework\u002Fcustomization\u002Fsrc). Note that `assets` and other config files will still need to be in the root directory.\n\n## Supported Browsers\n\nTo see a list of supported browser targets, [please refer to our documentation here](https:\u002F\u002Fdocs.plasmo.com\u002Fframework\u002Fworkflows\u002Ffaq#what-are-the-officially-supported-browser-targets).\n\n## Community\n\nThe Plasmo community can be found on [Discord](https:\u002F\u002Fwww.plasmo.com\u002Fs\u002Fd). This is the appropriate channel to get help with using the Plasmo Framework.\n\nOur [Code of Conduct](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fplasmo\u002Fblob\u002Fmain\u002F.github\u002FCODE_OF_CONDUCT.md) applies to all Plasmo community channels.\n\n## Contributing\n\nPlease see the [contributing guidelines](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fplasmo\u002Fblob\u002Fmain\u002F.github\u002FCONTRIBUTING.md) to learn more.\n\nA big thanks to all of our amazing [contributors](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fplasmo\u002Fgraphs\u002Fcontributors) ❤️\n\nFeel free to join the fun and send a PR!\n\n### Plasmo Framework\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fplasmo\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=PlasmoHQ\u002Fplasmo\" \u002F>\n\u003C\u002Fa>\n\n### [Plasmo Examples](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fexamples)\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fexamples\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=PlasmoHQ\u002Fexamples\" \u002F>\n\u003C\u002Fa>\n\n### [Plasmo Storage](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fstorage)\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fstorage\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=PlasmoHQ\u002Fstorage\" \u002F>\n\u003C\u002Fa>\n\n### [Browser Platform Publisher](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fbpp)\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fbpp\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=PlasmoHQ\u002Fbpp\" \u002F>\n\u003C\u002Fa>\n\n## Disclaimer\n\nPlasmo is currently alpha software, and some things might change from version to version, so please be mindful and use it at your own risk.\n\n# License\n\n[MIT](https:\u002F\u002Fgithub.com\u002FPlasmoHQ\u002Fplasmo\u002Fblob\u002Fmain\u002FLICENSE) ⭐ [Plasmo](https:\u002F\u002Fwww.plasmo.com)\n","Plasmo 是一个专为浏览器扩展开发设计的框架。它提供了React和TypeScript的一流支持，以及声明式开发、内容脚本UI、标签页等功能，极大地简化了配置文件处理及浏览器扩展构建过程中的复杂性。此外，该框架还支持实时重载与热更新、环境变量管理、存储与消息API等特性，并能够针对不同浏览器及其版本进行打包。Plasmo适用于需要快速迭代且注重用户体验的开发者，在构建跨平台浏览器插件时尤为适用。",2,"2026-06-11 03:36:49","high_star"]