Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Ulto85/amongGX/llms.txt

Use this file to discover all available pages before exploring further.

What is amongGX?

amongGX is a single-file Python desktop web browser built on top of PyQt5 and QtWebEngine. Themed around the popular game Among Us, it wraps a fully functional Chromium-based browser engine inside a native desktop window — complete with navigation controls, a URL bar, and a quick-link toolbar that whisks you directly to Discord, music, Steam, and the creator’s channel. The entire application lives in one file — browser.py — making it easy to understand, run, and modify. It was created by Ulto4 as a fun, functional demonstration of how quickly PyQt5 can turn a browser engine into a polished desktop app.

Architecture Overview

The MainWindow Class

The heart of the application is the MainWindow class, which subclasses Qt’s QMainWindow. This gives the app a full main-window shell — including support for toolbars, a status bar, and a central widget area — without writing any boilerplate window management code.
class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)
        ...
All UI setup happens inside __init__: the web view is created and mounted, toolbars are built, and signals are wired to their slots.

The QWebEngineView Central Widget

The browser’s rendering is handled by a QWebEngineView instance, which embeds the full Chromium rendering engine (via QtWebEngine) directly into the Qt widget tree. It is set as the window’s central widget, meaning it fills all available space not occupied by toolbars or the status bar.
self.browser = QWebEngineView()
self.browser.setUrl(QUrl("https://Among.robowolf.repl.co"))
self.setCentralWidget(self.browser)
Two signals on the view drive the rest of the UI:
SignalSlotPurpose
urlChangedupdate_urlbarKeeps the URL bar in sync with the current page address
loadFinishedupdate_titleUpdates the window title once a page finishes loading

Application Entry Point

At the bottom of browser.py, a standard Qt application lifecycle is kicked off:
app = QApplication(sys.argv)
app.setApplicationName("Among")
window = MainWindow()
app.exec_()
QApplication manages the event loop. app.setApplicationName("Among") sets the OS-level application name, and app.exec_() blocks until the window is closed.

Key Features

🏠 Home Button

A dedicated Home toolbar action (with status-bar tooltip “Return to the Skeld”) navigates back to the default Among Us fan page at any time.

◀ ▶ ⟳ Navigation Controls

Three toolbar actions provide standard browser navigation:
  • ⤶ Back — navigates to the previous page in history
  • ⤷ Forward — navigates to the next page in history
  • ⟳ Reload — reloads the current page

🔗 URL Bar with Scheme Detection

A QLineEdit URL bar lets users type any address. When the user presses Return, the navigate_to_url slot fires and checks whether the entered text includes a URL scheme. If none is present, http:// is automatically prepended:
def navigate_to_url(self):
    q = QUrl(self.urlbar.text())
    if q.scheme() == "":
        q.setScheme("http")
    self.browser.setUrl(q)

📝 Dynamic Window Title

After every page load, the window title is updated to Among - <page title>, incorporating the live page title returned by the browser engine:
def update_title(self):
    title = self.browser.page().title()
    self.setWindowTitle(f'Among - {title}')
Four one-click toolbar shortcuts round out the toolbar:
ButtonLabelDestination
💬Discordhttps://www.discord.com
🎵YouTube music link (vibe check)
🎮Among Us on Steam (store.steampowered.com)
👍👍Creator’s YouTube channel (subscribe!)

🌐 Default Home Page

The browser opens on https://Among.robowolf.repl.co — an Among Us fan page — on every launch. The same URL is restored whenever the Home button is clicked.

Method Reference

MainWindow exposes nine public methods. Together they cover all UI behaviour — from initial setup to every toolbar action:
MethodSignatureDescription
__init____init__(self, *args, **kwargs)Builds the entire UI: creates the QWebEngineView, wires signals, constructs toolbars, and calls self.show()
update_titleupdate_title(self)Called when loadFinished fires; reads the page title and sets the window title to Among - <title>
update_urlbarupdate_urlbar(self, q)Called when urlChanged fires; updates the URL bar text to the current page URL
navigate_to_urlnavigate_to_url(self)Reads the URL bar, prepends http:// if no scheme is present, then loads the URL
go_homego_home(self)Navigates the web view to the default home page at https://Among.robowolf.repl.co
discorddiscord(self)Quick-link: navigates to https://www.discord.com
traptrap(self)Quick-link (♫ button): navigates to a YouTube music video for a “vibe check”
get_amongusget_amongus(self)Quick-link (ඞ button): navigates to the Among Us Steam store page
subscribesubscribe(self)Quick-link (👍 button): navigates to the creator’s YouTube channel

Next Steps

Installation

Install Python, PyQt5, and QtWebEngine so you can run amongGX on your desktop.

Quickstart

Launch the browser in under five minutes and take it for your first spin.

Build docs developers (and LLMs) love