no_human
no_human
От тикета до проверенного pull request.Бесплатно и с открытым исходным кодом, на вашей машине.
getnohuman.com · Быстрый старт · Документация · Смотрите, как это работает на спринте
▶ Смотрите цикл — тикет на входе, проверенный pull request на выходе; весь цикл за 57 секунд.
Фабрика ИИ-кода, которой вы можете доверять:
План до любого кода, на основе тикета и того, что он находит в вашем репозитории.
Состязательное ревью. Другая модель, свежий контекст, инструменты только для чтения, которой поручено опровергнуть «готово». Вы получаете чек-лист «пройдено/не пройдено» со ссылками на файл и строку — никогда не числовую самооценку.
Защита от подмены. Удалённые тесты, новые пропуски, утверждение, превращённое в тавтологию, — блокируется до того, как будет потрачен токен ревьюера.
Доказательство, что исправление устранило ошибку. Для исправления ошибки тесты, предлагаемые в качестве доказательства, должны падать на базе слияния и проходить на новом дереве — шлюз воспроизведения обеспечивает это, и вы можете требовать этого для каждого изменения.
Ваши тесты запускаются локально и, при желании, через ваш CI.
Честная остановка. Когда он не может завершить, он останавливается с одним конкретным вопросом, вместо того чтобы выдумывать правдоподобный дифф.
Установка
Какой бы способ установки вы ни выбрали, вам понадобятся учётные данные Claude: OAuth-токен из claude setup-token (личная подписка или корпоративная), поэтому сначала установите CLI Claude Code — npm install -g @anthropic-ai/claude-code или curl -fsSL https://claude.ai/install.sh | bash. Десктопное приложение также вызывает этот CLI для каждой задачи. Чтобы платить Anthropic напрямую, установите llm.auth_mode: "api_key" и поместите свой ANTHROPIC_API_KEY в ~/.no_human/.env.
Одна строка (CLI + доска)
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Десктопное приложение
Каждый релиз поставляется с SHA-256 вместе с артефактом. Примечания по платформам и инструкция по первому запуску: docs/quickstart.md.
Из исходного кода
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Сборка web не является опциональной, если вам нужна доска: в исходном коде нет web/dist, поэтому без неё nh start обслуживает только API и не отображает UI. Требуются Python 3.12+, uv, git и Node с npm для сборки доски.
Related MCP server: letmediff
Запуск одной задачи
Запустите nh без аргументов для оболочки: ваши колонки, живой поток событий и приёмная, где вы описываете задачу на простом английском. Все команды ниже по-прежнему работают.
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Интеграции
Укажите no_human на трекер, которым вы уже пользуетесь, и он подтянет тикеты на вашу доску — фильтр трекера живёт в вашей конфигурации, а не в тексте самой задачи, и ошибка транспорта логируется и повторяется при следующем тике, а не роняет пул.
Трекер | Как приходят тикеты | Настраиваемый фильтр |
Jira Cloud | Опрос через REST |
|
Linear | Опрос через GraphQL API |
|
monday.com | Опрос через GraphQL v2 |
|
При включённой записи обратно (write_back, по умолчанию выключено) тикет перемещается вместе с задачей — сопоставление по категории статуса, типу или указанной вами метке, никогда по жёстко заданному идентификатору перехода — и получает ссылку на PR; задача, требующая участия человека, комментируется, но не переводится. Задачи GitHub и GitLab импортируются по URL, а PR или MR открываются на вашем собственном хосте; Slack и Teams получают сообщение, когда задача требует вашего внимания; Jenkins и CircleCI могут запускать ваши тестовые слои и контролировать цикл. Настройка для каждого: docs/adapters.md.
Посмотрите полный цикл Jira — тикеты синхронизируются с доски Jira, уточняются, реализуются и доставляются как pull request, прошедший ревью (нажмите для полного видео со всеми шагами):

MCP-сервер — передавайте ему работу из агента, в котором вы уже находитесь
no_human поставляется с MCP-сервером (Model Context Protocol): мостом stdio, построенным на официальном Python MCP SDK, который позволяет Claude Code, Cursor или любому MCP-клиенту отправлять задачи вашему локальному no_human и проверять их статус.
nh mcp-serve # the MCP server, over stdioДва инструмента, и не больше:
Инструмент | Что делает |
| Создаёт задачу. Затем no_human планирует её, пишет изменение, запускает ваши тесты, отдаёт на ревью второй модели и открывает pull request. |
| Возвращает текущее состояние задачи — статус, попытки, ссылку на PR, когда она появится. |
Он общается с вашим собственным no_human по адресу http://127.0.0.1:8420 и ни с чем другим: без аутентификации, потому что этот адрес — localhost, и без каких-либо наших сервисов между ними. Для Claude Code тот же сервер поставляется как плагин — укажите на plugins/no-human/, и два инструмента появятся в вашей сессии.
// .mcp.json
{ "mcpServers": { "no_human": { "command": "nh", "args": ["mcp-serve"] } } }Документация
С нуля до первой задачи, по платформам | |
Каждая настройка и значение по умолчанию | |
Шлюзы, ограниченный цикл, пределы | |
Граница аутентификации, правило «никогда не сливать», защита | |
Эскалация, наблюдатель пробуждения, | |
Приём, контекст, бэкенды VCS и CI | |
Золотой набор, оценка воспроизведения, теневой режим | |
Что изменилось, по релизам |
Разработка
uv sync
uv run pytest -q
uv run nh --helpПриветствуются issues и pull requests; перед отправкой запустите uv run pytest -q.
Если no_human сэкономил вам цикл ревью, звезда поможет другим людям найти его:
Лицензия
MIT — см. LICENSE. Лицензия покрывает код, а не название: TRADEMARK.md — это политика использования «no_human» и логотипа. Упаковка бинарного файла накладывает обязательства, которых нет в исходном дереве, перечисленные в THIRD-PARTY-NOTICES.md.
Available Tools
2 toolstask_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).
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| repo_path | Yes | ||
| description | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id_or_external_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
v0.1.0- First observed
task_add - First observed
task_status
TDQS
Scored across 2 tools
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.
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.
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.
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
Related MCP Connectors
Turn described changes into reviewed pull requests: propose, triage, review, dependency audits.
Task management for people and autonomous AI developers: tasks, stories, work logs, pull requests.
Autonomous dev team steered from chat: plain-English requests in, tested merged PRs out.
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAutonomous AI software development pipeline that transforms tickets into production-ready code through planning, coding, testing, reviewing, and delivery stages.-
- FlicenseNot gradedqualityBmaintenanceA review handoff tool for agent-driven coding sessions that captures worktree diffs, creates shareable review URLs, and streams reviewer feedback back to the agent.1-
- AlicenseAqualityAmaintenanceEnables teams to measure their actual ticket-writing style from GitLab, Jira, or GitHub and check new or draft tickets against that learned house profile, with optional model-backed drafting.8MIT
- AlicenseNot gradedqualityCmaintenanceTurns bounded coding tasks into reviewable Git diffs using isolated worktrees, configurable worker models, and test execution.MIT