{"id":22411050,"url":"https://github.com/smapiot/piral-inspector","last_synced_at":"2025-08-19T08:33:55.855Z","repository":{"id":43274407,"uuid":"234088341","full_name":"smapiot/piral-inspector","owner":"smapiot","description":"A DevTools extension for Piral instances and their pilets. :hammer:","archived":false,"fork":false,"pushed_at":"2024-12-04T11:48:05.000Z","size":2573,"stargazers_count":16,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-14T14:06:44.057Z","etag":null,"topics":["chrome-devtools","chrome-extension","debugging-tool","hacktoberfest","microfrontends","piral","react","typescript"],"latest_commit_sha":null,"homepage":"https://piral.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smapiot.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"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},"funding":{"github":["smapiot","FlorianRappl"]}},"created_at":"2020-01-15T13:37:39.000Z","updated_at":"2025-04-09T10:15:18.000Z","dependencies_parsed_at":"2024-12-04T12:27:39.473Z","dependency_job_id":"9ddf69e4-82f0-4e66-a53e-f8cc03d68fcd","html_url":"https://github.com/smapiot/piral-inspector","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/smapiot/piral-inspector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smapiot%2Fpiral-inspector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smapiot%2Fpiral-inspector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smapiot%2Fpiral-inspector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smapiot%2Fpiral-inspector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smapiot","download_url":"https://codeload.github.com/smapiot/piral-inspector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smapiot%2Fpiral-inspector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271121788,"owners_count":24702874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"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"}},"keywords":["chrome-devtools","chrome-extension","debugging-tool","hacktoberfest","microfrontends","piral","react","typescript"],"created_at":"2024-12-05T13:12:53.037Z","updated_at":"2025-08-19T08:33:55.828Z","avatar_url":"https://github.com/smapiot.png","language":"TypeScript","funding_links":["https://github.com/sponsors/smapiot","https://github.com/sponsors/FlorianRappl"],"categories":[],"sub_categories":[],"readme":"[![Piral Logo](https://github.com/smapiot/piral/raw/main/docs/assets/logo.png)](https://piral.io)\n\n# [Piral Inspector](https://piral.io) \u0026middot; [![GitHub License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/smapiot/piral-inspector/blob/main/LICENSE) [![GitHub Tag](https://img.shields.io/github/tag/smapiot/piral-inspector.svg)](https://github.com/smapiot/piral-inspector/releases) [![GitHub Issues](https://img.shields.io/github/issues/smapiot/piral-inspector.svg)](https://github.com/smapiot/piral-inspector/issues) [![Gitter Chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/piral-io/community) [![CLA Assistant](https://cla-assistant.io/readme/badge/smapiot/piral)](https://cla-assistant.io/smapiot/piral)\n\nA DevTools extension for Piral instances and their pilets.\n\n## Download Links\n\n- [Firefox Add-Ons](https://addons.mozilla.org/en-US/firefox/addon/piral-inspector/)\n- [Chrome Marketplace](https://chrome.google.com/webstore/detail/piral-inspector/ikbpelpjfgmplidagknaaegjhfigcbfl)\n- [Opera Addons](https://addons.opera.com/en/extensions/details/piral-inspector/)\n- [Edge Extensions](https://microsoftedge.microsoft.com/addons/detail/piral-inspector/hbdhpkhidilkmkbkklcbjgddbeodibml)\n\n## Description\n\nThis simple devtools extension lets you inspect and manipulate your Piral instance for debugging purposes. It only works when either debugging a Piral instance or running a pilet in an emulator version of a Piral instance.\n\n## Introductory Video\n\nWe placed a quick introduction video on YouTube.\n\n[![Piral Inspector](http://img.youtube.com/vi/8CE7_X01NmM/0.jpg)](http://www.youtube.com/watch?v=8CE7_X01NmM \"Piral Inspector\")\n\n## Functionality\n\nRight now the Piral Inspector comes with the following set of functionality:\n\n- Detection of the running Piral instance (name, version)\n- See and call the registered routes\n- See and unload the loaded pilets\n- Look at the used dependencies\n- Inspect the available extensions\n- Toggle global settings such as state container logging\n- Load new pilets from their root module URL\n- Load new pilets from a given feed URL\n- Load new pilets from a tarball\n\n## How to Build\n\nYou'll need the following tools:\n\n1. Node.js (at least version 18)\n2. npm (usually comes with Node.js)\n3. git\n4. A command line interpreter\n\nFor building the solution the following steps should be followed.\n\n1. Clone the repository\n2. Run `npm install` in the cloned repository\n3. If you want to build / publish run either\n   - `npm build:firefox` to build for Firefox\n   - `npm build:opera` to build for Opera\n   - `npm build:chrome` to build for Chrome\n   - `npm build:edge` to build for Edge\n4. If you want to develop run either\n   - `npm watch:firefox` to watch for Firefox\n   - `npm watch:opera` to watch for Opera\n   - `npm watch:chrome` to watch for Chrome\n   - `npm watch:edge` to watch for Edge\n5. Deploying requires having all the secrets in environment variables\n\nAll source files are available in the `src` folder.\n\n## Architecture\n\nThe extension follows the general guidelines for building browser extensions that send and retrieve information from a website in a dev tools panel. The architecture looks as follows:\n\n![Architecture](./docs/architecture.png)\n\nThe singleton [background script](./src/serviceWorker.ts) is the exchange driver between a website and the dev tools panel. The website (restricted to `localhost`, i.e., Piral instances in development, as well as pilets) can be accessed through the [content script](./src/contentScript.ts), which knows how to talk to the Piral Debug API.\n\nThe Piral Debug API comes from the [piral-debug-utils](https://www.npmjs.com/package/piral-debug-utils) npm package. Right now its quite flexible and fully message based. However, in the past this has been achieved from the Piral Inspector itself. ~~In order to still support such older Piral instances the [legacy API](./src/scripts/legacy/worker.ts) is still part of the Piral Inspector~~ (the support for this was removed in Piral Inspector 0.11).\n\nThe dev tools panel is a small [web app](./src/public/devtools.html). Mainly, it is driven by [message exchange with the background script](./src/devtools.ts). As such when a panel opens it sends a message to the website (via the background script) to get the initial state.\n\n## License\n\nThe code is licensed [under the MIT license](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmapiot%2Fpiral-inspector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmapiot%2Fpiral-inspector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmapiot%2Fpiral-inspector/lists"}