npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@revealui/harnesses

v0.16.0

Published

AI harness integration — CLI, content definitions, and CI gates; the coordination daemon lives in RevDev.

Downloads

3,544

Readme


title: "@revealui/harnesses" description: "AI harness coordination for RevealUI - enables multiple AI coding tools to work on the same codebase safely and in parallel." visibility: public status: verified audience: user

@revealui/harnesses

Commercial package - requires a RevealUI Pro license. Free to install and evaluate; a license key is required for production use.

AI harness coordination for RevealUI - enables multiple AI coding tools to work on the same codebase safely and in parallel.

Features

  • Multi-Harness Coordination: Cursor, OpenCode, and RevealUI agent adapters with conflict detection; Claude Code / VS Code via hooks and content generators
  • Workboard Protocol: Shared .claude/workboard.md for session tracking and file reservations
  • Auto-Detection: Discovers installed harnesses via PATH and running processes
  • Config Sync: Portable config backup to external drives (DevPod/LTS)
  • Session Identity: Detects parent environment (Zed, Cursor, terminal) via process chain

The JSON-RPC coordination runtime (the daemon that serves session.*, mail.*, files.*, tasks.*, events.* over ~/.local/share/revealui/harness.sock) lives in the RevDev daemon, not in this package — see the daemon-ownership ADR (2026-07-25). This package is the CLI, the content-definition layer, and the ./gates module that a fail-closed merge-authorization dependency in the private repo consumes.

Architecture

packages/harnesses/src/
├── adapters/       # AI tool adapters (Claude Code, Copilot, OpenCode, Cursor) — incubating
├── config/         # Config path resolution and SSD sync
├── content/        # Canonical rules/commands/agents/skills + generators
├── gates/          # CI guardrails (guardrail-2 verdict parser, doc-currency shared rules)
├── manager/        # .revealui project manager (equal vendor adapters)
├── detection/      # Auto-detect installed/running harnesses — incubating
├── registry/       # Lifecycle management of adapters — incubating
├── server/         # inference-service.ts only (in-process; no HTTP/socket server here)
├── types/          # HarnessAdapter contract, commands, events
├── workboard/      # Multi-agent workboard primitives — incubating
└── cli.ts          # CLI + RPC client (dispatches to the RevDev daemon's socket)

Project manager (.revealui)

All vendors (Claude, Grok, Cursor, OpenCode, VS Code, native agent) are equal adapters. Shared policy is not owned by any vendor home.

| Layer | Role | |-------|------| | Package definitions (src/content/definitions) | Build-time SSOT | | .revealui/ (manager.json + content/) | On-disk project manager | | .claude / .cursor / .opencode | Thin vendor adapter stubs | | ~/.grok | Grok vendor cache (auth/sessions/UI). Hooks are deployed by RevKit rfg, not hand-copied. |

# Write manager.json + equal adapter content (manager tree + Cursor/OpenCode surfaces)
pnpm exec revealui-harnesses manager materialize
# writes: .revealui/manager.json + .revealui/content/* + .cursor/hooks.json
#          + .opencode/{agents,commands}/* + equal adapter stubs

# Verify manager present and valid
pnpm exec revealui-harnesses manager check

# Content only — default generator is the manager tree (not a vendor fork)
pnpm exec revealui-harnesses content sync
# equivalent:
pnpm exec revealui-harnesses content sync --generator claude-code

# Definition ↔ committed generator snapshot (CI lock, GAP-406)
pnpm --filter @revealui/harnesses content:snapshot:check
# After editing content/definitions/**, refresh hashes:
pnpm --filter @revealui/harnesses content:snapshot:write
# Local disk vs definitions (when .revealui/content exists):
pnpm exec revealui-harnesses content diff --check

content sync without --generator uses DEFAULT_CONTENT_GENERATOR_ID (claude-code). That generator emits into .revealui/content/ (the manager tree). Vendor trees stay adapters; do not full-copy hardlines into ~/.claude or ~/.grok.

Committed SHA-256 locks live in content-snapshots/<generatorId>.json. Unit tests and the local CI gate fail when definitions change without refreshing those files in the same PR.

CLI

# List available harnesses (dispatches to the RevDev daemon's socket)
revealui-harnesses status

# Sync harness config to/from SSD
revealui-harnesses sync claude-code push

# Print workboard state
revealui-harnesses coordinate

# Project manager (equal vendors)
revealui-harnesses manager materialize
revealui-harnesses manager check
revealui-harnesses content sync

Usage

Workboard Coordination

import { WorkboardManager, deriveSessionId } from '@revealui/harnesses/workboard'

const manager = new WorkboardManager('/path/to/repo/.claude/workboard.md')
const state = await manager.read()

// Register session
const sessionId = deriveSessionId('zed', state.agents.map((a) => a.id))
await manager.registerSession({
  id: sessionId,
  env: 'Zed/WSL',
  task: 'implementing feature X',
  files: ['src/feature.ts'],
})

Remote Gateway (HTTP)

Remote HTTP access lives in @revdev/daemon, not this package.

  • Implementation: revdev/packages/daemon/src/http-gateway.ts (revdev#328)
  • SSE ownership tickets: revdev#329
  • Opt-in: set daemon httpPort (default 0 = off)
  • Studio pairing: Settings → connection tab (pairWithDaemon)

The harnesses-side gateway twin and PGlite DaemonStore were deleted after the port landed (GAP-421 residual, 2026-07-29). Do not re-introduce a second HTTP server in this package.

Exports

| Subpath | Contents | |---------|----------| | @revealui/harnesses | Full API: adapters, registry, detection, config, protocol, inference service | | @revealui/harnesses/types | Type definitions: HarnessAdapter, commands, events, capabilities | | @revealui/harnesses/workboard | WorkboardManager, deriveSessionId, detectSessionType, file-locking | | @revealui/harnesses/content | Content definitions, manifest builders, generators (DEFAULT_CONTENT_GENERATOR_ID → manager tree) | | @revealui/harnesses/manager | Project manager schema, materialize, check (.revealui) |

Protocol adapter types, config generators, and the event normalizer are re-exported from the root @revealui/harnesses entry only (packages/harnesses/src/index.ts:1). The dedicated @revealui/harnesses/protocol and @revealui/harnesses/storage subpaths were removed (GAP-421; packages/harnesses/package.json exports map).

Development

# Run tests
pnpm --filter @revealui/harnesses test

# Type check
pnpm --filter @revealui/harnesses typecheck

# Build
pnpm --filter @revealui/harnesses build

Related Documentation

License

FSL-1.1-MIT (Fair Source — converts to MIT after 2 years). See LICENSE.