Skip to content
OldValenciaPublic

About

A modern, lightweight desktop application that provides unified access to multiple AI chat services through a sleek, always-on-top interface.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Spark — your favorite websites, one shortcut away

Download for Windows  ·  Watch Spark  ·  Take a look around  ·  Get started  ·  Troubleshooting  ·  Build it

Spark started with a shortcut on a spare mouse button: ask something, hide the window, come back to the same page. That's still the idea.

Keep ChatGPT, Claude, Gemini, Mistral, Perplexity, Copilot, or your own regular sites in a small desktop window. A question comes up, you open Spark, use the website, and put it away again. Your draft and scroll position stay with the page while Spark is running. On Windows you can bring a few Chrome extensions along, too.

Watch Spark

Sparky invites you to watch a short, silent tour

Open it, switch sites, find one by name, open a tab's menu, wander off to another website and come back, try a smaller window, open an extension, glance at the settings, and put it away.

A silent tour of Spark 0.3.6: switching between ChatGPT and Wikipedia, finding a site with Ctrl + Shift + L, a tab's menu, the bar above another website, window sizes, Dark Reader's popover, settings, and hiding
Recorded in Spark 0.3.6 with a separate, signed-out profile. MP4 · Still image

A quick tour

Illustrated guide: site tabs on the left, All sites in the grid, a central drag handle, then window size, options and hide

Meet Sparky, Spark's mascot. Sparky blinks, follows your pointer, and glances around when you leave it be. It turns its gears while a page loads, looks sad when a page can't load, and beams when a slow or broken page finally arrives. It cheers a new site and waves goodbye to a removed one, gasps when a site whisks you off to another website or a file is carried in, sways along while a site plays sound, and goes "shh" when you mute one. After a while untouched, it dozes off.

Click Sparky for a hello, but not too many times in a row. General → Reduce motion keeps Sparky still; Show Sparky lets it sit this one out. Sparky reacts only to what happens in Spark; it never reads the pages.

The tour and Sparky's cards are illustrations; the screenshots show the Windows app in 0.3.6. Click one for a closer look.

Your sites

Sparky points you to the grid for adding and organizing sites

Spark's searchable site list with edit buttons and reorder grips

Open the grid → Add any website. Give it a name and a full https:// address: AI services, notes, documentation, a translator — whatever you actually use. Search the list, edit with the pencil, or drag a grip to reorder; tabs can be dragged too.

Ctrl + Shift + L opens the list with its search ready, even while you're typing in a page. Switch with Ctrl + 1…8, or Ctrl + Tab.

A menu on every tab

Sparky shows that every site tab has its own menu

Wikipedia's tab menu with Back, Reload, zoom, Mobile version, Copy link, Open in browser, mute settings, Move left and right, Clear site data and Edit site

Right-click a tab, or press the keyboard's menu key. It works on any tab, not only the one on screen.

  • Back, Reload, and zoom. Each site remembers its own zoom.
  • Mobile version shows the layout the site gives a phone: handy for Instagram, X or YouTube in a tall, narrow window.
  • Copy link and Open in browser for the page you're on.
  • Mute site, always or only while Spark is hidden.
  • Move left / right, and Edit site…
  • Clear site data… signs you out of that one site; the others stay signed in.

Room for the page

Sparky introduces floating, docking and window sizing

Window size menu with always-on-top, outside-click hiding, Remember size for ChatGPT, the S, M and L presets, and docking

Drag the handle in the middle to move the window; double-click it to dock at the top. Resize by the edges, or pick S / M / L in the size menu. A preset's arrow saves the current size into it, renames it, or resets it.

Remember size for … gives the site on screen a size of its own: the window takes it whenever you open that site. Pick a preset and the site follows the preset; resize by hand and it keeps that exact size.

Pin Spark above other apps when you want it handy; hiding on an outside click is a separate choice.

When a site sends you elsewhere

Sparky promises to bring you back when a site takes you to another website

Wikimedia's portal opened from Wikipedia, with Spark's bar above it showing wikimedia.org, a cross, a plus and Open in browser

When a site takes you to another website, or opens a page of its own, a bar above it shows where you are:

  • ✕ goes back to the page you left on the site.
  • + keeps the page as a site of its own, with the name the website gives itself filled in.
  • Open in browser continues in your default browser.

Middle-click a link to send it straight to your default browser.

Sign-in windows and passkeys

Links and sign-in windows follow the website's normal browser behavior. Login windows share Spark's browser profile. Passkeys use the browser and Windows dialogs, with compatibility depending on the website and the installed WebView2 runtime.

The small stuff

Sparky points out the speaker on tabs, dropped files and the tray dot

  • Which site makes noise? A tab that plays sound shows a speaker, crossed out when the site is muted. Settings → Browser mutes all sites at once, or only while Spark is hidden.
  • Drop a file into any site. Hold a file from Explorer over a tab for a moment to open that site, then drop it into the page. Hold it near either end of the tabs to scroll to the others.
  • A dot on the tray icon when a site changes while Spark is hidden, for example when a chat finishes an answer. Its tooltip names the site.

Make it yours

Sparky's gear eyes point you to settings under the three-dot menu

Settings with the global shortcut and General preferences

Three dots → Settings holds the shortcut, startup behavior, sound, memory, backups, and the top-edge pill.

Extensions

Sparky introduces Chrome extensions installed from a store link

The Extensions window with a store link field and four installed extensions Dark Reader's popover in Spark showing en.wikipedia.org, the page open in Spark

Three dots → Extensions brings Chrome extensions into Spark on Windows. Paste a Chrome Web Store link or extension ID and press Install, or import a ZIP/CRX package. Click an extension's icon to open its popover; click it again to close it. Extensions see the site you have open, so Dark Reader or uBlock Origin act on that page.

