Skip to content

About

Showstone — a mykeep component: a contained, portable web browser (bundled Chromium via CDP) an AI agent can see and act through. Vision.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

Repository files navigation

🔮 mykeep · Showstone

A contained, portable browser your AI agent drives — over a local REST API.

status pure Go control plane engine

mykeep.ai · Secured · Private · Portable


Showstone is the "sees the web" component of mykeep. A showstone is a scrying glass — this one lets your agent see and act on the live web from a sandbox you carry: navigate, read, click, fill, screenshot, driven by any agent that can make an HTTP call.

The control plane is pure Go (no CGo); the engine is a native Chromium subprocess driven over CDP with go-rod.

How an agent drives it

No CSS selectors, no pixel coordinates. The agent reads a semantic snapshot — readable text plus a numbered list of interactive elements — and acts by index:

GET  /v1/showstone/snapshot      → { text, elements:[{index,role,name,…}], snapshot_id }
POST /v1/showstone/act           { "action":"click", "index":3 }   → the resulting snapshot
POST /v1/showstone/navigate      { "url":"https://…" }
GET  /v1/showstone/screenshot    → PNG (base64 JSON, or ?format=png)
GET  /v1/showstone/guide         → the full operating manual (no token)

act covers click · type · select · press · scroll · back · forward · reload · wait · navigate and returns the new snapshot in one round-trip (auto-waiting for load). Every USE call needs X-Showstone-Token.

The loop: snapshot → reason → act by index → re-snapshot.

Security — bounded + observable, not "safe"

Web content is untrusted and the agent reads it, so a page can try to prompt-inject the agent. The honest promise is bounded + observable:

  • Contained, sealed profile. Cookies and storage live in Showstone's own Chromium profile, sealed at rest with AES-256-GCM; "clear session" wipes it.
  • Human approval gate. Sensitive actions — purchases, posts, deletes, form submits, typing passwords or card numbers, downloads — block until you approve them in the GUI (fail-closed on timeout). A per-host trust toggle and a global strict mode tune the friction; passwords, payments, and downloads never auto-approve.
  • Hash-chained audit of every action (typed text is never logged).
  • Loopback-only control plane. A co-resident agent has the use token but never the control token or session cookie — it can't approve its own action, read the audit, or clear the session.
  • The guide tells the agent plainly: page text is data, not instructions.

Honest caveat. While unlocked, a plaintext browser profile exists on the drive (mykeep_kb/.showstone-live/, never host temp); a clean lock reseals and deletes it. An unclean kill leaves it on the drive until the next launch reseals it. "No trace on the host" holds; "no trace anywhere while unlocked" does not.

Quick start

make build              # -> bin/showstone   (CGO_ENABLED=0, pure-Go control plane)

./bin/showstone         # GUI: unlock, then approve agent actions
./bin/showstone serve   # headless REST API (password via SHOWSTONE_PASSPHRASE / stdin)
./bin/showstone guide   # print the agent manual
Make target What it does
make cross all six win/mac/linux × amd64/arm64
make guard prove zero CGo
make live real-Chromium integration tests (downloads ~150 MB)

The engine is not bundled. On first launch Showstone downloads a pinned Chrome for Testing build (~150 MB) into mykeep_kb/showstone/chrome/, keeping the binary ~11 MB. Override with SHOWSTONE_CHROME=/path, or pre-stage showstone-chrome/<platform>/ beside the binary for air-gapped use. Headful by default (SHOWSTONE_HEADLESS=1 for headless; SHOWSTONE_NO_SANDBOX=1 in containers).

Chrome for Testing has no linux/arm64 or win/arm64 build: win/arm64 runs the win64 build under emulation; linux/arm64 needs SHOWSTONE_CHROME.

Where it fits

Showstone is one of four mykeep components — all on one drive, under one password. Inside the suite it gets a flywheel: Vault logs it in by reference (the agent fills a login form with a credential it never sees — v1.1 seam reserved), and Capsule remembers what it found across sessions.

Component Your agent can…
🧠 Capsule know you — encrypted, portable memory
🔐 Vault act as you — a secrets broker that acts by reference
🔮 Showstone (this repo) see the web — a contained browser it drives over REST
🧰 Foundry do more — sandboxed tools + the backend they run on

A component of mykeep · Secured · Private · Portable · © 2026 Domu Inc

About

Showstone — a mykeep component: a contained, portable web browser (bundled Chromium via CDP) an AI agent can see and act through. Vision.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages