Skip to main content
Glama

no_human

Vom Ticket zum geprüften Pull Request.Kostenlos und Open Source, auf deiner Maschine.

latest release CI python 3.12+ license MIT

getnohuman.com · Schnellstart · Dokumentation · Sieh es einen Sprint lang arbeiten

Download für macOS Download für Windows Download für Linux

▶ Sieh die Schleife — ein Ticket rein, ein geprüfter Pull Request raus; die ganze Schleife in 57 Sekunden.

Die KI-Coding-Fabrik, der du vertrauen kannst:

  • Ein Plan vor jedem Code, aus dem Ticket plus dem, was sie in deinem Repository findet.

  • Eine gegnerische Prüfung. Ein anderes Modell, frischer Kontext, Nur-Lese-Werkzeuge, angewiesen, „fertig“ zu widerlegen. Du bekommst eine Bestanden/Nicht-bestanden-Checkliste mit Datei- und Zeilenangabe — nie eine numerische Selbstbewertung.

  • Ein Manipulationsschutz. Gelöschte Tests, neue Skips, eine in eine Tautologie verwandelte Assertion — blockiert, bevor ein Prüfer-Token ausgegeben wird.

  • Beweis, dass der Fix den Fehler behoben hat. Bei einem Bugfix müssen die als Beleg angebotenen Tests an der Merge-Basis fehlschlagen und im neuen Baum bestehen — das Reproduktions-Gate erzwingt das, und du kannst es für jede Änderung verlangen.

  • Deine Tests laufen, lokal und optional über dein CI.

  • Ein ehrlicher Stopp. Wenn es nicht fertig wird, parkt es mit einer konkreten Frage, statt einen plausiblen Diff zu erfinden.

Installation

Wie auch immer du installierst, du brauchst eine Claude-Anmeldedaten: ein OAuth-Token von claude setup-token (persönliches Abo oder Enterprise), also installiere zuerst die Claude-Code-CLI — npm install -g @anthropic-ai/claude-code, oder curl -fsSL https://claude.ai/install.sh | bash. Die Desktop-App ruft diese CLI auch für jede Aufgabe auf. Um stattdessen direkt an Anthropic zu zahlen, setze llm.auth_mode: "api_key" und lege deinen ANTHROPIC_API_KEY in ~/.no_human/.env ab.

Eine Zeile (CLI + Board)

uv tool install no-human   # or: pipx install no-human — the wheel ships the board
nh init && nh doctor       # token, config, first repo; then prove the install is real

Desktop-App

Download für macOS Download für Windows Download für Linux

Jede Version liefert eine SHA-256-Summe neben dem Artefakt. Plattformhinweise und die Erststart-Anleitung: docs/quickstart.md.

Aus dem Quellcode

git clone https://github.com/no-human-ai/no_human.git && cd no_human
uv sync                 # installs the `nh` entry point into .venv
(cd web && npm install && npm run build)   # builds the board (cold first install can take minutes)
uv run nh init          # token, config, first repo (about 2 minutes)
uv run nh doctor        # verify the install is real before relying on it

Der web-Build ist nicht optional, wenn du das Board willst: Ein Quellcode-Checkout liefert kein web/dist, also liefert nh start ohne ihn nur die API und rendert keine Oberfläche. Erfordert Python 3.12+, uv, git und Node mit npm für den Board-Build.

Related MCP server: letmediff

Eine Aufgabe ausführen

Führe nh ohne Argumente für die Shell aus: deine Spalten, einen Live-Ereignis-Feed und eine Aufnahme, der du eine Aufgabe in einfachem Englisch beschreibst. Jeder Befehl unten funktioniert weiterhin.

nh                                   # the shell
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>                       # the reviewer's evidence checklist
nh diff <id>                         # the diff it wants to ship
nh approve <id>                      # your approval squash-lands the PR (git.approve_identity)
nh reject <id> --reason "..."        # send it back with feedback

Integrationen

Richte no_human auf den Tracker aus, den du bereits nutzt, und es zieht die Tickets auf dein Board — ein Tracker-Filter lebt in deiner Konfiguration, nie im Text einer Aufgabe selbst, und ein Transportfehler wird protokolliert und beim nächsten Tick erneut versucht, statt den Pool zum Absturz zu bringen.

Tracker

Wie Tickets ankommen

Filter, den du konfigurierst

Jira Cloud

Per REST search/jql abgefragt (HTTP Basic email:token)

integrations.jira.jql

Linear

Per GraphQL-API abgefragt

integrations.linear.team_key + state_types + label

monday.com

Per GraphQL v2 abgefragt

integrations.monday.board_id + status_column + todo_labels

Mit aktiviertem Rückschreiben (write_back, standardmäßig aus) bewegt sich das Ticket mit der Aufgabe — abgeglichen über Statuskategorie, Typ oder das Label, das du nennst, nie über eine hartkodierte Übergangs-ID — und bekommt den PR-Link; eine Aufgabe, die einen Menschen braucht, wird kommentiert, nie übergegangen. GitHub- und GitLab-Issues werden als Aufgaben per URL importiert, und PRs oder MRs öffnen sich auf deinem eigenen Host; Slack und Teams bekommen eine Nachricht, wenn eine Aufgabe dich braucht; Jenkins und CircleCI können deine Test-Ebenen ausführen und die Schleife absichern. Einrichtung für jede: docs/adapters.md.

Sieh den Jira-Flow von Anfang bis Ende — Aufgaben, die von einem Jira-Board synchronisiert, abgegrenzt, umgesetzt und als prüfungsbestandener Pull Request geliefert werden (klicke für das vollständige Video mit jedem Schritt):

Jira-Flow-Demo

MCP-Server — gib ihm Arbeit aus dem Agenten, in dem du bereits bist

no_human liefert einen MCP-Server (Model Context Protocol) mit: eine stdio-Brücke, aufgebaut auf dem offiziellen Python-MCP-SDK, die es Claude Code, Cursor oder jedem MCP-Client ermöglicht, Arbeit mit deinem lokalen no_human zu erfassen und zu überprüfen.

nh mcp-serve        # the MCP server, over stdio

Zwei Werkzeuge, und nicht mehr:

Werkzeug

Was es tut

task_add(title, description, repo_path)

Legt eine Aufgabe an. no_human plant sie dann, schreibt die Änderung, führt deine Tests aus, lässt ein zweites Modell sie prüfen und öffnet den Pull Request.

task_status(task_id_or_external_id)

Gibt den aktuellen Zustand dieser Aufgabe zurück — Status, Versuche, den PR-Link, sobald es einen gibt.

Es spricht mit deinem eigenen no_human unter http://127.0.0.1:8420 und sonst nichts: keine Authentifizierung, weil diese Adresse localhost ist, und kein Dienst von uns dazwischen. Für Claude Code wird derselbe Server auch als Plugin geliefert — richte es auf plugins/no-human/ aus und die beiden Werkzeuge erscheinen in deiner Sitzung.

// .mcp.json
{ "mcpServers": { "no_human": { "command": "nh", "args": ["mcp-serve"] } } }

Dokumentation

quickstart.md

Von null zur ersten Aufgabe, pro Plattform

configuration.md

Jede Einstellung und jeder Standardwert

verification.md

Die Gates, die begrenzte Schleife, die Grenzen

security.md

Auth-Grenze, die Nie-Merge-Regel, Schutzmaßnahmen

blockers.md

Eskalation, Wake-Watcher, nh reply

adapters.md

Aufnahme, Kontext, VCS- und CI-Backends

eval.md

Goldener Satz, Replay-Bewertung, Schattenmodus

CHANGELOG.md

Was sich geändert hat, pro Version

Entwicklung

uv sync
uv run pytest -q
uv run nh --help

Issues und Pull Requests sind willkommen; führe uv run pytest -q aus, bevor du einreichst.

Wenn no_human dir einen Prüfzyklus erspart hat, hilft ein Stern anderen, es zu finden: GitHub stars

Lizenz

