New:Socket for Asana Is Now Available.Learn more
Get Started

humanish

Package Overview
Dependencies
Maintainers
1
Versions
81
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

humanish

Open-source-safe CLI for persona simulation, observer review, and public-safe feedback drafts.

Source
npmnpm
Version
0.82.1
Version published
Weekly downloads
16K
-24.86%
Maintainers
1
Weekly downloads
 
Created
Source

humanish

Synthetic user research for apps, CLIs, and agent-facing product flows. Open-source and public-safe.

Humanish runs studies. Realistic synthetic participants, each with its own goals, patience, and skill, actually use your product on hosted desktops while you watch. A study leaves verifiable evidence: screenshots, action traces, per-task completion funnels, participant outcomes with the denominator attached, and estimated cost lines. A fail-closed share-safety gate stands between that evidence and anything public, and the end of the pipeline is a public-safe feedback draft you can turn into a real issue. Committed study source lives under humanish/; run evidence lands under gitignored .humanish/.

Humanish Observer grid of a live four-persona drawDB study: four completed lanes, each showing its final full-desktop screenshot and outcome

A live four-persona study of drawDB, a public open-source database diagram editor, driven against a commit-pinned local checkout. Every lane is a real computer-use session on a hosted desktop; the captions are each persona's own final report. drawDB is the application studied; it is not a Humanish adopter or endorser.

Quickstart · Study your app · CLI reference · Limits and evidence

Install

Use Node.js 20 or newer, in a project directory:

npm install --save-dev humanish @e2b/desktop
npx humanish init --yes

@e2b/desktop is the optional peer for live hosted desktops. Install it alongside Humanish so the CLI can resolve it; a one-shot npx humanish@latest can miss the peer. The keyless preview needs only humanish.

Run a live study. Set the desktop and model keys with hidden prompts, then send one synthetic participant into the included drawDB study:

npx humanish keys set e2b
npx humanish keys set openai
npx humanish doctor
npx humanish lab preflight try-live
npx humanish run try-live
npx humanish observe --run latest --open

Existing E2B_API_KEY and OPENAI_API_KEY environment variables also work. try-live clones and studies drawDB, not your project. Its $2 cap covers estimated model spend; hosted desktop time is additional. Caps are checked between turns and are not provider billing ceilings. Allow a few minutes for the app to build and the participant to work. See budgets and privacy.

Preview without keys. To see the evidence format before connecting providers:

npx humanish run first-run
npx humanish observe --run latest --open

This generates an evidence preview with no provider spend. It does not open your app, run an actor, or validate product behavior. To study your own product, follow the complete own-app lab.

For coding agents, install the companion skill:

npx skills add danielgwilson/humanish --skill humanish

Source: skills/humanish/SKILL.md.

How It Works

humanish/     committed labs, personas, scenarios, policy, adapters
.humanish/   ignored run evidence, Observer output, reviews, local state

After a run, read its findings and verification grade:

npx humanish runs --json
npx humanish review --run latest --json
npx humanish verify --run latest --json
npx humanish feedback issue --run latest --repo owner/repo --format markdown

feedback issue prints a draft and requires share_ready evidence. A live run with raw screenshots can be valid local evidence and still fail that sharing gate. Read results explains the participant's report, task outcomes, costs, and how to turn a finding into an issue.

Public-Safety Boundary

Humanish is designed for public repositories and public issue queues. The boundary is three planks, each enforced where it actually holds:

1. This repo and the published package are kept public-safe by CI. Every push runs a public-surface scan (secret/key/path shapes, a sha256 binary-asset allowlist, over both tracked files and the packed npm payload) plus a full-history gitleaks scan. That protects what we ship; it does not scan your repo.

2. Persisted text is scrubbed for known values and secret patterns. Humanish uses literal matching for provisioned secret values and pattern redaction for secret-shaped text in logs, errors, and model narration. Environment provenance records variable names. These checks have coverage limits: unknown values, unrecognized formats, and implementation defects can escape them. Raw screenshots contain whatever was on screen. Use synthetic data, verify the bundle, and review the actual text and pixels before sharing.

3. Run bundles are local by default. Evidence lands under gitignored .humanish/, and no command publishes it for you. Sharing evidence (committing screenshots, pasting transcripts, attaching bundles to issues) is a deliberate act, and reviewing what you share is on you. Use synthetic personas and synthetic data so there is nothing sensitive to capture in the first place.

