Browse the web
from the sofa.

SofaNav turns any website into a console-style menu. Your D-pad and stick move between links and buttons by where they sit on screen, like an Xbox or TV app. No mouse cursor to drag around.

This page runs SofaNav. Connect a controller and press any button.

Try it right here

This page runs SofaNav. Pick up a controller (Xbox, PlayStation, Switch Pro, Steam Deck…), press any button, and use the D-pad. Press Y to see where each direction goes. No controller?

A store shelf

A feed: each post is one stop. X enters it, B leaves.

Couch Gamer Finally reading the news from the sofa.
Deck Owner D-pad up, D-pad up, A. That's the whole UI.

A live chat: the right stick scrolls it

Feels like a console, works on any site

Websites weren't designed for controllers. SofaNav reads the page the way you see it and figures out what's left, right, up and down.

✚

D-pad that makes sense

Moves to the nearest thing in that direction, keeping rows and columns lined up. Pressing back the opposite way returns where you came from.

🕹️

Free-aim stick

Point the left stick at any angle and land on what's there. The graph view draws a pie of where every angle goes.

🗂️

Cards and panels

Posts, cards and scrolling panels are single stops you can skim past. X steps inside, B steps back out.

🪟

Inside iframes too

Embedded chats, comment boxes and widgets navigate as if they were part of the page. Frames from other sites are reached over a channel other pages can't fake: extension messaging, or your userscript manager's private storage (Tampermonkey or Violentmonkey).

♻️

Survives page changes

When a site swaps content or hides the button you pressed, focus lands on whatever is nearest instead of getting lost.

🎯

Keyboard-like repeat

Move once, pause, then repeat. Stick bounce and drift are filtered, so a flick moves exactly one step.

Install

Pick one. They run the same code.

Userscript

  1. Install Tampermonkey or Violentmonkey.
  2. Open the script; your manager offers to install it.
  3. Updates arrive automatically.
Install userscript

Browser extension

  1. Download and unzip.
  2. Chrome / Edge: chrome://extensions → Developer mode → Load unpacked → pick the folder.
  3. Firefox: about:debugging → Load Temporary Add-on → manifest.json.
Download extension

The extension also switches browser tabs with LB / RB.

Just try it

  1. Open any page and its developer console (F12).
  2. Paste the script and press Enter.
  3. It lasts until the page reloads.
Open the script

Controls

ButtonDoes
D-padMove to the next link or button in that direction
Left stickAim at any angle
AClick; on a text field, start typing
BBack: leave a text field, leave a card or panel, close a dialog or menu, then go back a page
Hold BGo back a page, even with a menu open
L3 (click the left stick)Mouse mode: a cursor for anything the D-pad can't reach. Stick moves, D-pad nudges, A clicks, right stick scrolls. L3 again to go back
XEnter a card or panel
YGraph view: off → arrows (or the stick pie) → whole page
Right stickScroll; on a focused panel, scrolls the panel
LT / RTPage up / page down
LB / RBPrevious / next tab (extension only)
ViewTurn SofaNav on or off
Menu ☰Debug report in the console (for bug reports)

Found a page where it gets lost? Press ☰ and open an issue with the console output.