no_human
no_human
从工单到经过审查的拉取请求。免费开源,运行在你的机器上。
getnohuman.com · 快速入门 · 文档 · 观看一个冲刺周期的工作演示
▶ 观看循环演示 — 一个工单进入,一个经过审查的拉取请求输出;整个循环只需 57 秒。
你可以信赖的 AI 编码工厂:
任何代码之前先有计划,基于工单以及它在你的仓库中发现的内容。
对抗性审查。 使用不同的模型、全新的上下文、只读工具,并被要求反驳“已完成”。你会得到一份引用文件和行号的通过/失败清单——绝不是一个数字化的自我评分。
防篡改保护。 删除的测试、新增的跳过、被变成同义反复的断言——在审查者花费任何 token 之前就会被阻止。
证明修复解决了问题。 对于缺陷修复,作为证据提供的测试必须在合并基线上失败,并在新代码树上通过——复现门强制执行这一点,你也可以要求对每个更改都这样做。
你的测试会运行,在本地运行,也可以选择通过你的 CI 运行。
诚实的停止。 当它无法完成时,它会带着一个具体的问题停下来,而不是编造一个看似合理的差异。
安装
无论你选择哪种安装方式,你都需要一个 Claude 凭据:来自 claude setup-token 的 OAuth 令牌(个人订阅或企业版),因此请先安装 Claude Code CLI — 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 以进入 shell:你的泳道、实时事件流,以及一个你可以用纯英语描述任务的输入框。下面的每个命令仍然有效。
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,默认关闭)后,工单会随任务一起移动——按状态类别、类型或你指定的标签匹配,绝不使用硬编码的转换 ID——并获取 PR 链接;需要人工处理的任务会被评论,而不会被转换。GitHub 和 GitLab 问题可以通过 URL 作为任务导入,PR 或 MR 会在你自己的主机上打开;Slack 和 Teams 会在任务需要你时收到消息;Jenkins 和 CircleCI 可以运行你的测试层并门控循环。每个的配置:docs/adapters.md。
观看 Jira 流程的端到端演示 — 从 Jira 看板同步的工单,经过范围界定、实现,并作为通过审查的拉取请求交付(点击观看包含每个步骤的完整视频):

MCP 服务器 — 从你已使用的代理那里分配工作
no_agent 附带一个 MCP(模型上下文协议)服务器:一个基于官方 Python MCP SDK 构建的 stdio 桥接,允许 Claude Code、Cursor 或任何 MCP 客户端将工作文件交给你的本地 no_agent 并检查其状态。
nh mcp-serve # the MCP server, over stdio两个工具,仅此而已:
工具 | 它的作用 |
| 提交一个任务。no_agent 随后会规划它、编写更改、运行你的测试、让第二个模型审查它,并打开拉取请求。 |
| 返回该任务的当前状态 — 状态、尝试次数、以及 PR 链接(如果有的话)。 |
它只与你自己在 http://127.0.0.1:8420 上的 no_agent 通信,除此之外没有其他:没有认证,因为该地址是 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欢迎提交问题和拉取请求;提交前请运行 uv run pytest -q。
如果 no_agent 为你节省了一个审查周期,一颗星可以帮助其他人找到它:
许可证
MIT — 请参阅 LICENSE。许可证涵盖代码,但不涵盖名称:TRADEMARK.md 是关于使用“no_agent”和徽标的政策。打包二进制文件会带来源码树所没有的义务,这些义务列在 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