Turn agent work into reviewable engineering work.
Sealant gives coding harnesses a self-hosted workspace to work in, then turns every run into a structured record you can replay and review: code changes, checks, terminal output, artifacts, browser evidence, and the source trail behind the result.
$ curl -fsSL https://get.sealant.dev | shOpen source · Self-hosted · Bring your own harness · Replayable runs
Create a workspace
workspaces.createconst workspace = await sealant.workspaces.create({ repository: "acme/billing-service", harness: opencode(),})- Repository
- acme/billing-service
- Branch
- main @ a9f3c20
- Harness
- opencode
- Runtime
- node 20 · ubuntu 24.04
Make a run
harness.runconst run = await workspace.harness.run( "Round invoice totals once, after applying the discount.",)Audit the outcome
record.replayconst { changes, checks, artifacts, record,} = run const { files, processes, logs,} = workspace await record.replay()- Changes
- 3 files · +41 / −22
- Checks
- 14 passed
- Artifacts
- 4 retained
Each workspace is a container built from your repo — disposable, reproducible, and under your control. One runtime model for code agents, QA agents, CI repros, dependency updates, and custom harnesses.
Every run comes back with the evidence attached.
A Sealant run is more than a transcript. It keeps the change, the commands, the checks, the artifacts, the source trail, and the observations that explain how the result was produced.
- Full diff
- See exactly what changed, with file context and generated patches.
- Run audit
- Replay the ordered history of commands, output, processes, files, and artifacts.
- Evidence trail
- Link the result back to the sources, snapshots, browser traces, and commands used.
- Review questions
- Turn the ambiguous parts of a run into focused human review, not another wall of logs.
export async function checkout(cart) {- return charge(cart.total)+ if (cart.isEmpty) throw new EmptyCartError() return charge(cart.total)Build your agent on a runtime, not container glue.
Create a live workspace around a real repository, run the harness you already use, stream progress while it works, and keep the record after the workspace is gone.
Bring OpenCode, a custom harness, a CI worker, or your own agent loop.
const workspace = await sealant.workspaces.create({ repository: "github.com/acme/billing-service", harness: opencode(),}) const run = await workspace.harness.run( "Round invoice totals once, after applying the discount.",) await run.record.replay()A structured record, not a pile of logs.
One ordered, correlated, replayable stream — queried, not parsed. Every fact carries how it was captured.
Terminal I/O
Byte-exact command output, attached to the run that produced it.
File changes
Added, modified, deleted, and renamed files with reviewable patches.
Processes
Lifecycle, exit codes, signals, timeouts, and supervised child processes.
Artifacts
Reports, logs, screenshots, generated files, and other retained outputs.
Network activity
Outbound requests associated with the run that made them.
Browser evidence
Screenshots, DOM snapshots, navigations, and browser-generated network traces.
- Repository
- acme/billing-service
- Branch
- main @ a9f3c20
- Harness
- opencode
- Runtime
- node 20 · ubuntu 24.04
- Services
- postgres · redis
$ ssh workspace.ws_8m2k $ git diff --stat src/checkout.ts | 18 +++++--- $ pnpm test checkout✓ 14 tests passedThe workspace is a real development environment.
Sealant builds a container around a repository — code, dependencies, harness, processes, runtime commands, and services — and keeps it live and disposable. Use the SDK for automation or the console to create, inspect, restart, and enter workspaces.
- Create from a repo, a branch, or a commit
- Choose harness, OS, runtime, packages, and launch commands
- Stream lifecycle events and runtime status
- Open the live workspace over SSH, VS Code, or Cursor
- Stop, restart, expire, or garbage-collect when done
Open the live workspace whenever you want to inspect, guide, or extend the run.
One runtime. A family of products on top.
Each is its own open-source product on the public SDK — the same create → run → audit loop, focused on one job.
Mend
by Sealantissue → reviewed change → PR
Give a coding harness an engineering task and get back the change, the checks, the artifacts, and the full record — ending in a pull request.
Follow on GitHubWitness
by Sealantflow → evidence → test
Drive a real browser flow and keep the screenshots, DOM snapshots, and network evidence as a test you can actually trust.
Follow on GitHubRerun
by Sealantfailing job → replayable repro
Recreate a failed CI job in a clean workspace and keep the commands, logs, and failure state as a case you can replay.
Follow on GitHubBump
by Sealantupdate → checks → reviewed patch
Let a harness update dependencies, run the checks, and present the exact diff for review.
Follow on GitHubRun it where your code already lives.
Sealant is open-source and self-hosted. Run the daemon inside your own infrastructure, connect the harnesses you already trust, and build products on top of the same public SDK.
$ curl -fsSL https://get.sealant.dev | shA running Docker daemon with Compose v2 is the whole prerequisite — web on :3000, API on :4000, SSH gateway on :2222.
Open source
Inspect it, fork it, self-host it, and build on it.
Harness-neutral
Use OpenCode, custom agents, CI workers, or your own loop.
Product-ready records
Expose the run record through your own UI, PR flow, QA tool, or internal platform.
Give your next agent run a real environment — and a record worth reviewing.
Create a workspace, run a harness, replay the record — in minutes.
TypeScript SDK · self-hosted · open-source