Skip to main content
BEEKEEPERv1.0.0

Threat intelligence for
autonomous coding agents

Beekeeper mediates every package install, credential file read, and network request your agent makes against threat intelligence and structural policy.

go install github.com/home-beekeeper/beekeeper/cmd/beekeeper@latest
Reproducible builds · Sigstore signed · SLSA L3 provenance·verify a release

Calm by default

Quiet until it isn't.

The TUI stays silent for weeks at a time. When a catalog sync hit reaches the corroboration threshold or Sentry correlates a credential read with an outbound connection, the dashboard surfaces the incident and your response options.

What it does

Stop supply chain attacks before they reach your agents.

Beekeeper sits between your coding agent and your machine. Every install, file read, and network call passes through a policy engine that knows what attackers do.

Hook into every agent

First-class integration for Claude Code, Cursor, Codex CLI, OpenCode, Continue, and any MCP-speaking client. Tool calls cannot bypass the harness. Native-tool agents route through the gateway; package managers are caught by the shim layer.

Corroboration matching

One source warns. Two enforce. Three quarantine. The 2FA principle for threat intel.

Real-time correlation

Sentry catches the credential-read signature live. Fires on behavior, not catalog identity.

Calm-mode TUI

Quiet by design. Escalates on its own when something fires.

Hardened nudge

Steers npm install to pnpm or Bun with structural defenses npm lacks.

Open from day one

Apache 2.0. Reproducible builds, Sigstore-signed releases, SLSA L3 provenance. No telemetry, no upsell, no SaaS lock-in. Every release verifiable from source.

Recent supply chain compromises

Real 2026 supply-chain campaigns.

Not hypothetical. Each row is a named package, the date it broke, and the damage it did.

Live threat catalogsynced hourly
CRITNx Console compromise nrwl.angular-console 18.95.018-minute exposure · ~3,800 GitHub repos exfiltrated2026-05-18
CRITTanStack Mini Shai-Hulud @tanstack +170 pkgsOIDC token theft from CI runner · self-propagating worm2026-05-11
CRITTrapDoor Crypto Stealer npm + PyPI + Cargo28 packages · 378 malicious versions2026-05-24
CRITLaravel Lang compromise laravel-lang/lang +3Composer / Packagist supply chain · stealth release2026-05-23
HIGHAntV worm wave 324 npm + PyPI packages643 versions · Mini Shai-Hulud variant2026-05-19
HIGHshopsprint typosquat shopsprint/decimalGo module with DNS TXT backdoor2026-05-19
HIGHGemStuffer 123 RubyGems155 versions · UK local government targeted2026-05-13
Catalogs sourced from Bumblebee threat_intel, OSV, and Socket public API. See the full live catalog →

How it works

Two layers, working together.

Reactive defense catches what's been catalogued. Proactive defense catches what hasn't. Each compensates for the other's blind spots.

Layer 1 / reactive

Match every install against intelligence

Catalogs sync in the background from Bumblebee, OSV, and Socket, every 2 hours by default. Every install your agent runs is matched against the current index on the spot.

When a sync brings new intel, Beekeeper re-checks the packages already installed. A hit corroborated by two sources can move to a reversible quarantine: opt-in, dry-run by default, with the permanent purge always human-gated.

The 2FA principle keeps false positives bounded: one source can only warn, a real block needs two catalogs to agree.

Best at: known campaigns, named packages, post-disclosure threats.
Layer 2 / proactive

Watch behavior, not just identity

Sentry runs as a privileged daemon. It correlates process events, file access on sensitive paths, and outbound connections into the exfiltration signature.

Fires when an extension host descendant reads credentials and opens a connection: the Nx Console pattern, expressed in behavior.

The layers talk: when Layer 1 corroborates a flagged package, Sentry tightens its watch on that package's processes, escalating faster on a credential read. Detection-only, never a kill.

Best at: zero-day campaigns, novel malware, pre-disclosure.

Built different

A security tool that takes its own integrity seriously.

Checkmarx. Trivy. SAP. TanStack. Bitwarden. Every name on TeamPCP's kill list in 2026 was a security vendor that became an attack vector. Beekeeper plans for its own compromise from day one.

Reproducible builds, anyone can verify.Same commit produces identical bytes. make verify-release ships with every tag.
Sigstore signed via GitHub Actions OIDC.No long-lived signing keys to steal. Transparency log entry per release.
Beekeeper detects Beekeeper compromise.The beekeeper-self catalog auto-quarantines known-bad releases on next startup.
Zero non-stdlib dependencies in the core.Every import is a supply chain link. We minimize ours.

Quickstart

Protected in 60 seconds.

Three commands. No configuration required. Beekeeper ships with sane defaults.

~/dev
1Install
go install github.com/home-beekeeper/beekeeper/cmd/beekeeper@latest

Drop the binary into your path. Requires Go 1.25+ or use brew/scoop.

2Wire your agent
beekeeper hooks install --target claude-code

Auto-installs the hook into Claude Code. Cursor, Codex, others supported.

3Open the dashboard
beekeeper dashboard

Launches the calm-mode TUI. Stays quiet until something fires.

Harness support

17 agent harnesses. Three tiers of coverage.

Beekeeper supports 17 coding-agent harnesses. Support depth depends on what upstream hook mechanisms each harness provides, we document exactly what is and is not covered.

Tier 1Full hook-block (exit 2 + harness-specific deny JSON)