Updates and limits

Check for updates updates store extensions in place; importing a newer package updates the others. Their settings and data are kept.

Extensions are experimental and need Windows x64. They are installed unpacked into your Spark folder and run in Spark's browser profile; each enabled extension uses some memory of its own. Popovers tell an extension which site is open, but the full Chrome toolbar is not there: toolbar button events, automatic activeTab access and side panels are not implemented, and password-manager autofill is not guaranteed. See extension usage and validation.

Start here

Sparky walks you through installing Spark and recording a shortcut

  1. Grab the Windows .exe from Releases and install it. Java is included.
  2. Choose a site and sign in as you normally would.
  3. Open Three dots → Settings → Global Hotkey and record your Toggle window shortcut.

On first launch, Sparky gives a three-step tour of the bar. You can skip it, and replay it later from Settings → Help → Show tutorial. Something not working as expected? Check troubleshooting and tips.

Windows x64 is the supported and tested target. Spark needs the Evergreen WebView2 Runtime; install it if it's missing. The websites use your own accounts and subscriptions.

Shortcuts and the top-edge pill
Do this Use this
Show or hide Spark Your global shortcut
Open Spark The tray or top-edge pill
Open a particular site Right-click the tray icon → Open site
Switch sites Ctrl + 1…8 by position, Ctrl + 9 for the last, Ctrl + Tab / Ctrl + Shift + Tab
Find a site by name Ctrl + Shift + L opens All sites with its search ready
Open a tab's menu Right-click the tab, or the keyboard's menu key
Reorder sites in the list Alt + ↑ / ↓ on a list grip
Sign out of one site Tab menu → Clear site data…
Move the window Drag the central handle
Dock at the top Double-click the handle, or Window size → Dock at the top
Resize, pin, or fill the screen Window size menu
Hide Spark The chevron at the right of the header
Zoom the website Ctrl + mouse wheel, Ctrl + +, Ctrl + −
Reset zoom Ctrl + 0

The pill stays visible by default. In Settings → Pill, enable Auto-hide top-edge pill to reveal it as you approach the top-center edge.

With auto-hide enabled, Quick upward gesture can open Spark directly on a fast upward movement. A slow approach previews the pill. Quick opening is off by default. Open on top-edge hover controls delayed opening when the pill is kept visible.

When you come back

A dozing Sparky keeps your place while Spark is hidden

Visited pages stay loaded until you remove the site or quit Spark. Switching sites or hiding the window keeps the live page: drafts, scrolling and ongoing requests. After a restart, Remember last site brings you back to the site and page you left.

Restored pages and memory

New visits appear once the document is ready; Show page is available while the rest loads.

After a restart, Remember last site restores saved page addresses from the configured site. Addresses containing ? query parameters or # fragments are skipped by automatic history, so temporary sign-in parameters are not written to preferences. Sites that identify pages only through those parameters return to the previous saved address or the configured start page. Drafts and conversations across restarts depend on what the website itself saves.

Each loaded website uses memory. Settings → Browser → Reduce background memory (off by default) lets Windows reclaim memory from pages once Spark has been hidden for a few minutes, while keeping them alive. The total depends on the sites you've opened. If the site takes a few seconds to appear when you reopen Spark, turn this setting off; see troubleshooting.

Where Spark keeps things, and what “Clear site data” does

Settings on Windows live here:

%USERPROFILE%\Documents\OldValencia\Spark\
├── app-config.json     Preferences and remembered pages
├── providers.json      Your site collection
├── *.json.bak          Previous readable configuration files
├── icons\              Site icons
├── extensions\         Imported extensions (one folder each)
└── logs\               Application logs

Settings → Backup → Export… saves your sites, their icons and preferences to a ZIP file for another PC; see moving Spark to another PC.

Clear site data… in a tab's menu clears that site's cookies and storage after confirmation; the other sites stay signed in. Settings → Browser → Clear site data clears cookies and website storage across Spark's whole browser profile. Both sign you out and reload the pages they clear, so finish or copy any unsent text first.

Build it

Sparky, with gear eyes, invites you to build Spark from source

Use JDK 25, with JAVA_HOME pointing to it. The Gradle wrapper is included.

git clone https://github.com/OldValencia/spark.git
cd spark

.\gradlew.bat run               # Run Spark
.\gradlew.bat test              # Unit and regression tests
.\gradlew.bat installDist       # Build an application distribution
.\gradlew.bat nativeTest        # Windows UI and real WebView2 tests
.\gradlew.bat createInstaller   # Windows installer with a trained AOT cache; requires WiX on PATH
.\gradlew.bat readmeCapture     # README video and screenshots; moves the real mouse
Outputs, platforms and further reading

Distributions go to build/install/Spark/, installers to build/installer/. Native tests use disposable profiles under build/native-tests/ and leave installed sessions alone.

macOS packaging and libraries for other targets are in the repository, but remain experimental. On macOS/Linux, use ./gradlew.

More detail: browser validation, P3 interactions, memory and background work, native libraries, extensions, README illustrations, README media.

Say hello

Sparky asks you to report anything that seems off

Found a bug, or have a small thing that would make Spark nicer to use? Open an issue. A screenshot and the steps that got you there help a lot.

You can also buy the developer a coffee through Buy Me a Coffee or Ko-fi.

Spark's own code and artwork are available under the MIT license. The browser bridge and bundled libraries retain their respective licenses; see third-party notices.

About

A modern, lightweight desktop application that provides unified access to multiple AI chat services through a sleek, always-on-top interface.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages