Privacy-first local automation

Local-first browser task orchestration

Queue browser tasks, dispatch them to a local self-agent or LAN-connected agents, and keep screenshots, traces, and execution history under your control — no hosted control plane required for the current MVP.

Wails + Go + React Local SQLite Playwright fallback
Spec Studio Manager runtime dashboard showing agent health, queue, and activity
Real runtime dashboard screenshot from the shipped desktop app.

Problem

Browser automation gets messy when scripts become operations.

Failures hide across CI logs, local files, screenshots, and chat threads.

Playwright, Puppeteer, cron, terminals, and machines drift into fragmented workflows.

Operators need queue state, agent health, and execution evidence in one local view.

Solution

A desktop control hub for local browser work.

01

Queue browser tasks

Create structured tasks and deterministic local recipes instead of scattering scripts across terminals.

02

Dispatch to self or LAN agents

Start with the local self-agent, then add remote agents on your LAN when the workflow needs more machines.

03

Inspect execution evidence

Keep screenshots, traces, status, failure context, and execution history visible in one operator surface.

Who it helps

Built for small teams turning scripts into repeatable operations.

QA

Debug browser failures

Rerun deterministic recipes and keep failure evidence close to the queue instead of hunting through CI logs.

Ops

Run internal browser jobs

Move recurring Playwright or Puppeteer-style work from ad-hoc terminals into a visible local operator UI.

LAN

Coordinate local machines

Pair LAN-connected agents manually, watch machine readiness, and dispatch work without introducing a hosted broker.

Proof

Concrete MVP proof from the shipped desktop runtime.

  • Local SQLite source of truth for agents, tasks, executions, pairing, and runtime state.
  • Browser modes: simulate, donut, and local-playwright.
  • The current local Playwright smoke path runs without Donut entitlement, internet, or external DNS.
Recent executions panel showing browser task status and artifacts
Recent executions keep status, outputs, screenshots, traces, and failure context close to the queue.

Local trust

Operator state stays on machines you control.

01

Local source of truth

Queue state, runtime state, pairing records, and execution history live in local SQLite.

02

Local artifacts

Screenshots, traces, and support bundles are produced as files you can inspect before sharing.

03

LAN-first scale path

LAN-connected agents use WebSocket; the current MVP does not require a hosted coordination service.

Quick proof

Try the first proof locally.

Run the local Playwright smoke to prove the worker launches, executes a deterministic local page, and produces screenshot plus trace artifacts. Requires Node.js/npm and Chrome or Edge on your machine.

cd spec-studio-manager
npm install
npm run smoke:local-playwright
What you should see in a few minutes

status: "succeeded"

non-empty screenshotPath and tracePath values you can open locally

Honest scope

What it is not yet.

Not a full QA test-management platform or enterprise RPA replacement.

Not cloud sync, hosted browser infrastructure, or zero-setup SaaS.

Current practical browser scope is Chromium-oriented with deterministic smoke and operator-demo recipes.

Full auth and permissions are not shipped yet.

Open source / Free

Keep browser work local, visible, and under operator control.

View on GitHub