Skip to content

desertthunder/bsky-browser-gui

Repository files navigation

bsky-browser

A desktop app for searching your Bluesky bookmarks and likes.

I made this to stop having to CTRL/CMD+F and infinite scroll through my saved and liked posts.

What It Does

  • Authenticates with Bluesky using loopback OAuth.
  • Stores session state, tokens, and DPoP metadata in a shared SQLite database.
  • Indexes bookmarks and likes into a local FTS5-backed search index.
  • Lets you browse recent indexed posts or search by text with debounced live queries.
  • Supports source filters, configurable result limits, and server-side sorting.
  • Renders rich-text facets for links, mentions, and hashtags.
    • Includes desktop-side refresh progress events, partial-refresh warnings, and a frontend log viewer.

Screenshots

login screen showing the Bluesky handle field, authentication button, and dark desktop styling

filtered results

main search view showing indexed post count, search bar, source filter, and results table after a successful refresh

results table row with rendered rich-text facets such as links, mentions, and hashtags inside post text

bottom progress bar and log viewer during an active indexing run with info, warn, and error lines visible

Usage

  1. Launch the app.
  2. Enter your Bluesky handle and complete OAuth in the browser.
  3. Click Refresh to index bookmarks and likes.
  4. Use the search box to run FTS queries as you type, or leave it empty to browse recent posts.
  5. Filter results by All, Saved, or Liked, and adjust the result count from the Results selector.
  6. Click a row to inspect a post, or open About to view the current build version.
  7. Use Open on Bluesky in the reading pane to open the original post on bsky.app.

Keyboard Shortcuts

  • Cmd+K or Ctrl+K: focus the search input
  • Cmd+Shift+R or Ctrl+Shift+R: refresh indexed data
  • Cmd+L or Ctrl+L: toggle the log viewer
  • Esc: close the About dialog

Project

Requirements

Install

git clone <your-repo-url>
cd bsky-browser-gui
pnpm --dir frontend install

If you prefer task, the same setup is available through:

task init

Development

Start the desktop app with hot reload:

wails dev

Or:

task dev

To run the dev app with an explicit build tag:

task dev VERSION=v0.1.0

Useful checks:

go test ./...
pnpm --dir frontend check
task lint
task test
OAuth and Local Data
  • OAuth callback URL: http://127.0.0.1:<random-port>/callback
  • Default database path: ~/.config/bsky-browser/bsky-browser.db
  • Default log directory: ~/.config/bsky-browser/logs/

You can override paths with:

  • BSKY_BROWSER_DATA
  • BSKY_BROWSER_LOG
  • XDG_CONFIG_HOME
Project Structure
Notes
  • Session state is persisted so token refreshes and DPoP nonce updates survive app restarts.
  • Empty searches intentionally return recent posts instead of sending an invalid FTS wildcard query.

Production Build

Create a macOS app bundle:

task build

Verified output:

build/bin/bsky-browser-gui.app

To embed a specific build tag, override VERSION:

task build VERSION=v0.1.0

The desktop binary also reports its embedded build tag:

./bsky-browser-gui --version

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors