human - the dark software factory for Claude Code

The Dark Software Factory.

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.

Jira GitHub GitLab Linear Azure DevOps Shortcut ClickUp Notion Figma Amplitude Sentry Telegram
curl -sSfL gethuman.sh/install.sh | bash
human init

The Control Room

human TUI dashboard showing Claude Code token usage and tracker issues

Monitor running agents, token usage, tracker issues, and pipeline state in real time. One view for everything.

The Fence

Secure devcontainer architecture for Claude Code with daemon, firewall, and Chrome Bridge

Just works. OAuth, Claude subscriptions, MCP, browser access, Chrome Bridge, firewall — all configured out of the box.

Intent In

Jira GitHub Linear Notion Figma Amplitude Sentry Shortcut ClickUp
Cross Context Search

Connectors for every source. Cross-tracker and Notion search, local fast index. Your AI sees everything it needs.

Outcome Review

Claude Code lifecycle skills: ideate, plan, execute, review

Ideate, plan, execute, review. One command runs the full pipeline from rough idea to shipped code.

What is a dark software factory?

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?

Install human on macOS, Linux, or with Go

## Brew
brew install stephanschmidt/tap/human

## mise
mise use -g github:StephanSchmidt/human

## Go
go install github.com/stephanschmidt/human@latest

Secure devcontainer for Claude Code

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 .

How human works with Claude Code

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.

human architecture diagram - Claude Code devcontainer with daemon, Chrome Bridge, and HTTPS proxy

Every connector Claude Code needs, included

Notion ClickUp

Docs & Knowledge

Claude Code Notion and ClickUp Docs integration. Search, page reading, databases, wikis. Your AI reads your docs.

Figma

Design

Claude Code Figma integration. Files, components, comments, export. Design-to-code without screenshots.

Amplitude Sentry

Analytics

Claude Code Amplitude and Sentry integration. Events, funnels, retention, cohorts. Error tracking and issue triage.

Telegram

Messaging

Telegram bot messages as a Claude Code task inbox. Poll, process, and acknowledge — your AI agent handles user requests end to end.

Lifecycle Skills

Built-in Claude Code skills for the full lifecycle: /human-ready, /human-plan, /human-execute, /human-review, /human-bug-plan, /human-findbugs, /human-security.

Token Optimization

95% fewer Claude Code tokens vs raw APIs and MCP servers — stay under your daily limit.

Credentials

.env secret protection for AI agents. Stored on the machine, never touch the AI.

Devcontainers

HTTPS proxy and firewall for Claude Code in devcontainers. Daemon mode, transparent forwarding, outbound traffic control.

Chrome Bridge

Use Chrome inside a devcontainer with Claude Code. Your AI agent can browse and inspect — even in a container.

MCP/OAuth in Containers

MCP OAuth authentication in devcontainers. The daemon proxies MCP authentication to the host browser — no workarounds needed.

The factory is engineered, not improvised.

One install gives your AI agent superpowers across your entire toolchain.

One-command setup

human init — one command configures every connector, every project, every developer.

👥

Same setup, every dev

No more “works on my machine.” Every developer gets identical connectors, skills, and config from day one.

🔄

Always up to date

We track API changes so you don’t. Update human, and every connector updates with it.

🧩

No version conflicts

Every connector is tested together. No broken combinations, no dependency hell, no surprises after upgrades.

📦

Nothing to assemble

No MCP hunting, no README roulette, no stitching tools together. The framework ships complete.

⏱️

Onboard in minutes

New team member? One install, one init. They’re shipping with full toolchain access before lunch.

human is where the humans belong in a dark factory.

Intent in. Outcomes reviewed. The line runs between.
Stop assembling your stack. Start specifying the work.

WITHOUT HUMAN

  • Find & vet each MCP server
  • Configure each separately
  • Manage 9 sets of credentials
  • Hope it works in devcontainers
  • No Chrome access inside containers
  • Blow your context window
  • Build planning workflows yourself
  • Track every ecosystem change

WITH HUMAN

  • All integrations included
  • human init — one command setup
  • One credential system
  • Daemon mode, just works
  • Chrome Bridge — browse from containers
  • 95% fewer tokens
  • Full lifecycle skills built in
  • We handle the updates

Replaces these CLIs

Jira CLI · GitHub CLI · GitLab CLI · Linear CLI · ClickUp CLI · Shortcut CLI · Azure DevOps CLI · Notion CLI · Sentry CLI

Stop burning Claude Code tokens on MCP servers

MCP servers dump raw API responses into your context. human extracts signal, discards noise. Stop hitting your daily token limit by lunch.

RAW API / UI (High Token Cost)
HUMAN (High Signal)
Title: Implement SSO
Status: To Do
AC:
- Works with SAML
- Login redirect ok
- Error handling

human CLI usage examples

# 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

Claude Code skills for the full development lifecycle

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
Claude Code skills flow: /human-ideate to /human-plan to /human-execute to /human-review

/human-ideate

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.

/human-sprint

One command from rough idea to shipped code. Chains ideate, plan, execute, and review. Auto-decides mechanical questions, surfaces only genuine taste decisions.

/human-plan

Fetches a ticket, explores the codebase, and produces a structured implementation plan saved to .human/plans/.

/human-execute

Loads a plan from .human/plans/, executes it step by step, then runs a review checkpoint to verify the result.

/human-review

Reviews the current branch’s changes against the ticket’s acceptance criteria. Flags gaps, scope creep, and missing edge cases. Saved to .human/reviews/.

/human-bug-plan

Analyzes a bug ticket for root cause, traces affected code, and produces a fix plan saved to .human/bugs/.

/human-findbugs

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/.

/human-security

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/.

Run Claude Code in a devcontainer

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.

Host
human tui
# Starts daemon, shows dashboard with issues and pipeline state
Container
# 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.

HTTPS Proxy — control what AI agents can reach

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.

Chrome Bridge — browse from inside the container

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.

Container
human chrome-bridge
# Claude Code can now use --chrome inside the container

Claude Code for teams

human init — one command, every tool configured. No per-developer setup. No “it works on my machine.”

AI
human jira issue get KAN-42
AI
human linear issues list --project=ENG
AI
human jira issue comment add KAN-42 "Done"

Why not just use MCP servers?

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).

Frequently asked questions

What is a dark software factory?

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 →

How is human different from MCP servers?

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.

Does human work with Claude Code 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.

Which issue trackers does human support?

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.

How do I install human?

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.

Does human store my API credentials in the AI context?

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.

Is human open source?

Yes. The source is on GitHub and the CLI is free to install and use.