Skip to content

AgregoreWeb/agregore-browser

Repository files navigation

Agregore Browser

A minimal web browser for the distributed web

Website

Download the installer

Matrix Chat

Discord Chat

Videos

Overview from SpeakeasyJS

Watch the intro video from Dat Conference

Intro to IPFS interface from IPFS meetup

5 minute overview from Dweb meetup

Decentralized Web - Bloom Fireside

Goals

  • Enable people to make and use local first apps using the web
  • Be minimal (fewer built-in features, leave more to the OS)
  • Be open to anything p2p / decentralized / local-first
  • Rely on web extensions for extra functionality
  • Work with mesh networks / Bluetooth Low Energy networks

Agregore demo

Features

Keyboard Shortcuts

(Ctrl means Command or Control)

Shortcut Does Is configurable
Alt Show Menu Bar -
Ctrl+N New Window +
F11 Fullscreen -
Ctrl+M Minimize -
Ctrl+W Close -
Ctrl+Shift+I Open Devtools +
Ctrl+] Navigate Forward +
Ctrl+[ Navigate Backward +
Ctrl+L Focus URL Bar +
Ctrl+F Find in page -
Ctrl+R Reload +
Ctrl+Shift+R Hard Reload +
Learn More +
Open Extensions Folder +
Ctrl+. Edit Config File +

Other features

  • Web Extension support
  • Built-in Markdown/Gemini/JSON rendering extension
  • Built-in QR code scanner and generator extension
    • Generate a QR code for the current page
    • Scan a QR code from the browser action window.
    • Right click a link or image to generate a QR code for it
  • Built-in ad blocker (ublock origin)
  • Use local and cloud LLMs via window.llm.chat({messages}) and window.llm.complete("prompt")
  • Built-in support for creating web archives via ArchiveWeb.page
  • Open links in new windows (right click on element)
  • Autocomplete URLs from history (type in the URL bar, up/down to navigate, right to autocomplete)
  • Persist open windows when quitting
  • Save files from pages (any protocol, right click it)
  • Set as default browser (click Set As Default in the menu bar (ALT))
  • Set as default Torrent handler (click Set as Default Torrent in the menu bar (ALT))
  • Auto-convert SSB sigils, BitTorrent magnet links, /ipfs/Qm paths, and /ipns/ paths to proper URLs.
  • Configure whether the menu bar should be visible by default (edit .agregorerc autoHideMenuBar property)

Docs

Check out the documentation.

Contributing

Feel free to open a Github issue if you wish to tackle one of the items on the roadmap, or message @RangerMauve directly on whatever platform you can find them on.

This project uses the StandardJS code style. Please format your code with standard --fix or run npm run lint.

To build from source do the following:

  • Set up node.js (at least Node 18), git, and yarn
  • Set up Node-gyp and its dependencies for your OS
  • fork the repo
  • Pull your fork to your computer
  • Load submodules with git submodule update --init --recursive
  • Run yarn or npm install to install dependencies
  • Run yarn start or npm start to start the browser and test your changes
  • After coding, when ready to submit, run npm run lint or yarn lint to check code style
  • Push to your clone
  • Submit a pull request

Other notes:

  • To debug extensions, run yarn debug to have devtools opened for their background pages
  • If you're interested in a CLI for these protocols, check out curld cURL for Distributed Web. That project supports the same protocols as Agregore, but in a terminal way.
  • To download the latest versions of ArchiveWeb.page or Ublock Origin, run yarn download-extennsions