MIT — siehe LICENSE. Die Lizenz deckt den Code ab, nicht den Namen: TRADEMARK.md ist die Richtlinie zur Verwendung von „no_human“ und des Logos. Das Verpacken einer Binärdatei bringt Verpflichtungen mit sich, die der Quellbaum nicht hat, aufgelistet in THIRD-PARTY-NOTICES.md.

Available Tools

2 tools
task_addA

Create a no_human task via POST /api/tasks (source="mcp"). Returns compact JSON {"task_id": str, "source": str} — source is whatever the server actually stored (the "mcp" source is first-class, see module docstring).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
repo_pathYes
descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It does so by specifying the return format (compact JSON) and noting that the source is whatever the server actually stored, which informs the agent of potential variability. It also mentions the source is first-class, referencing module docstring, which adds context. However, it does not discuss side effects, error states, or idempotency, but given it's a creation endpoint, the info is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, two sentences, and front-loaded with the core purpose. Every sentence adds value: the first states the action and endpoint, the second clarifies the response format and a behavioral nuance. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is simple (3 required params, no nested objects), and there is an output schema (though not provided in the input), the description is fairly complete. It covers the endpoint, source handling, and return format. It could mention potential errors or idempotency, but for a POST creation endpoint, it covers the essentials. The absent annotation makes it carry more weight, but it handles that well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate. It explains that the 'source' parameter (implied by the endpoint) is set to 'mcp' and describes the response, but it does not provide specific details on 'title', 'description', or 'repo_path' beyond what's in the schema. However, it adds value by clarifying the 'source' semantics and response structure, which is useful for the agent. Since all parameters are required and self-explanatory from their names, the description's addition is reasonably helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: creating a no_human task via a specific endpoint and source. It clearly distinguishes from the sibling tool 'task_status' which presumably handles status queries, by focusing on task creation. It uses a specific verb ('Create') and specifies the resource ('task'), making it clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (to create a no_human task) but does not explicitly contrast with alternatives. Since there is only one sibling and no elaboration on when not to use it, it only provides moderate guidance. It does not mention any prerequisites or conditions for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_statusA

Fetch a task's full current state via GET /api/tasks. Resolves by task id (or unique id prefix) first; if that 404s, falls back to matching external_id across the task list (GET /api/tasks does not index by external_id, so this is a client-side scan). Returns the complete task object as compact JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_id_or_external_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the burden and discloses important non-obvious behavior: resolution by task id or unique prefix, fallback to a client-side external_id scan, and the reason for that fallback. This gives the agent accurate expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. Each sentence adds functional value: the endpoint, the lookup strategy, and the return format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter, presence of an output schema, and absence of annotations, the description is sufficiently complete. It covers the lookup method, fallback behavior, and return representation without needing to describe output schema fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only the parameter name and type with no description, and schema description coverage is 0%. The description compensates fully by explaining that the parameter accepts a task id, unique id prefix, or external_id and by detailing the resolution order.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a task's full current state via a specific endpoint. It uses a precise verb and resource, and the read-oriented purpose distinguishes it from the sibling task_add.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context for when to use the tool: whenever a task's current state is needed. It does not explicitly name alternatives or exclusions, but the intended use is evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.0
    • First observedtask_add
    • First observedtask_status

TDQS

A4.1/5.0

Scored across 2 tools

Disambiguation5/5

task_add creates a task while task_status retrieves the current state of a task; their purposes are entirely distinct with no overlap. An agent would not confuse which tool to call.

Naming Consistency4/5

Both tools share a consistent task_ prefix and use snake_case, so they form an obvious family. The minor deviation is that one second token is a verb (add) while the other is a noun (status), but at only two tools this is easy to parse.

Tool Count3/5

Two tools is on the thin side for a task-management server, though the narrow create-and-check scope keeps it acceptable. It falls in the borderline range rather than feeling egregiously over- or under-built.

Completeness3/5

The domain appears to be task management, and the server supports creation plus status lookup, which covers the core add-and-monitor workflow. Missing operations include list, update, cancel/delete, and resubmission, which are notable but work-around-able for a minimal no_human API.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers