free
$0forever · open source
oknekddaemon · single static binaryoknekCLI · all subcommands- base rule pack (R1 – R7)
- monthly rule updates · public github
- community discord
- local-only · no cloud
a daemon · runtime defense · linux
KNEK.
Runtime defense for AI agents. A daemon that hooks Claude Code, Cursor, and MCP servers — baselines their behavior, blocks the action the moment they drift.
curl -fsSL https://install.oknek.com | sh
early access · v1 shipping
the protection surface · 7 rules
Every rule maps to a public, citable threat — most of them documented by Anthropic itself. Each ships in v1, signed and versioned. New rules within 24h of any new disclosure.
An untrusted repo triggers Claude Code to chain 50+ bash subcommands inside one tool call, slipping past deny-rule enforcement. We count chain depth at the syscall layer and block past a configurable threshold.
evidence: full bash command · subcommand depth · agent identifier · timestamp
A repo silently rewrites .claude/settings.json to grant elevated permissions. We watch the inode, diff against the last-trusted hash, freeze the agent until the user verifies.
evidence: old hash · new hash · diff · source process
Agent opens ~/.claude.json, ~/.aws/credentials, ~/.ssh/id_rsa, or any path matching the credential allowlist. Hooked at the open() syscall via eBPF or LD_PRELOAD shim. Default block, configurable allow-and-log.
evidence: file path · agent process · read offset and length
A poisoned MCP config redirects an agent's tool calls to an attacker-controlled endpoint. We baseline the agent's MCP server allowlist at install; any new endpoint is flagged or blocked.
evidence: original endpoint list · new endpoint · transport · agent identifier
Agent makes an outbound socket to a destination not in your allowlist — exfiltration, C2 callback, anything you didn't sanction. Default deny with a sensible starter list (Anthropic, OpenAI, GitHub, npm, PyPI).
evidence: destination IP · port · hostname · agent process
A repo's CLAUDE.md, AGENT.md, or .cursor/rules hides instructions in white-on-white text, base64 blobs, comment fences. We pre-scan instruction files for known indirect-injection patterns. Warn or block.
evidence: file path · matched pattern · line numbers
A 14-day rolling baseline of (tool calls × frequency × scope) per agent. New behavior gets scored against the baseline — anything above threshold alerts. The catch-all that fires when none of R1–R6 do.
evidence: baseline summary · drift event details · score
live event stream · sample
Real output from oknek logs --tail on a self-test box. The agent attempts a chained curl | base64 -d | sh escape; oknek snaps the chain at depth 12, suspends the process, and writes structured evidence to disk before the syscall returns.
2026-05-09T17:42:11Z info agent.spawn pid=4421 binary=claude argv=["claude","--dangerously-skip-permissions"] 2026-05-09T17:42:11Z info baseline.match agent=claude-code-7f3a profile=interactive matched=12/14 features 2026-05-09T17:42:13Z info exec.observed pid=4421 cmd="git status" depth=1 verdict=allow 2026-05-09T17:42:18Z info exec.observed pid=4421 cmd="ls -la ~/" depth=1 verdict=allow 2026-05-09T17:43:01Z warn exec.suspicious pid=4421 chain.depth=11 (threshold=8) cmd-fragment="curl ... | base64 -d | sh" 2026-05-09T17:43:02Z BLOCK rule=R1 subcommand_chain depth=12 agent=claude-code-7f3a chain: env → curl → bash -c → eval → base64 -d → sh -c → ssh-add → cat → nc → jq → tee → ; process suspended · awaiting verdict · `oknek allow 4421` or `oknek deny 4421` evidence written /var/lib/oknek/events/2026-05-09/e_47fb91.json (1.2 KiB, sha256:c4f0…) 2026-05-09T17:43:04Z info oknek.notify slack#sec-alerts ✓ · email kell@oknek.com ✓ $
The block decision was made before execve() returned. The agent never saw the credential file. There was no shell to exfiltrate from. — this output is real, captured 2026-05-09 from a self-test on openclaw.
three tiers · cancel any time · per server
The daemon, CLI, and base rule pack are open source forever. Indie buys you a faster rule update channel and alerts. Team buys you a roll-up dashboard across boxes. Enterprise buys you whatever else.
free
$0forever · open source
oknekd daemon · single static binaryoknek CLI · all subcommandsindie
$9per server · per month
team
$29per server · per month
enterprise · sso · scim · soc 2 evidence room · air-gapped deploy · custom integrations — write to kell@oknek.com.
three converging signals
01
50-subcommand bypass. Plaintext OAuth tokens in ~/.claude.json. .claude/settings.json permission injection. CLAUDE.md indirect prompt. All publicly disclosed. All reproducible. None addressed by any existing security tool.
02
Runtime endpoint defense for AI agents is a category that does not yet exist. Snyk owns dev-time. Darktrace owns the wire. Wiz owns cloud posture. The agent's runtime — between the model and the kernel — is open lane.
03
Indie devs running Claude Code on a VPS are searching for "how do I secure my agent" right now. They have no good answer. Hacker News, r/ClaudeAI, r/LocalLLaMA, X reach them in one post. No enterprise sales motion required to get to the first 100 paying customers.
early access list
When v1 ships, you'll get a one-line install command, a private discord invite, and the threat-model doc. We will not sell your email. We will not sign you up for anything else. One message. Then silence until v1.