{"id":26402929,"url":"https://github.com/p2plabsxyz/peersky-browser","last_synced_at":"2026-04-06T20:04:09.242Z","repository":{"id":172311226,"uuid":"633021526","full_name":"p2plabsxyz/peersky-browser","owner":"p2plabsxyz","description":"A peer-to-peer web browser","archived":false,"fork":false,"pushed_at":"2026-04-02T00:34:37.000Z","size":145098,"stargazers_count":72,"open_issues_count":24,"forks_count":38,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-02T12:49:47.424Z","etag":null,"topics":["bittorent","browser","decentralized","dweb","gsoc","hypercore-protocol","ipfs","local-first","local-llm","p2p","peersky","web"],"latest_commit_sha":null,"homepage":"https://peersky.p2plabs.xyz/","language":"JavaScript","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/p2plabsxyz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/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":"2023-04-26T15:58:02.000Z","updated_at":"2026-03-30T16:22:32.000Z","dependencies_parsed_at":"2025-02-24T10:30:30.591Z","dependency_job_id":"c26464c5-3a72-49ba-9782-992e7981454d","html_url":"https://github.com/p2plabsxyz/peersky-browser","commit_stats":null,"previous_names":["p2plabsxyz/peersky-browser"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/p2plabsxyz/peersky-browser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p2plabsxyz%2Fpeersky-browser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p2plabsxyz%2Fpeersky-browser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p2plabsxyz%2Fpeersky-browser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p2plabsxyz%2Fpeersky-browser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/p2plabsxyz","download_url":"https://codeload.github.com/p2plabsxyz/peersky-browser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p2plabsxyz%2Fpeersky-browser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31487543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"ssl_error","status_checked_at":"2026-04-06T17:22:54.741Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bittorent","browser","decentralized","dweb","gsoc","hypercore-protocol","ipfs","local-first","local-llm","p2p","peersky","web"],"created_at":"2025-03-17T15:29:22.224Z","updated_at":"2026-04-06T20:04:09.237Z","avatar_url":"https://github.com/p2plabsxyz.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg align=\"center\" src=\"/public/icon.png\" width=\"200\" height=\"200\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003ePeerSky Browser\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/p2plabsxyz/peersky-browser/build.yml\" alt=\"GitHub Actions Workflow Status\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Platform-electron.js-black.svg\" alt=\"platform\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/release-date-pre/p2plabsxyz/peersky-browser?color=green\" alt=\"GitHub Pre-release\" /\u003e\n    \u003c!-- \u003cimg src=\"https://img.shields.io/github/v/release/p2plabsxyz/peersky-browser?color=green\" alt=\"GitHub Release\"\u003e --\u003e\n    \u003ca href=\"https://mastodon.social/@peersky\"\u003e\u003cimg src=\"https://img.shields.io/mastodon/follow/113323887574214930\" alt=\"Mastodon Follow\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://deepwiki.com/p2plabsxyz/peersky-browser\"\u003e\u003cimg src=\"https://deepwiki.com/badge.svg\" alt=\"Ask DeepWiki\"\u003e\u003c/a\u003e\n    \u003cimg src=\"/demo.png\" width=\"800\" alt=\"PeerSky Browser home page\"\u003e\n\u003c/div\u003e\n\n💻 [Download](https://peersky.p2plabs.xyz/)\n\n## Roadmap\n\n- [x] Basic browser navigation:\n\n  - [x] Back\n  - [x] Forward\n  - [x] Reload\n  - [x] Browser protocol (peersky://)\n  - [x] Home page (peersky://home)\n  - [x] Cross browser themeing ([browser://theme/](https://github.com/p2plabsxyz/peersky-browser/blob/main/docs/Theme.md))\n  - [x] Search engine\n    - DuckDuckGo (default)\n    - Brave Search\n    - Ecosia\n    - Kagi\n    - Startpage\n  - [x] Tabs\n    - Vertical tabs toggle\n\n- [x] IPFS protocol handler:\n\n  - [x] Run a local [Helia](https://helia.io/) node\n  - [x] `ipfs://` / `ipns://` native URLs support\n  - [x] Directory listings support\n  - [x] Native ENS domain resolution:\n    - [x] Resolve `.eth` domains directly to IPFS/IPNS content without centralized gateways (e.g., `ipfs://vitalik.eth`).\n    - [x] Local caching for resolved ENS content to enhance performance and reduce RPC calls.\n\n- [x] Hypercore protocol handler:\n\n  - [x] Run a local [hyper](https://holepunch.to/) node\n  - [x] `hyper://` native URLs support\n\n- [x] BitTorrent protocol handler:\n\n  - [x] [WebTorrent](https://webtorrent.io/) in isolated child process\n  - [x] `bittorrent://` / `bt://` / `magnet:` native URLs support\n  - [x] Real-time download progress UI with pause/resume\n  - [x] Auto-destroy torrent on completion (no seeding)\n  - [ ] 🚧 `bt://` website seeding and hosting\n\n- [x] Local `file://` browsing with P2P publishing:\n  - [x] Custom `file://` support with privileged access\n  - [x] Directory listings (Chrome-style)\n  - [x] One-click P2P publishing to:\n      - [x] IPFS (`ipfs://`)\n      - [x] Hypercore (`hyper://`)\n\n- [x] Web3 protocol handler:\n\n  - [x] Run a local [web3 protocol](https://docs.web3url.io/) node\n    - [x] Access on-chain websites.\n    - [x] Fetch data from smart contracts using auto, manual, and resource request resolve modes.\n    - [x] Query account balances or other data directly from smart contracts.\n\n- [x] P2P Applications:\n\n  - [x] `peersky://p2p/peerchat/`\n    - Peer-to-peer messaging over Hyper\n  - [x] `peersky://p2p/upload/`\n    - Decentralized file storage\n  - [x] `peersky://p2p/editor/`\n    - Build and publish websites\n  - [x] `peersky://p2p/p2pmd/`\n    - Real-time collaborative markdown editor\n    - Presentation slides mode with speaker notes\n    - AI-powered content generation\n    - Publish to IPFS/Hypercore\n    - Peers dashboard with roles, live editing status, and edit history\n  - [x] `peersky://p2p/wiki/`\n    - Browse Wikipedia over IPFS\n  - [x] [reader.p2plabs.xyz](https://reader.distributed.press/)\n    - A p2p offline ActivityPub client for reading and following microblogs on the fediverse.\n\n- [x] Electron’s Auto-updater:\n\n  - [x] Download and install the latest release from Github automatically\n\n- [x] Context menu:\n\n  - [x] Back / Forward\n  - [x] Reload\n  - [x] Inspect\n  - [x] Undo / Redo\n  - [x] Cut / Copy / Paste\n  - [x] Copy Link Address\n  - [x] Open Link in New Tab \n\n- [x] Find in page:\n  - [x] Search for text within a document or web page\n\n- [x] Window state persistence:\n  - [x] Save and restore open windows on app launch\n\n- [x] Keyboard shortcuts:\n\n  - [x] New Window: `CommandOrControl+N`\n  - [x] Back: `CommandOrControl+[`\n  - [x] Forward: `CommandOrControl+]`\n  - [x] Reload: `CommandOrControl+R`\n  - [x] Find in Page: `CommandOrControl+F`\n  - [x] Open Dev Tools: `CommandOrControl+Shift+I`\n  - [x] Focus URL Bar: `CommandOrControl+L`\n  - [x] Minimize: `CommandOrControl+M`\n  - [x] Close: `CommandOrControl+W`\n  - [x] Toggle Full Screen: `F11`\n\n- [x] Settings (peersky://settings):\n\n  - [x] Switch search engines\n  - [x] Set custom home page wallpapers\n  - [x] Hide/show the home page clock\n  - [x] Change themes\n  - [x] Clear browser cache\n\n- [x] [Local LLM](https://github.com/p2plabsxyz/peersky-browser/blob/main/docs/LLM.md) integration for P2P apps:\n  - [x] `window.llm` APIs (chat + streaming, complete)\n  - [x] Trusted-domain exposure (PeerSky-native + allowlist)\n  - [x] AI Chat app (peersky://p2p/ai-chat/)\n    - [x] Ported from [Agregore examples](https://github.com/AgregoreWeb/website/blob/main/docs/examples/llm-chat.html) with PeerSky updates\n  - [x] P2P Editor integration (peersky://p2p/editor/)\n    - [x] New AI generator (`ai-generator.js`) to generate code with AI\n\n  - [ ] 🚧 [LLM Memory](https://github.com/p2plabsxyz/peersky-browser/issues/97)\n    - [ ] `llm.json` to store prompts/responses across P2P apps\n    - [ ] Reusable History component (P2P editor, AI chat, etc.)\n    - [ ] Settings toggle to enable/disable memory\n    - [ ] “Reset P2P Data” also clears `llm.json`\n\n- [x] [Web extensions](https://github.com/p2plabsxyz/peersky-browser/issues/19):\n  - [x] Ability to add and manage extensions\n  - [x] [Default extensions](https://github.com/p2plabsxyz/essential-chromium-extensions)\n  - [ ] 🚧 [Decentralized Extension Distribution](https://github.com/p2plabsxyz/peersky-browser/issues/42)\n\n- [x] Bookmarks (peersky://bookmarks):\n\n  - [x] Option to add favourite pages in the nav bar (peersky://bookmarks)\n\n- [x] QR Code generator:\n\n  - [x] Option to generate QR Code for every page in the URL prompt with [plan1](./docs/Plan1.md).\n\n- [x] Archive (peersky://archive):\n\n  - [x] List and showcase published content from `peersky://p2p/` apps for enhanced discoverability.\n  - [x] Provide metadata (e.g., creation date, content type) to improve navigation and usability.\n  - [x] Ability to download all the hashes of published data in a .json file.\n\n## Development\n\n\n### Node.js and npm Setup\n\nPlease refer to the [Node.js official documentation](https://nodejs.org/) to install Node.js. Once installed, npm (Node Package Manager) will be available, allowing you to run commands like `npx` and `npm`.\n\n- **npm**: Comes bundled with Node.js. Verify installation by running:\n  ```bash\n  node -v\n  npm -v\n  ```\n\n### Install dependencies\n\n```bash\nnpm install\n```\n\n### Start the app\n\n```bash\nnpm start\n```\n\n### Build\n  After development of the browser, run the following command. This will create a production build.\n\n```bash\nnpm run build\n# For Intel and Silicon macs\n```\n\n```bash\nnpm run build-all\n# For macOS, Linux, and Windows\n```\n\nNow, the `dist` folder will appear in the root directory.\n\n### Logging\n\nFor details on the Peersky logging system, see the [Logging Documentation](./docs/Logging.md). \n\n\n## Contribute\n\n- Thanks for your interest in contributing to PeerSky Browser. There are many ways you can contribute to the project.\n- To start, take a few minutes to read the \"[contribution guide](https://github.com/p2plabsxyz/peersky-browser/blob/main/.github/CONTRIBUTING.md)\".\n- We look forward to your [pull requests](https://github.com/p2plabsxyz/peersky-browser/pulls) and / or involvement in our [issues page](https://github.com/p2plabsxyz/peersky-browser/issues).\n\n## License\n\nPeerSky Browser is licensed under the [MIT License](https://github.com/p2plabsxyz/peersky-browser/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp2plabsxyz%2Fpeersky-browser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fp2plabsxyz%2Fpeersky-browser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp2plabsxyz%2Fpeersky-browser/lists"}