Skip to content

spool-lab/spool-daemon

Repository files navigation

Spool Daemon

Background sync for your captures — bookmarks, stars, saved posts from GitHub, Hacker News, Reddit, X, Xiaohongshu, and any community connector on npm.

Sister product of Spool. Spool focuses on agent-session search; Spool Daemon focuses on external-source capture and search. Both are made by spool-lab.

Spool Daemon home screen

Status: v0.1, local development. Not yet published to a public release channel.

What it does

  • Pulls items from external sources via installable connector plugins (GitHub stars, HN front page, Reddit saved/upvoted, X bookmarks, Xiaohongshu notes, Typeless, plus anything you pnpm add from npm).
  • Stores everything in a local SQLite database with full-text search.
  • Surfaces results in a Spool-style search UI.
  • Runs as a tray app — quietly syncing in the background on a schedule.

Everything stays on your machine.

Architecture

packages/
  app/             Electron app (React + Vite + Tailwind)
  cli/             `spool-daemon` CLI for connector management
  core/            Indexing engine + connector framework (SQLite + FTS5)
  connector-sdk/   Public plugin contract (@spool-lab/connector-sdk)
  connectors/      Six built-in connectors

DB lives at ~/Library/Application Support/Spool Daemon/spool-daemon.db.

Development

Requires Node 22+, pnpm 10+, macOS Apple Silicon.

pnpm install
pnpm rebuild:native:electron   # rebuild better-sqlite3 for Electron ABI
pnpm dev                       # starts the daemon in dev mode

If you switch between Node-side tests and Electron runs, rebuild better-sqlite3 for the matching runtime:

pnpm rebuild:native:node       # for vitest / core tests
pnpm rebuild:native:electron   # for Electron app

Build & install locally

pnpm dev:install:mac   # builds, installs to /Applications/Spool Daemon.app, launches

Or release a versioned local build:

pnpm release   # bumps patch, builds DMG/ZIP, tags locally (does NOT push)

CLI

@spool-lab/daemon-cli is a small companion CLI for managing connectors without opening the app. Build from source and run via the package bin:

pnpm -F @spool-lab/daemon-cli build
node packages/cli/bin/spool-daemon.js --help
Command Description
search <query> Full-text search across captures (-n, -p, --since, --json)
captures List recent captures (-n, -p, --json)
show <uuid> Print one capture in full
list [--json] List installed connectors
status [id] Daemon status (omit id) or one connector's detailed status
install <package> [-y] Install a connector plugin from npm
uninstall <id> [-y] [-f] Uninstall a connector plugin (-f to proceed while the app is running)
sync [id] [--reset] [--delay <ms>] Run a connector until fully synced (omit id to list available)
update [id] [--apply] Check for connector updates on npm; --apply installs them

Each subcommand has its own --help. The CLI shares the SQLite DB with the app (~/.spool-daemon/spool-daemon.db), so reads (search, captures, show, status, list) work while the app is running. Write commands (install, uninstall, sync, update) generally expect the app to be quit; uninstall -f is the explicit override.

Connector SDK

The plugin contract is published as @spool-lab/connector-sdk. Plugin authoring docs and examples live in this repository under packages/connector-sdk/README.md.

License

MIT

About

Background sync daemon for captures — extracted from Spool. Sister product focused on connector plugins (GitHub stars, X bookmarks, Reddit, HN, etc.)

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages