Shadewash beta

Your browser, in the mood you're in.

Shadewash reads the one thing Chrome already tells it — the tab you are on — and quietly shifts your New Tab to suit. Planning a holiday looks like a holiday. Debugging looks like debugging. Nothing you do is sent anywhere, because it cannot be.

  • No network requests, of any kind
  • Never reads your history
  • Never stores what you searched
  • 50 themes, blended by meaning

Check what YOUR extensions can see How it works

The short version

Every other "smart" browser extension gets smart by sending your browsing to a server. Shadewash does the whole job on your machine, in about half a millisecond.

Three separate things hold that up, because one would not be enough: the manifest's connect-src 'none', which Chrome enforces on its pages; a scan of every shipped file for fetch, XMLHttpRequest and WebSocket, which runs in the test suite; and a runtime guard that makes such a call throw if one is ever added. You do not have to trust us on the first — the Leak Check tab will find it, and it works on any extension, not just ours.

What you actually see

Three surfaces, and none of them ask you to do anything.

A New Tab page washed in warm turquoise and sand tones, with a clock and a search box.
New Tab. After a few searches about a trip, this is what opening a tab looks like.
The same New Tab page in a cool dark blue, in dark mode.
Dark mode. Same theme, same session, matching your system setting.
The Shadewash popup, showing the current theme, a reason line, Pin and Not this buttons, and a scrolling gallery of theme swatches.
The popup. Says why it picked what it picked, in words. Not this teaches it to stop.
The top of the Shadewash settings page: expression level from Off to Expressive, a colour scheme selector, and the ambient page glow section with its allowed-sites list.
Settings. Every switch, and further down, a plain-English account of every permission and why it is asked for.

Using it, step by step

There is no account, no onboarding and no tour. This is genuinely all of it.

  1. Install it, and carry on

    Nothing opens. No welcome tab, no "allow notifications", no checklist. The first sign you have it is the next time you open a New Tab.

  2. Search for something you were going to search for anyway

    Shadewash reads the address and title of the tab you are on. On a search page that is enough to tell that you are reading recipes rather than filing a bug.

  3. Open a New Tab

    The colours have moved. One line underneath says why — because "sourdough starter", "proving basket" in your search — so it is never mysterious.

  4. If it guesses wrong, tell it

    Click the icon, then Not this. It drops the theme and stops choosing that one on that site. Pin does the opposite: hold a theme until you unpin it.

  5. Tune how loud it is

    Settings has four levels from Off to Expressive. Subtle is a wash you half-notice; Expressive is unmistakable. You can also mute individual themes and block whole sites.

  6. Optional: colour the pages themselves

    Ambient glow lays one transparent layer over sites you list, and only those. It is off by default, and the permission for it is requested at the moment you switch it on — never at install.

Ambient glow, off and on

The same search results page, with glow off and at Expressive. The site's own colours, text and layout are untouched — this is one transparent layer laid on top, and nothing on the page is read.

A search results page for hawaii vacation packages, with ordinary white background.
Off. The default, and exactly what the site looks like without Shadewash.
The same search results page washed in warm sand and turquoise, the text and layout unchanged.
Expressive, on a site you listed. Off everywhere else, always.

What it never does

These are enforced by the manifest and by tests, not by a promise in a privacy policy.

It asks forWhich lets itIt is used for
tabsRead the title and address of your tabsThe only thing it knows. No page content, ever.
storageKeep data in the browserYour settings, the current theme, and a 50-entry log of host + matched words.
activeTabTouch the tab you are on, after a clickDrawing the optional glow.
scriptingInject code into pages it may touchThe same glow. One transparent layer, nothing read.
Host accessRead and change pages on sites you listRequested when you turn glow on, never at install.

Not requested, and never will be: browsing history, bookmarks, cookies, downloads, or the contents of any page. It is disabled in Incognito by the manifest and cannot be switched on there.

There is also a firewall, and it is not optional

Shadewash refuses to react to three things: anything illegal (drugs, violence, theft, fraud, hacking, evading the police), anything most people would call wrong whether or not it is illegal (cheating on a partner or in an exam, adult content), and anything that says someone is in trouble (self-harm, abuse, a crisis line, a funeral). It scores nothing, stores nothing, and leaves your theme exactly as it was — snapping to a neutral theme would itself tell anyone watching your screen that something was on it.

Everything else — a diagnosis, a mortgage, a job application, a date, a candidate, a faith — is ordinary life, and it is treated like any other page.

Questions people actually ask

Does it really make no network requests?

The manifest sets connect-src 'none', which means Chrome itself refuses any fetch, XHR or WebSocket the extension attempts. It is not a policy, it is the browser blocking it. Paste our manifest into Leak Check and you will see that line found and reported.

How does it understand a search it has never seen?

Two layers. A keyword matcher handles the obvious, with typo tolerance. Anything it does not recognise goes to a small word-embedding model that ships inside the extension, which places the search against 50 anchor themes by meaning and blends the nearest few into one palette. Both run on your device. Neither has anywhere to send a query.

Why does the extension page in Chrome look scary?

Because Chrome describes tabs as "read your browsing history", which is not what the permission does — it grants the title and address of open tabs, not the history database. Settings explains both warnings line by line. This is a good habit to have about every extension you install, which is why the Leak Check tab exists.

Is it finished?

No — it is beta, and detection is deliberately conservative. If it picks the wrong mood, use Not this, and if something is broken, the Feedback tab will help you write a report that is actually useful.