The harness has a pre-exec hook mechanism. Beekeeper installs a hook that runs `beekeeper check` before each tool call. On block: exits 2, emits harness-specific deny JSON, writes human-readable reason to stderr. Claude Code is the only locally live-verified harness; the remaining nine Tier-1 harnesses are documented contract.

Claude CodeLive-verified

Live-verified on this machine (HPC-04). Hooks reload mid-session; settings.json merge required.

Codex

Documented contract. Requires [features] hooks=true in config.toml; non-Bash/MCP coverage gated on PR #18385.

Cursor

Documented contract. failClosed:true required (Cursor is fail-OPEN by default); three separate hook events.

Augment

Documented contract. Matchers support mcp:*; layered settings.json.

CodeBuddy

Documented contract. Claude Code clone schema.

Qwen Code

Documented contract. Gemini-CLI fork that adopted Claude's schema.

Gemini CLI

Documented contract. Gemini-native decision field; matcher = regex on tool name.

Copilot

Documented contract. Flat JSON schema (NOT nested); ~/.copilot/settings.json or .github/hooks/*.json.

Antigravity

Documented contract. Field name MED-confidence (docs conflict); Beekeeper emits both forms defensively.

Windsurf

Documented contract. Fail-OPEN on non-2 exit; Windows uses powershell key; no JSON deny form.

Tier 2Hook-block with significant caveats

These harnesses have a hook mechanism, but a structural caveat limits coverage or reliability. Hermes is structurally fail-OPEN (exit codes ignored, block rests on stdout JSON only). Cline is macOS/Linux only. OpenCode uses a JS plugin that misses subagent task calls.

Hermes

fail-OPEN harness, exit codes IGNORED. Block rests entirely on stdout JSON. Any timeout, crash, or non-JSON output causes Hermes to allow the tool call. MCP gateway is more robust.

Cline

macOS/Linux ONLY, no Windows support. Hook = executable file PreToolUse (no ext) in .clinerules/hooks/.

OpenCode

JS plugin (tool.execute.before). Does NOT catch subagent task calls (#5894) or historically MCP calls (#2319).

Tier 3MCP gateway only, native tools UNGUARDED

These four harnesses are integrated through the MCP gateway, not a pre-exec hook file. Beekeeper only intercepts tool calls routed through the gateway; any native built-in tool (Bash, file read/write, shell execution) the agent invokes directly bypasses Beekeeper. Kilo and Trae have no upstream pre-exec hook (e.g. Kilo FR #5827); Continue and OpenClaw are wired via their MCP client config. A real residual coverage gap, not a Beekeeper implementation bug.

Kilo

Native Bash/file/shell tools UNGUARDED, no pre-exec hook (upstream FR #5827). Only MCP tools intercepted via gateway.

Trae

Native shell/file tools UNGUARDED, no programmatic pre-exec hook. Native commands gated only by Trae's UI. Only MCP tools intercepted via gateway.

Continue

Wired via MCP client config (~/.continue/config.yaml), not a pre-exec hook file. Only MCP tools routed through the gateway are intercepted; native/non-MCP tools are UNGUARDED.

OpenClaw

Wired via MCP client config (~/.openclaw/config.json), not a pre-exec hook file. Only MCP tools routed through the gateway are intercepted; native/non-MCP tools are UNGUARDED.

FAQ

Common questions.

Is Beekeeper a replacement for Snyk, Socket, or Dependabot?
No. Those answer "is this package vulnerable according to its CVE database?", which is reactive by design and tuned for human workflows. Beekeeper works at two independent layers. It intercepts agent tool calls in real time: catalog matching on package installs, the package-manager nudge, and sensitive-path reads. Separately, its Sentry daemon correlates process, file, and network behavior on your machine regardless of which agent, or none, triggered it. Beekeeper complements Snyk and Socket rather than replacing them.
Does Beekeeper send my code or data anywhere?
No. The audit log writes to disk locally by default. Optional sinks exist for teams that want centralized logging, but they require explicit configuration. No telemetry, no phone-home.
What's the performance cost?
Hook latency targets sub-100ms p99. The optional Sentry daemon averages 0.5-3% of one CPU core and 200MB resident. Lighter than Slack desktop.
Does it work on Windows?
Yes, fully. Cross-platform parity was a v1.0 ship requirement. Beekeeper uses Pollen (our Windows-compatible inventory layer derived from Bumblebee) as the on-disk scanner.
Does Beekeeper automatically delete flagged packages?
No. Automatic deletion is never triggered. When the catalog sync identifies a package flagged by two or more independent sources, the default response is to write an audit record and do nothing else. If you opt in to auto-quarantine (disabled by default), Beekeeper moves the artifact to a reversible quarantine directory using an os.Rename plus a restore manifest; you can put it back with a single command. Auto-quarantine also starts in dry-run mode, so even after you enable it, no move happens until you explicitly set dry_run to false. The permanent purge is always human-gated: the TUI surfaces the incident with a [P] purge option and a [R] restore option, and the CLI purge command requires a y/N confirmation.
Can I trust the binary I just downloaded?
Verify it yourself. Every release ships with Sigstore signatures, SLSA L3 provenance, and reproducible build instructions. The make verify-release target reproduces the binary and compares hashes. Distrust is the appropriate posture. Don't trust us; verify us.

Arm your local agents with threat intelligence.

Beekeeper is open source, dogfooded daily, and ready for your machine.