Verstak Core Platform + UI Shell — plugin runtime, capability registry, vault API, event bus, sync client
 
 
 
 
 
Go to file
mirivlad ca5290015a build: guard desktop release prerequisites 2026-07-12 21:38:24 +08:00
cmd/smoke-platform feat: milestone 5b — frontend bundle host + VerstakPluginAPI stub 2026-06-17 17:39:50 +08:00
docs feat: add workspace templates and tab visibility 2026-07-10 21:32:48 +08:00
frontend feat: show plugin diagnostics only in debug mode 2026-07-12 21:18:09 +08:00
internal feat: show plugin diagnostics only in debug mode 2026-07-12 21:18:09 +08:00
patches feat: intercept GDK button 8/9 for mouse back/forward navigation 2026-06-21 13:49:13 +08:00
scripts build: guard desktop release prerequisites 2026-07-12 21:38:24 +08:00
.gitignore build: guard desktop release prerequisites 2026-07-12 21:38:24 +08:00
AGENTS.md Implement milestone 6b workbench routing skeleton 2026-06-19 07:51:57 +08:00
LICENSE docs: prepare desktop alpha release 2026-07-12 21:21:45 +08:00
README.md docs: prepare desktop alpha release 2026-07-12 21:21:45 +08:00
go.mod feat: add canonical hostname normalization 2026-07-12 17:16:53 +08:00
go.sum feat: add scripts/build.sh, test.sh, check.sh + gofmt + go mod tidy 2026-06-16 12:11:55 +08:00
main.go fix: resolve plugin lifecycle dependencies deterministically 2026-07-10 04:03:08 +08:00
wails.json feat: plugin discovery, capability/contribution/permission registries, Plugin Manager UI 2026-06-16 12:00:43 +08:00

README.md

Verstak Desktop

Verstak is a local-first desktop workspace for files, notes, browser captures, activity and work journal entries. This repository contains the Go/Wails desktop host and UI shell; user-facing functions are delivered by official plugins.

Alpha software. Use a disposable vault while evaluating it. APIs, storage formats and packaging can change before the first stable release.

What the alpha does

  • keeps each workspace's identity independent of its current directory name;
  • keeps browser captures in a reviewable Inbox, with archive and restore rather than a destructive “remove from inbox” action;
  • records local file/note activity and, after review, turns it into journal entries without creating a workspace automatically;
  • accepts optional browser domain-time batches. The browser extension is opt-in: it sends only normalized domain names and bounded durations, never URLs, page titles, page contents, keystrokes or navigation history;
  • runs official plugins from a plugins/ directory next to the executable.

Components

Clone these repositories as siblings when building a complete local setup:

Repository Purpose
verstak-desktop desktop host and UI shell
verstak-official-plugins Files, Notes, Browser Inbox, Activity, Journal and other official plugins
verstak-browser-extension Chromium/Firefox capture and optional domain-activity extension
verstak-sdk plugin manifest schema and TypeScript API

Build from source (Linux)

Requirements: Go, Node.js with npm, Python 3, the Wails v2 build prerequisites, and the WebKitGTK development package for your distribution.

git clone https://git.mirv.top/verstak/verstak-sdk.git
git clone https://git.mirv.top/verstak/verstak-official-plugins.git
git clone https://git.mirv.top/verstak/verstak-desktop.git
git clone https://git.mirv.top/verstak/verstak-browser-extension.git

cd verstak-sdk && ./scripts/build.sh
cd ../verstak-official-plugins && ./scripts/build.sh
cd ../verstak-desktop
./scripts/install-dev-plugins.sh
./scripts/build.sh

The Linux executable is placed in build/bin/. Start it with --debug to display internal plugin-provider IDs and write diagnostic logs.

Release artifacts

Maintainers can create a Linux desktop tarball after the sibling repositories above have been built:

cd verstak-desktop
./scripts/release.sh v0.1.0-alpha.1

It writes release/verstak-desktop-linux-amd64-<version>.tar.gz and a matching SHA256SUMS file. The archive is self-contained: unpack it and run the included executable. Browser and SDK packages have their own release scripts in their repositories.

Privacy and activity tracking

The extension's passive domain tracker is disabled by default. Enabling it requires an explicit choice in the extension and lets the user maintain a domain exclusion list. Manual page, selection and link captures are separate actions; they enter Browser Inbox and never create a workspace or journal entry by themselves.

License

Copyright © 2026 Verstak contributors. Licensed under GNU AGPLv3 or later.