Skip to content

Auto-Update ​

Nothing Browser checks for updates automatically and installs them in-app β€” no terminal required.


Overview ​

FeatureDescription
Check frequencyOn launch + every 6 hours
Update sourceGitHub Releases API
Download methodIn-app streaming
Install methodAutomatic binary swap
User interactionTwo clicks (DOWNLOAD β†’ INSTALL)

How It Works ​

The update checker polls the GitHub Releases API:

https://api.github.com/repos/BunElysiaReact/nothing-browser/releases/latest

Check Timing ​

EventWhen
First check3 seconds after launch
Periodic checksEvery 6 hours
Manual checkClick CHECK NOW in TECH HOUSE tab

What It Checks ​

FieldCompared
tag_nameAgainst current version
assetsDownloads for your platform
bodyChangelog content

Update Notification ​

When a newer version is found:

Tab Label Change ​

The TECH HOUSE tab label updates to show the new version:

πŸ”” TECH HOUSE [v0.1.4 ready]

Bell Icon ​

The notification bell in the top-right of the tab bar turns amber:

StateBellTab Label
Up to dateβšͺ GrayTECH HOUSE
Update available🟠 AmberπŸ”” TECH HOUSE [v0.1.4 ready]
DownloadingπŸ”΅ BlueπŸ”” TECH HOUSE [downloading...]
Ready to install🟒 GreenπŸ”” TECH HOUSE [install ready]

Downloading and Installing ​

Step-by-Step ​

Step 1: Go to TECH HOUSE tab
              β”‚
              β–Ό
Step 2: Click ↓ DOWNLOAD UPDATE
              β”‚
              β–Ό
Step 3: Watch progress bar
              β”‚
              β–Ό
Step 4: Click ⚑ INSTALL & RESTART
              β”‚
              β–Ό
Step 5: App closes, swaps binary, restarts

Progress Bar ​

During download, you'll see:

Downloading: [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘] 45% (2.3 MB / 5.1 MB)
Speed: 1.2 MB/s Β· Time remaining: 2 seconds

After Download ​

The INSTALL & RESTART button becomes active. Click it to:

  1. Save current session (auto-save)
  2. Close the application
  3. Replace the binary
  4. Restart the browser

No terminal. No sudo (with tar.gz release).


Platform Differences ​

AspectDetails
Binary locationAnywhere (user-writable)
Update requiresNo password
Update methodDirect binary swap
ExperienceSeamless

Linux (.deb) ​

AspectDetails
Binary location/usr/bin (system)
Update requirespkexec or sudo
Update methodPassword prompt
ExperienceOne password entry
bash
# .deb users will see:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Authentication Required                β”‚
β”‚                                         β”‚
β”‚  [sudo] password for user:             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                                 β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                         β”‚
β”‚  [Cancel]  [OK]                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Windows ​

AspectDetails
Binary locationAnywhere (user-writable)
Update requiresNo admin (if writable)
Update methodDirect binary swap

macOS ​

AspectDetails
Binary location/Applications (may need password)
Update requiresPassword for system install
Update methodApp bundle replacement

Update Flow Diagram ​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           AUTO-UPDATE FLOW                                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”‚
β”‚  β”‚  Launch  │───►│  Check   │───►│ Available│───►│ Notify   β”‚              β”‚
β”‚  β”‚ Browser  β”‚    β”‚ GitHub   β”‚    β”‚   ?      β”‚    β”‚  User    β”‚              β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜              β”‚
β”‚                                       β”‚               β”‚                    β”‚
β”‚                          No β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β”‚ Yes                β”‚
β”‚                          β”‚                            β”‚                    β”‚
β”‚                          β–Ό                            β–Ό                    β”‚
β”‚                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”‚
β”‚                    β”‚  Wait 6  β”‚              β”‚   User       β”‚              β”‚
β”‚                    β”‚  Hours   β”‚              β”‚   Downloads  β”‚              β”‚
β”‚                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
β”‚                                                      β”‚                      β”‚
β”‚                                                      β–Ό                      β”‚
β”‚                                               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”             β”‚
β”‚                                               β”‚   User       β”‚             β”‚
β”‚                                               β”‚   Installs   β”‚             β”‚
β”‚                                               β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β”‚                                                      β”‚                      β”‚
β”‚                                                      β–Ό                      β”‚
β”‚                                               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”             β”‚
β”‚                                               β”‚   Browser    β”‚             β”‚
β”‚                                               β”‚   Restarts   β”‚             β”‚
β”‚                                               β”‚   Updated!   β”‚             β”‚
β”‚                                               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β”‚                                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Manual Update ​

If auto-update fails or you prefer manual:

Linux (.deb) ​

bash
sudo apt update
sudo apt upgrade nothing-browser

Linux (tar.gz) ​

bash
# Download new version
wget https://github.com/BunElysiaReact/nothing-browser/releases/download/v0.1.4/nothing-browser-0.1.4-linux-x86_64.tar.gz

# Extract
tar -xzf nothing-browser-*.tar.gz

# Replace old binary
mv nothing-browser-*/nothing-browser ./nothing-browser
chmod +x nothing-browser

Windows ​

  1. Download new .zip from Releases
  2. Extract
  3. Replace old .exe

macOS ​

  1. Download new .dmg from Releases
  2. Drag to Applications
  3. Replace old version

Disabling Auto-Update ​

Auto-update is always enabled in the UI version. To disable:

Option 1: Use offline version ​

Download the binary and disconnect from network.

Option 2: Block GitHub API ​

bash
# /etc/hosts
127.0.0.1 api.github.com

Option 3: Use tar.gz and don't update ​

The tar.gz version doesn't force updates.


Shipping a New Release (For Maintainers) ​

Step 1: Commit Changes ​

bash
git add .
git commit -m "feat: what changed"

Step 2: Create Tag ​

bash
git tag v0.1.4
git push origin v0.1.4

Step 3: GitHub Actions Builds ​

PlatformBuild TimeOutput
Linux~10 min.deb, .tar.gz
Windows~15 min.zip, .exe
macOS~20 min.dmg, .tar.gz

Step 4: Release Published ​

GitHub Actions automatically:

  1. Builds all platforms
  2. Creates a GitHub Release
  3. Attaches all assets
  4. Updates the "latest" tag

Step 5: Users Get Notified ​

Within 6 hours (or on next launch), users see the update notification.


Troubleshooting ​

Update Check Fails ​

Error: Failed to check for updates

Solutions:

  • Check internet connection
  • GitHub may be blocked in your region
  • Firewall may block API access

Download Fails ​

Error: Download stuck or fails

Solutions:

  • Check disk space
  • Check write permissions
  • Retry download
  • Use manual update

Install Fails (.deb) ​

Error: Failed to replace binary

Solution: Ensure pkexec is installed:

bash
sudo apt install policykit-1

Install Fails (tar.gz) ​

Error: Permission denied

Solution: Binary location must be writable:

bash
chmod +w ./nothing-browser
# Or move to writable location

Version Shows Wrong After Update ​

Solution:

  1. Close browser completely
  2. Restart
  3. Check TECH HOUSE tab again

Update Security ​

ConcernHow It's Addressed
MITM attacksGitHub API over HTTPS
Corrupted downloadsChecksum verification
Fake releasesGitHub signature verification
Malicious binariesOnly from official GitHub

Next Steps ​


Nothing Ecosystem Β· Ernest Tech House Β· Kenya Β· 2026

MIT Licensed | Built by Ernest Tech House Β· Kenya Β· 2026