What the automated gate enforces. humanish verify scans public-bound artifacts and fails closed on secret, key, and token shapes and on known local path shapes. It does not yet detect free-form PII or PHI such as names, emails, phone numbers, dates of birth, or medical identifiers. Keeping those out depends on using synthetic data and on review, so redaction: passed means the automated secret and path scan found no matches, not that the artifact was certified free of PII or PHI. A first-class PII/PHI detector is on the roadmap (#108).

humanish verify --json also reports shareSafety.status:

  • share_ready: the verified bundle is eligible for public feedback drafts;
  • local_only: the bundle is valid local evidence, but should not be shared as-is (for example, full-fidelity raw screenshots are present);
  • blocked: the bundle failed verification or public-safety gates.

Feedback commands require share_ready. A valid local run can still be reviewed in Observer without being promoted into a public issue draft.

Commands

Use npx humanish from your project. Full arguments and options are generated from the shipped CLI in the command reference.

CommandPurpose
humanish init --yesScaffold study source and ignored runtime state.
humanish doctor --jsonCheck setup without exposing key values.
humanish lab list --jsonList available labs.
humanish lab inspect <lab> --jsonRead a lab before running it.
humanish lab preflight <lab> --jsonCheck configuration and route warnings.
humanish run <lab>Run the named preview or live study.
humanish watch <lab>Run a lab with an attached Observer.
humanish runs --jsonList local run history.
humanish review --run latest --jsonRead an existing run's evidence.
humanish verify --run latest --jsonCheck evidence and share-safety gates.
humanish feedback issue --run latest --repo owner/repoPrint an eligible feedback draft.

Exit Codes

CodeMeaning
0Success.
1Commander usage error: unknown command, unknown option, or a missing/invalid argument.
2Humanish domain or validation failure. Check the JSON envelope's error.code for detail.
128+NTerminated by signal N: 130 for SIGINT, 143 for SIGTERM, 129 for SIGHUP.

The Terminal Surface

humanish tui is for a person browsing labs and runs. It needs Node 22+ and an interactive stdin/stdout, and refuses detected coding-agent sessions even with a TTY. Agents should use lab list --json, lab inspect <lab> --json, and runs --json. Read TUI behavior and JSON alternatives.

Serve the Library

humanish serve serves your run library on loopback. The Observer and terminal guide covers local viewing, authenticated remote access, and share-safe public exposure.

Watch a live run from your phone

See authenticated live viewing.

Lab Manifests

See the lab manifest reference for source directories, route selection, and ignored private labs.

Computer-Use Labs

The computer-use reference covers subjects, screenshots, devices, mobile emulation, stop rules, dwell windows, and failed-lane reruns. The cost model explains model selection, dated estimates, and study/per-participant caps.

Mobile viewport and touch flags do not certify gesture equivalence. The 2026-09-05 input-conformance correction qualifies the historical phone-lane results: they describe Humanish's measured input path, not established physical-device app behavior.

Adapters: drive a local app via its JS state contract (no E2B, no vision)

See state-driven local adapters.

Browser Scenario Manifests

See scripted browser scenarios for executable steps against a running local app.

A First Live Run Without a Provider API Key

A signed-in local Codex or Claude Code can supply the participant's model. It consumes your existing plan; E2B still requires a key and bills for desktops.

Three Roles

The researcher declares the study, the participant tries the product, and the stakeholder reads what happened. Three roles explains the design; the email-gated signup receipts show a completed two-participant study and a reported keyboard-accessibility finding.

Maintainer OSS Meta-Lab Example

The bundled oss lab is a dry-run contract. Live OSS meta-lab execution is unavailable until repository instructions have an isolated credential boundary. See the maintainer reference.

Telemetry

Humanish collects anonymous command usage by default, excluding labs, subjects, personas, paths, and evidence. humanish telemetry disable or DO_NOT_TRACK=1 turns it off. See TELEMETRY.md for the exact fields.

Development

pnpm install
pnpm check
pnpm public-surface:scan
pnpm pack:dry-run

Local dogfood:

pnpm humanish:watch
pnpm humanish:verify
pnpm humanish:feedback
pnpm humanish:lab:list

Docs

Dated design documents may preserve historical mechanisms. Start with the current goals and the executable CLI when checking what is supported.

Release Status

The package is published on npm. Publishing a new version requires explicit maintainer authorization; see the release procedure.

Keywords

agent-harness

FAQs

Package last updated on 05 Sep 2026

Related posts