no_human
From ticket to reviewed pull request: a free, open-source AI coding factory that runs on your machine, with verifiable gates at every step.
Evidence shows deliberate design: CI is contents:read only, MCP binds localhost with no auth and no middle service, write_back defaults off, never_push_to list, human approve required before merge, SECURITY.md defines credential and boundary rules, cla-nudge never executes fork code. Deductions: the unauthenticated local API is justified only by localhost binding — a pointable weakness for same-machine processes; rollback is limited to the reject loop, no post-merge rollback mechanism is evidenced.
Dependency availability is carefully handled: bounded mcp requirement with a regression test, uv.lock, CI installs the wheel with a fresh PyPI resolution and asserts the bridge imports. Deductions: much of this is asserted in comments and README; the sample omits the product's core source and tests, so runtime failure paths beyond doctor/NOT RUN/TAMPER cannot be statically confirmed.
Audience is clear (developers with a Claude subscription, Python repos), platforms macOS/Windows/Linux, prerequisites (Python 3.12+, uv, Node) explicit with nh doctor self-check, intake filters live in config rather than task text. Deductions: capability limits mostly live in referenced but unsupplied files (verification.md, security.md); scoping like 'repro gate applies to Python bug fixes by default' is README assertion only.
Install notes are exhaustive (three paths, source-build pitfalls, wheel content guarantees), LICENSE complete with PEP 639 SPDX in pyproject, stable naming (no-human/nh dual entry points), trademark policy, SECURITY.md states single-maintainer response targets, CHANGELOG linked. Deductions: CHANGELOG.md, docs/, KNOWN_ISSUES.md are referenced but absent from the sample; pre-1.0 with main-only support; continuity rests on one maintainer.
Output usability is designed-in (pass/fail checklist with file and line, explicit NOT RUN, event-stream log, nh diff/review/approve chain); marginal value is a differentiated ticket-to-PR loop with independent review, tamper guard and repro gate; CI cost comments show cost awareness. Deductions: all claims are declarations and screenshots with no execution evidence the gates actually work; end-product quality depends on Claude credential spend, not quantified.
Claim traceability is strong: comments cite specific issues (#15/#19/#120), dates, quantified re-measurements (300/300 serial runs, byte-scans, +486 KB), README separates facts (event-stream records) from design intent, and the Japanese README defers to English. Cross-source corroboration: README wheel/board claims match CI's artifact assertions. Deductions: the load-bearing claims (tamper guard, reviewer independence, repro gate) ship no product source or tests in this sample, so static review can only take them on the project's own word.
- Static review is based on a partial file set: core agent source, docs/, CHANGELOG and product tests were not supplied; all safety and quality claims are unverified by execution, confidence is low.
- The local API (127.0.0.1:8420) has no authentication, relying only on localhost binding; any same-machine process or malicious local code can call tools like task_add — exercise caution on multi-user machines.
- The tool requires Claude OAuth credentials / an API key stored in ~/.no_human/.env; audit its credential read/write paths before use in high-value environments.
- Pre-1.0, supports only latest main, single-maintainer project with no SLA and no bug bounty; publisher identity is unverified.
- The repro gate applies to Python bug fixes by default; other languages or change types need repro_gate.mode: required for equivalent guarantees.
What does this agent do, and when should you use it?
no_human is a locally-run, open-source AI coding system that takes tickets from Jira, Linear, monday.com, or GitHub/GitLab and delivers pull requests that have passed an independent adversarial review. It ships as an nh CLI, a local board (default 127.0.0.1:8420), and a worker, driven by a multi-stage agent loop covering planning, coding, and review. The reviewer is a second model that never saw the coder's transcript and is instructed to refute 'done', returning a pass/fail checklist that cites file and line. Built-in guards include a mechanical tamper check (counting deleted tests, new skips, and tautological assertions) and a reproduction gate requiring evidence tests to fail at the merge base and pass on the new tree. When it cannot finish, it stops honestly with a specific question rather than inventing a plausible diff. An MCP stdio server (nh mcp-serve) lets Claude Code, Cursor, and other clients file work, and the same server ships as a Claude Code plugin.
The loop starts from tickets: it polls Jira Cloud via REST search/jql, Linear via GraphQL, and monday.com via GraphQL v2, or imports GitHub/GitLab issues by URL. Each ticket is scoped with you before work begins; the agent then produces a plan with checkable acceptance criteria from the ticket and what it finds in your repo, writes the change, and runs your tests locally or through your CI (Jenkins/CircleCI supported). Before a PR opens, three gates run: an independent model review producing a pass/fail checklist citing file and line; a mechanical tamper check where deleted tests, new skips, or tautological assertions must be justified against acceptance criteria or the attempt stops; and a reproduction gate where evidence tests must fail at the merge base and pass on the new tree (bound to Python bug fixes out of the box; repro_gate.mode: required binds every change). Run nh start to serve the board and worker on 127.0.0.1:8420; nh task add creates tasks from issue URLs, nh status / nh review / nh diff show progress and evidence, nh approve squash-lands the PR, and nh reject --reason sends it back with feedback. Blocked tasks park in the board's Needs answer lane with one specific question; with write_back enabled, tracker tickets move with the task and get the PR link.
- Engineering teams maintaining several repos who want Jira or Linear tickets turned into review-ready PRs while keeping human merge control (nh approve).
- Developers worried about AI coding tools silently deleting tests or faking passes, who want the tamper guard and reproduction gate enforcing evidence.
- Existing Claude Code or Cursor users who want to hand off tasks to a local no_human via MCP (nh mcp-serve or /plugin install).
- Python teams fixing bugs: the default configuration already requires the fix's tests to fail on the old code and pass on the new.
- PMs and engineers who want ticket status written back to the tracker (write_back) and Slack/Teams notifications when a task needs a human.
- Teams running parallel work: the board supports multiple tasks working concurrently, with a live event stream showing every gate verdict per attempt.
What are this agent's strengths and limitations?
- The review is adversarial and independent: a different model in a session that never saw the coder's transcript, required to refute 'done' with a pass/fail checklist citing file and line — never a numeric self-score.
- A mechanical tamper gate counts deleted tests, new skips, and tautological assertions before review; unjustified changes stop the attempt.
- The reproduction gate forces evidence tests to fail at the merge base and pass on the new tree, and PRs with no test command read NOT RUN, never blank.
- Runs locally on 127.0.0.1:8420 with no intermediary service; the MCP bridge talks only to localhost with no auth.
- Documented adapters for Jira, Linear, monday.com, GitHub/GitLab, Slack/Teams, and Jenkins/CircleCI.
- The reproduction gate binds only Python bug fixes out of the box; enforcing it on every change requires setting repro_gate.mode: required manually.
- Source installs require building the web frontend yourself (npm run build); skip it and nh start serves only the API with no UI, and cold installs can take minutes.
- Needs a local stack of Python 3.12+, uv, git, and Node/npm, plus a model API token configured during nh init — usage cost depends on the underlying model.
- Tracker write-back is off by default and, once enabled, requires configuring status-matching rules per tracker.
- The docs acknowledge limits: it stops when blocked or out of budget, so complex tasks still require human attention.
How do you install or deploy this agent?
Quickest (CLI + board): uv tool install no-human (or pipx install no-human), then nh init && nh doctor to set up your token, config, and first repo and verify the install. Desktop app: download from GitHub Releases (macOS) or getnohuman.com (Windows/Linux); each release ships a SHA-256. From source: git clone https://github.com/no-human-ai/no_human.git && cd no_human, then uv sync (installs the nh entry point), (cd web && npm install && npm run build) to build the board (source checkouts ship no web/dist — without it nh start serves only the API), then uv run nh init && uv run nh doctor. Requires Python 3.12+, uv, git, and Node with npm.
How do you use this agent?
Run nh with no arguments for the interactive shell (lanes, live event tail, plain-English task intake). Key commands: nh start (board + worker on 127.0.0.1:8420); nh task add https://github.com/org/repo/issues/42 --repo ~/git/repo; nh status (needs-you / working / waiting / done); nh review <id> for the reviewer's evidence checklist; nh diff <id> for the proposed change; nh approve <id> to squash-land the PR; nh reject <id> --reason "..." to send it back. Tracker filters live in config: integrations.jira.jql, integrations.linear.team_key + state_types + label, integrations.monday.board_id + status_column + todo_labels. MCP mode: nh mcp-serve exposes exactly two tools, task_add and task_status; Claude Code users can run /plugin marketplace add no-human-ai/no_human and /plugin install no-human@no-human-ai.