You have the idea. Claude builds and ships it.
human is an open-source CLI that runs Claude Code inside a secure devcontainer, wired into your tracker, docs, designs, and analytics. One command takes a ticket from idea to shipped code. You review the outcome, not every diff.
Monitor running agents, token usage, tracker issues, and pipeline state in real time. One view for everything.
Just works. OAuth, Claude subscriptions, MCP, browser access, Chrome Bridge, firewall — all configured out of the box.
Connectors for every source. Cross-tracker and Notion search, local fast index. Your AI sees everything it needs.
Ideate, plan, execute, review. One command runs the full pipeline from rough idea to shipped code.
In manufacturing, a dark factory runs with the lights off — the machines don’t need them. In software, it’s the same idea: AI agents write the code, test it against scenarios they’ve never seen, and ship it. No one reviews diffs line by line.
But the lights aren’t off everywhere. Someone still has to define what to build, feed the factory real context, set the policies, and decide when an outcome is good enough. That work stays human.
That’s what human is. It’s the part of the dark factory where people belong:
Claude runs the line. You stay on intent. The factory handles the rest.
For the full story — origin, five levels, StrongDM example, critiques — read What is a Dark Software Factory?
## Brew
brew install stephanschmidt/tap/human
## mise
mise use -g github:StephanSchmidt/human
## Go
go install github.com/stephanschmidt/human@latest
One command sets up a fully secured devcontainer with daemon, Chrome proxy, firewall, and Claude Code integration.
human init
# Configure services, generate devcontainer.json, install Claude Code skills
human daemon start
devcontainer up --workspace-folder .
human can be used as a standalone CLI with any Coding agent to easily connect to Jira, Linear, Github and other data sources. It is much more powerful when used with a devcontainer, where it connects to an outside human server (same binary) to connect to those data sources, act as a firewall/proxy and lets Claude Code connect to Chrome from inside the container.
Claude Code Jira, GitHub, GitLab, Linear, Azure DevOps, Shortcut, and ClickUp integrations. One CLI, same commands.
Claude Code Notion and ClickUp Docs integration. Search, page reading, databases, wikis. Your AI reads your docs.
Claude Code Figma integration. Files, components, comments, export. Design-to-code without screenshots.
Claude Code Amplitude and Sentry integration. Events, funnels, retention, cohorts. Error tracking and issue triage.
Telegram bot messages as a Claude Code task inbox. Poll, process, and acknowledge — your AI agent handles user requests end to end.
Built-in Claude Code skills for the full lifecycle: /human-ready, /human-plan, /human-execute, /human-review, /human-bug-plan, /human-findbugs, /human-security.
95% fewer Claude Code tokens vs raw APIs and MCP servers — stay under your daily limit.
.env secret protection for AI agents. Stored on the machine, never touch the AI.
HTTPS proxy and firewall for Claude Code in devcontainers. Daemon mode, transparent forwarding, outbound traffic control.
Use Chrome inside a devcontainer with Claude Code. Your AI agent can browse and inspect — even in a container.
MCP OAuth authentication in devcontainers. The daemon proxies MCP authentication to the host browser — no workarounds needed.
One install gives your AI agent superpowers across your entire toolchain.
human init — one command configures every
connector, every project, every developer.
No more “works on my machine.” Every developer gets identical connectors, skills, and config from day one.
We track API changes so you don’t. Update human, and every connector updates with it.
Every connector is tested together. No broken combinations, no dependency hell, no surprises after upgrades.
No MCP hunting, no README roulette, no stitching tools together. The framework ships complete.
New team member? One install, one init. They’re shipping with full toolchain access before lunch.
Intent in. Outcomes reviewed. The line runs between.
Stop assembling your stack. Start specifying the work.
human init — one command setupJira CLI · GitHub CLI · GitLab CLI · Linear CLI · ClickUp CLI · Shortcut CLI · Azure DevOps CLI · Notion CLI · Sentry CLI
MCP servers dump raw API responses into your context. human extracts signal, discards noise. Stop hitting your daily token limit by lunch.
Title: Implement SSO
Status: To Do
AC:
- Works with SAML
- Login redirect ok
- Error handling
# List issues (JSON by default)
human jira issues list --project=KAN # Jira
human github issues list --project=octocat/hello-world # GitHub
human gitlab issues list --project=mygroup/myproject # GitLab
human linear issues list --project=ENG # Linear
human azuredevops issues list --project=Human # Azure DevOps
human shortcut issues list --project=MyProject # Shortcut
human clickup issues list --project=901234567 # ClickUp
# Get a single issue as markdown
human jira issue get KAN-1
# Create an issue
human linear issue create --project=ENG "Implement feature"
# Add a comment
human jira issue comment add KAN-1 "This is done"
# Notion — search workspace, read pages
human notion search "quarterly report"
human notion page get <page-id>
# Figma — browse files, inspect designs
human figma file get <file-key>
human figma file comments <file-key>
human figma file components <file-key>
# Amplitude — product analytics
human amplitude events list
human amplitude cohorts list
# Sentry — error tracking
human sentry issues list --project=your-project
human sentry issue get 12345
AI writes code. But who decides what gets built? human’s
built-in skills cover the full lifecycle — from challenging the
idea through planning, execution, review, and verification.
One command (/human-sprint) runs the entire pipeline.
# Included in human init, or run separately:
human install --agent claude
Challenges your idea with forcing questions, refines the scope, and creates a ready PM ticket in your chosen tracker. The creation process ensures quality — no separate readiness check needed.
One command from rough idea to shipped code. Chains ideate, plan, execute, and review. Auto-decides mechanical questions, surfaces only genuine taste decisions.
Fetches a ticket, explores the codebase, and produces a structured
implementation plan saved to .human/plans/.
Loads a plan from .human/plans/, executes it step by
step, then runs a review checkpoint to verify the result.
Reviews the current branch’s changes against the
ticket’s acceptance criteria. Flags gaps, scope creep, and
missing edge cases. Saved to .human/reviews/.
Analyzes a bug ticket for root cause, traces affected code, and
produces a fix plan saved to .human/bugs/.
Scans the codebase for bugs using a multi-agent pipeline. No ticket
needed. Finds logic errors, error handling gaps, race conditions,
and security vulnerabilities. Report saved to
.human/bugs/.
Deep security audit with attack chain analysis. Maps the attack
surface, scans for injection, auth, secrets, dependency, and infra
vulnerabilities, then chains findings into exploitable paths. Report
saved to .human/security/.
Works everywhere you code.
AI agents inside devcontainers need access to issue trackers, Notion, Figma, Amplitude, and Sentry — but credentials should stay on the host.
human tui
# Starts daemon, shows dashboard with issues and pipeline state
# All commands work transparently
human jira issues list --project=KAN
human notion search "quarterly report"
human figma file get ABC123
Set HUMAN_DAEMON_ADDR and
HUMAN_DAEMON_TOKEN in your
devcontainer.json — all commands are forwarded to the
host daemon. Token-based auth keeps it secure.
The daemon includes a transparent HTTPS proxy that filters outbound
traffic by domain using SNI inspection — no certificates, no
decryption. Configure an allowlist or blocklist in
.humanconfig.yaml to control which external services
containers can access.
Want a ready-to-use devcontainer with human, proxy, and Chrome Bridge pre-configured? See treehouse.
claude --chrome doesn’t work in containers because
Chrome runs on the host. The Chrome Bridge tunnels the connection so
your AI agent can browse, inspect, and screenshot — transparently.
human chrome-bridge
# Claude Code can now use --chrome inside the container
human init — one command, every tool configured. No
per-developer setup. No “it works on my machine.”
You can. It’s like building a web app with raw Go libraries in 2004. Or you could use the framework.
| Feature | MCP Servers | human CLI |
|---|---|---|
| Setup & Debugging | Hard to config & troubleshoot | Seconds (It just works) |
| Token Usage | High overhead (Bulk loading) | Up to 95% fewer tokens1 |
| Composability | Siloed / Not composable | Unix pipes, loops, jq |
| Discoverability | Hidden behind protocol | Native --help |
| Dual-Purpose | Agents only | Agents & Humans |
“Every AI agent using MCP is quietly overpaying.”
— Kan Yilmaz, I Made MCP 94% Cheaper
1 Our measurement with ttok (Jira API vs
human JSON, 3 small tickets) shows 95% savings (bigger
tickets the overhead is less).
A dark software factory is an autonomous software delivery pipeline where AI agents write, test, and ship code from specifications, the way a lights-out manufacturing plant runs with no workers on the floor. Humans stay on intent, policy, and outcome review. The term was popularized by Dan Shapiro and has been adopted by BCG Platinion and i-SCOOP as the category label for Level 5 AI-assisted coding. Read the full explainer →
MCP servers dump raw API responses into your Claude Code context window, burning tokens. human is a CLI that extracts signal and discards noise — our measurement shows up to 95% fewer tokens than raw API or MCP responses. One install covers Jira, GitHub, GitLab, Linear, Azure DevOps, Shortcut, ClickUp, Notion, Figma, Amplitude, Sentry, and Telegram. One credential system. Works in devcontainers.
Yes. human runs in daemon mode on the host and forwards commands
from inside the container transparently. Credentials stay on the
host, the AI never sees them. The Chrome Bridge tunnels
claude --chrome into the container so your agent can
browse and screenshot. MCP OAuth flows are proxied to the host
browser — no port forwarding hacks, no workarounds.
Jira (Cloud and Server), GitHub Issues and Projects, GitLab Issues, Linear, Azure DevOps Boards, Shortcut, and ClickUp. Same commands across all of them, so skills and scripts work regardless of which tracker your team picks. Notion and ClickUp Docs are supported for docs and wikis.
One line: curl -sSfL gethuman.sh/install.sh | bash,
then human init to configure your connectors and
generate a devcontainer. Also available via Homebrew
(brew install stephanschmidt/tap/human), mise, and
go install.
No. Credentials are stored on your host machine and used by the CLI process. The AI agent never sees tokens, passwords, or OAuth secrets. Inside devcontainers, human uses a daemon-and-token model so the container gets an ephemeral auth token but the real credentials never cross the container boundary. Full audit trail is available for SOC 2 and compliance.
Yes. The source is on GitHub and the CLI is free to install and use.