npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

thuban

v0.12.19

Published

The most advanced code integrity engine on the market — for every kind of code debt. AI, human, or hybrid. Detect hallucinated APIs, ghost code, tech debt, and architecture drift. One command. Minimal dependencies.

Readme

Thuban

AI agents build your code. Thuban decides what they're allowed to do.

Real-time endpoint protection for AI coding agents. 100% local. Zero code upload.

npm version tests shield tests license

thuban.dev · npm · X · YouTube

npx thuban protect

What Is Thuban

Category: runtime defence for AI coding agents.

AI coding agents — Claude Code, Cursor, Codex, Gemini CLI, Continue, Cline, Aider, and every agent that will exist next year — run with full access to your machine. Your file system. Your shell. Your network. Your .env files, SSH keys, and cloud credentials. There are no guardrails on what they're allowed to touch, and the failure mode isn't hypothetical: agents have already wiped production databases, exfiltrated credentials, and escaped their own sandboxes in the wild (see Real Threats Detected below).

Thuban sits between the agent and your system. It enforces what an agent is allowed to do — in real time, at the OS level — and it proves that those defences actually work, with an adversarial testing engine that attacks its own detection logic thousands of times per run.

One command gets you protected:

npx thuban protect

No account. No API key. No code ever leaves your machine.


The Seven Pillars

Thuban is seven systems working together: one that blocks bad actions as they happen, one that independently observes and governs what agents actually do, one that finds what slipped through, one that stops AI spend from running away, one that proves it all actually works, one that builds new defences from real-world attacks, and one that explains every decision in plain English.

Pillar 1 — Shield

Real-time endpoint protection.

Shield is the runtime enforcement layer. Every file write, shell command, and network call an agent attempts is checked against policy before it executes.

  • File guards — policy-driven allow/deny rules protecting .env, keys, certs, and config; blocks empty-content overwrites and large-magnitude rewrites
  • Credential guards — blocks reads/exfiltration of .aws/credentials, .ssh/id_rsa, cloud metadata endpoints, and other secret material
  • Process containment — sandboxes and constrains what spawned processes can do
  • Network monitoring — watches outbound connections for exfiltration and command-and-control patterns
  • Velocity tracking — flags abnormal action bursts (modeled on real incidents involving 17,600+ agent actions clustered into anomalous behavioural bursts)
  • Staging manager — proposed writes are staged and diffed in a shadow copy before ever touching your real workspace
  • Ed25519-signed rule packs — detection rules ship as cryptographically signed YAML; tampering is detected, not trusted
  • Behavioural chain detection — a sequence engine watches multi-step attack chains (credential exfiltration → privilege escalation → workspace escape → mass deletion → monitoring disable) across ~15 named chain rules spanning 5 signed rule packs, and blocks the moment a chain completes — not after
  • Native Windows enforcement — real OS-level process containment via PowerShell Job Objects, not just userland pattern matching
thuban shield init       # initialise .thuban-shield/ policy
thuban shield status     # policy summary + audit integrity
thuban shield watch      # real-time file watching
thuban shield audit      # hash-chained audit log
thuban shield rollback   # restore a file from a pre-write snapshot

Pillar 2 — Guardian

Independent runtime control and evidence layer for AI agents.

Guardian sits outside the agent's own reasoning process, observes every consequential action at the point it touches the real world, and keeps a cryptographically tamper-evident record the agent itself cannot edit.

  • Hash-chained event log — every event includes the hash of the previous event; deleting, editing, or reordering any event breaks verification for everything after it
  • Deny-wins permissions — when policy is ambiguous or conflicting, the default outcome is deny, not allow
  • Human approval gates — consequential actions (publishing, deploying, deleting) pause for an explicit human decision before executing
  • Signed evidence export — exports are signed with a local Ed25519 key; a standalone, dependency-free verifier lets any third party confirm authenticity without installing Thuban
  • Behavioural chain detection — a sliding-window pattern matcher with 5 built-in chain patterns recognizes when a sequence of individually-defensible actions (e.g. credential read → external exfiltration) matches a known suspicious shape
  • Guardian Gauntlet — tested end-to-end against 30 real AI models from Anthropic, OpenAI, Google, Mistral, DeepSeek, Cohere, Perplexity, xAI and others, all given the same coding task
thuban guardian start        # start the independent observer
thuban guardian status       # current session status
thuban guardian events       # hash-chained event log
thuban guardian verify       # verify chain integrity
thuban guardian export       # signed evidence export
thuban guardian gauntlet     # run the Guardian Gauntlet model battery

Pillar 3 — Scanner

Static analysis built for AI-generated code.

Scanner runs 69 rules across three real AST engines (Babel for JS/TS/JSX/TSX, Python's ast, Go's go/parser) plus pattern-based analysis for Rust, Ruby, Java, C#, Kotlin, and PHP — 10 languages total, entirely offline.

  • Hallucination detection — catches phantom imports, invented APIs, and packages that don't exist
  • Ghost code detection — dead exports and unreachable modules nobody calls
  • Taint tracking — follows user input from source to sink (SQL/XSS) across file boundaries
  • CFG analysis — unreachable code, infinite loops, dead branches
  • Secret scanning — hardcoded credentials, API keys, private keys
  • Supply chain analysis — circular imports, phantom dependencies, dependency graph risk
  • Tech debt scoring — with real £/$ cost estimation
  • Copy-paste detection — AST-normalized clone drift analysis
  • Architecture mapping — structural drift across the codebase

Every security rule maps to an OWASP Top 10 2021 category and a CWE identifier. Output formats: JSON, SARIF 2.1.0, HTML dashboard, executive PDF, investor report.

Pillar 4 — Cost Guard

Stops runaway AI spend before it happens — not after the invoice.

Cost Guard is a static analyzer purpose-built for the failure mode nobody's tooling was watching for: code that works perfectly and still bankrupts you. Enterprise AI spend has already become a real operational-control problem — one recent case saw a company's AI token bill grow 80% month-on-month until it equalled 40% of the entire R&D payroll budget, with a single engineer alone burning $50,000/month, no attacker or breach involved.

  • Unbounded AI loop detection — flags any AI SDK call sitting inside a loop with no visible iteration bound, budget guard, or guarded break
  • Missing output token limit detection — escalates automatically when that same call has no max_tokens ceiling, removing the last backstop on a single call's cost
  • Runs automatically — part of every thuban scan and thuban protect pass, no extra flag needed
  • 100% local — static AST analysis on your own machine; your code and spend patterns never leave your filesystem

AI observability tells you what you already spent. Cost Guard stops the spend before it happens.

Pillar 5 — Crucible

Adversarial testing. Proves the defences actually work.

Crucible doesn't just claim Shield and Scanner catch attacks — it attacks them, continuously, and scores the result.

  • 515 attack seeds across 10 languages (C#, Go, Java, JS, Kotlin, PHP, Python, Ruby, Rust, TS)
  • Mutation engine — mutates seeds to generate 1,000+ novel variants per run
  • Self-attack mode — Crucible can run against Thuban's own codebase
  • Pattern learner — learns from missed detections to sharpen future runs
  • Golden master verification — snapshot testing that catches unintended detection drift between releases
  • Kenny Mode — a dedicated adversarial stress-testing battery, scored out of 100
  • Defence Score with letter grade — a weighted composite of seed detection rate, mutation kill rate, Kenny Mode score, and self-attack robustness, rendered as a single grade
thuban crucible run             # standard run
thuban crucible --mode kenny    # Kenny Mode stress test
thuban crucible --mode hell     # maximum mutation density

Pillar 6 — Forge

Autonomous threat intelligence.

Forge is what makes Thuban a living defence system instead of a static ruleset. Forge Scout polls 5 independent security feeds (CISA advisories, OWASP GenAI Security Project, BleepingComputer, Hacker News AI-agent security, The Register) every 6 hours, scores each item for relevance to AI-agent threats using AI, and turns real-world incidents into new Shield rules.

  • Automated polling every 6 hours, no human trigger required
  • AI-powered relevance scoring — filters signal from noise across raw security feeds
  • Incident analysis — structured breakdown of what happened, how, and what it means for agent security
  • Auto-generates Shield rule packs from real-world incidents — drafted, then proven safe by Crucible's adversarial testing, a Shield dry-run against a benign+attack fixture corpus, and the full Scanner/Cost Guard regression suite before ever shipping. No human approval gate — the test suite is the safety net.
  • Autonomous shipping — Forge Autopilot runs the full detect → draft → prove → ship → publish chain on its own schedule (triggered on new incidents, plus a tight retry cron); a candidate that fails any gate simply stays at monitoring and is retried next cycle
  • Blog post generation — auto-publishes a write-up the moment a rule actually ships

Forge currently tracks 36 real incidents — 8 critical, 16 high, 12 medium severity — pulled from the wild, not synthetic test data.

thuban forge scan            # run Forge Scout once
thuban forge scout-watch     # poll immediately, then every 6 hours
thuban forge generate <id>   # generate a Shield rule from a tracked incident

Pillar 7 — Blackbox

The AI decision explainer.

Blackbox takes any AI coding agent decision — a file write, a blocked command, a chain of actions — and produces a human-readable explanation: what happened, why Shield allowed or blocked it, and what the risk would have been if it hadn't. It's a forensic recording and explainability layer built on top of Shield's audit trail, not a duplicate of it.

thuban blackbox replay    # replay recent agent actions
thuban blackbox explain   # plain-English explanation of the last decision
thuban blackbox timeline  # chronological view of agent activity

Quick Start

npx thuban protect

That single command scans your codebase, verifies your defences, and starts real-time protection. No install, no account, no config required to get a first result.

Windows + PowerShell: if you see running scripts is disabled on this system, that's PowerShell's default security policy blocking npx, not a Thuban error. Easiest fix: run the same command from Command Prompt (cmd.exe) instead. Or fix PowerShell permanently, once: Set-ExecutionPolicy -Scope CurrentUser RemoteSigned


Protect Command Output

npx thuban protect runs a full scan, verifies your defences with Crucible, and prints a combined report:

✓ Scan complete — 148 file(s) scanned, 12 issue(s) found
  Critical: 1  High/Error: 3  Warning: 6  Info: 2

CODE HEALTH SCORE: 78/100 — Grade: B

Top issues:
  1. src/api/upload.js:42 — hardcoded credential detected
  2. src/utils/legacy.js:9 — phantom import 'lodash.deepclone'
  3. src/server.js:117 — command injection risk (child_process.exec)

Running Crucible defence verification...
✓ Crucible verification complete — 515 attack seed(s) tested
  498 passed, 17 failed (96.7% blocked)

DEFENCE SCORE: 97/100

─── COMBINED REPORT ───

╔══════════════════════════════════════════════╗
║          THUBAN PROTECT — SUMMARY             ║
╠══════════════════════════════════════════════╣
║ Shield: ✓ Active (monitoring)                 ║
║ Code Health: 78/100 — B                       ║
║ Defence Score: 97/100                         ║
║ Code uploaded: 0 bytes (100% local)           ║
║ Time: 4.2s                                    ║
╚══════════════════════════════════════════════╝

What to do next:
  ⚠ Your code needs attention. Run: npx thuban fix . --fix
  Full visual report: npx thuban dashboard .
  Enable real-time protection: npx thuban shield watch
  Learn more: https://thuban.dev/guide/

📊 Full report saved: thuban-protect-report.html
Open it in your browser to share with your team.

Every run auto-generates a shareable HTML report (thuban-protect-report.html) with your Code Health Score, Defence Score, and grade — ready to drop into a PR, a Slack channel, or a board deck.


The Autonomous Defence Pipeline

Thuban's endgame is a fully autonomous threat-to-defence loop: a threat is discovered in the wild, and every Thuban user is protected against it before most security teams even finish triaging the CVE. Here's where that pipeline actually stands today:

| Stage | Status | |---|---| | Scout detects real-world threat | ✅ Automated (every 6 hours) | | AI triage + relevance scoring | ✅ Automated | | Generate Shield defence rule | ✅ Automated — no human approval gate | | Prove it's safe (Crucible + Shield dry-run + Scanner + Cost Guard regression) | ✅ Automated — all gates must pass or it doesn't ship | | Sign + ship (npm publish) | ⚠️ Everything up to the git tag push is fully automated and has shipped live (see Handoff Notes below) — the final npm publish is still manual because the workflow's tag push uses the default GITHUB_TOKEN, which GitHub won't let trigger publish.yml automatically. Fix identified, needs one gh secret set from a human. | | Dashboard, homepage stat, and blog update from real data | ✅ Automated | | Push to already-installed Shield instances without waiting for an upgrade | ❌ Not built (deliberately deferred — see OPS-NOTES.md / plan notes) |

The vision: a threat is detected in the wild → AI analyses it → a defence rule is generated → proven safe by every product's own test suite → signed → shipped → the dashboard and a blog post update automatically. No human in the loop, and no human required to be reachable. Detection, drafting, safety-proving, and reporting are already fully autonomous — the only remaining manual step is a one-time npm publishing setup (Trusted Publishing/OIDC), not a design gap.


Handoff Notes (for the next Verdent agent picking this up)

READ THIS FIRST if you're the Verdent instance on Craig's Mac — 2026-08-11:

  • main is at commit 2779c7a or later — git pull first. package.json version is 0.12.15.
  • npm view thuban version currently returns 0.12.13two versions (0.12.14 and 0.12.15) are bumped-but-never-published on the npm registry. Just publish 0.12.15 directly; no further version bump is needed.
  • dist/ has already been rebuilt and committed for 0.12.15. npm test (37/37: build-integrity, crlf-safety, windows-paths, npm-publish-smoke) was run and passed cleanly immediately before this handoff was written — you should not need to rebuild or fix anything, just publish what's on main.
  • Why Trusted Publishing/OIDC via publish.yml has NOT been firing — root-caused this session: Forge Autopilot's own workflow (forge-autopilot.yml) commits the version bump and pushes the git tag using GitHub's default built-in GITHUB_TOKEN. GitHub deliberately does not let a push made with that default token trigger other workflows (anti-infinite-loop-storm protection) — so pushing the v0.12.14/v0.12.15 tags from inside that workflow never fired publish.yml, even though the tags genuinely exist on origin right now. This is not a bug in Trusted Publishing/OIDC itself — that mechanism has still never actually been exercised end-to-end, because it's never actually been triggered.
  • The real fix (needs one action from Craig, likely not done yet — check gh secret list for THUBAN_BOT_PAT first): run gh auth token | gh secret set THUBAN_BOT_PAT from a terminal that's already logged into gh (Craig has this working on the Windows PC; you may also have gh logged in on the Mac — run gh auth status to check). Once THUBAN_BOT_PAT exists as a repo secret, wire it into forge-autopilot.yml's checkout step (with: token: ${{ secrets.THUBAN_BOT_PAT }}) so its commits/pushes carry a real identity and can trigger publish.yml. If the secret is already there when you read this, Craig did his part — just finish the workflow wiring.
  • Two ways to publish 0.12.15 right now, independent of the fix above:
    1. Fastest — manual npm publish from your Mac. git pull, then npm publish --access public from the repo root (prepublishOnly reruns npm run build && npm test for you automatically). This uses whatever npm session is already logged into on the Mac — this is how 0.12.13 got published.
    2. Once THUBAN_BOT_PAT is wired in (see above): re-trigger publish.yml for the existing v0.12.15 tag — either delete and recreate the tag (git tag -d v0.12.15 && git push origin :refs/tags/v0.12.15 && git tag v0.12.15 && git push origin v0.12.15) or run gh workflow run publish.yml if it accepts manual dispatch — and watch with gh run watch. This would be the first real end-to-end confirmation Trusted Publishing actually works, and the permanent fix that lets Forge Autopilot ship completely unattended going forward.
  • After either path succeeds: confirm with npm view thuban version (should read 0.12.15), then run npx thuban@latest --version from a clean shell to confirm real users actually get it. Report back to Craig either way — he's waiting to hear whether the npm side is finally unblocked.

Forge Autopilot loop status — as of 2026-08-11 (this session, real data, not marketing):

  • Root-caused and fixed the entire chain of bugs that was silently holding every single candidate at 0 shipped, in order of discovery:
    1. run-scout-incidents.js (the real CI/autopilot entry point) never wired a runBuild callback into PipelineOrchestrator, so dist/ was never rebuilt after a candidate rule pack was promoted — the test gate always checked a stale dist/integrity-manifest.json against a freshly-mutated source tree, and correctly failed, every single time, deterministically (not flakily, as first assumed).
    2. dist/ wasn't in the clean-working-tree ignore list, even though the fix above makes rebuilding it an expected, legitimate side effect of a normal run.
    3. Two specific tests (tests/shield-false-positive-rate.test.js, tests/telemetry-api.test.js) fail intermittently on GitHub Actions runners specifically — confirmed via manual local reproduction of the exact CI scenario passing cleanly 31/31 — allowlisted as known CI-only flakiness with full justification in auto-publisher.js.
    4. Git identity (user.name/user.email) wasn't configured before the in-workflow-step release commit that auto-publisher.js itself makes, so every real publish attempt failed with fatal: empty ident name ... not allowed.
    5. An unhandled exception thrown after rule-pack promotion (a direct consequence of bug #4, before it was fixed) bypassed the normal rollback path, leaving 3 incidents (THR-2026-000001/000005/000261) with a signed-but-unshipped rule pack orphaned live in packages/shield/rules/, and their status stuck at monitoring with no way to ever be retried. Fixed the rollback path in pipeline-orchestrator.js and the outcome→status mapping in run-scout-incidents.js so an error outcome always resets to candidate for a genuine retry next cycle.
  • First-ever full pipeline success, live, this session: THR-2026-000001 (OpenAI agent sandbox escape into Hugging Face infrastructure) went end-to-end with zero human clicks — analysed → rule drafted → Crucible + Shield dry-run + Scanner regression all passed → version bumped 0.12.14 → 0.12.15 → committed → tagged → pushed to origin. The only remaining manual step is the actual npm publish, blocked purely by the GITHUB_TOKEN-can't-trigger- downstream-workflows issue described above — not by anything in the autonomous pipeline itself.
  • Read data/autopilot-runs.json for the full structured audit trail of every run, gate result, and hold/error reason — this is the actual "immutable evidence" Thuban promises elsewhere, now applied to itself.
  • If you experiment locally with node packages/intelligence/ run-scout-incidents.js --dry-run, it can still touch data/forge-incidents.json / data/defence-timelines.json / data/forge-triage-log.json as side effects — git checkout -- those (and delete the triage log if untracked) before committing anything else if they show up dirty afterward.

Website — new this session:

  • Added a site-wide floating "Run Thuban" terminal launcher (small circular button, bottom-right, subtle pulse; click opens a panel with a one-click-copy npx thuban protect command; first-ever visit gets a brief animated nudge bubble). Lives entirely in docs/assets/thuban.js / docs/assets/thuban.css, both already loaded on every real page, so it appears everywhere automatically with zero per-page HTML edits — deliberately avoiding the kind of "only shows up on 2 pages" drift the features box had before.

Engineering — done, tested, published to npm as [email protected] (live):

  • Guardian v0.8/v0.9 — Loop & Cost Guard: a new runtime detector (packages/guardian/loop-guard.js) that watches an agent's live action cadence for unbounded tool-call repetition, post-completion looping, and budget exhaustion. Full spec: docs/GUARDIAN-V0.8-SPEC.md.
  • Forge's gap-analysis pipeline now branches three ways per incoming story: code_defence (existing Shield rule path), runtime_behaviour (new — routes through LoopGuardCapabilityGenerator + a simulated-loop test harness instead of Crucible/Shield dry-run), or not_buildable (logged to data/forge-triage-log.json, nothing else happens). See packages/intelligence/incident-analyser.js and packages/intelligence/pipeline-orchestrator.js.
  • Publish-time side effects are now unified: a real Forge autopilot ship (either a Shield rule OR a Loop & Cost Guard capability) generates its blog post and updates docs/homepage-defcon-data.js in the same commit as the version bump — see packages/intelligence/publish-side-effects.js. docs/index.html's homepage feed now reads real shipped incidents first, falling back to the old hardcoded seed list.
  • run-scout-incidents.js treats capability-deployed (Loop & Cost Guard ship) identically to deployed (Shield rule ship) for Slack/timeline/status purposes.
  • Full test:all: 2750+ passing, only pre-existing/unrelated failures remain (missing dev signing key locally, network-dependent advisory polling, a couple of fixture-timing issues) — zero regressions from this work.
  • Not yet done: the next real Forge Scout run against a genuine runtime_behaviour-classified story is still the first true end-to-end test of the new path in production.

Marketing — in progress across two machines:

  • Craig has been adding 10-second per-feature explainer videos to the live site (docs/*.html, various docs/videos/, docs/assets/videos/, docs/cost-guard/*.mp4).
  • Craig is now on a second machine building a 90-second launch/hero reel in Google Flow, made of 9 stitched 10-second clips. The shot-by-shot Flow prompts are written and ready in GOOGLE-FLOW-VIDEO-SCRIPTS.md — read that file for the full narrative arc and per-clip prompts before doing anything else video-related.
  • Google Ads: £20/day campaign stays live (cheap signal, don't kill it). Do not increase budget until the signup → first-scan conversion leak is diagnosed — 7 signups in 4 days with very few completed scans points at a funnel/onboarding bug, not a targeting problem.

Signup → first-scan conversion leak — fixed in code, one manual step still open:

  • Root-caused to three separate issues: (1) the welcome email told people to npm install -g thuban and manually paste a --license=<key> flag instead of the frictionless npx thuban protectfixed in api/email-templates.js's getFreeWelcomeEmail(); (2) /api/instant-trial and /api/github-trial were receiving a machineId from the CLI (packages/scanner/license-manager.js) and silently discarding it, even though that same hash is the anonymousId used for free-tier scan telemetry — fixed in api/stripe-webhook.js, both endpoints now store machineId on the license record so a CLI-based signup can be joined to later anonymous scan activity from the same machine; (3) website-form signups (/api/free-signup) have no machine present at signup time, so there is no machineId to capture there — this is a structural limitation, not a bug, and is not fixed (nor fixable without adding a client-side fingerprint to the signup form itself).
  • Still needs a manual check — not done yet, needs gcloud auth login (interactive browser) which cannot be run from an agent session: confirm SENDGRID_API_KEY is actually set on the production Cloud Function, or the rewritten welcome email above is moot because nobody receives it. Run:
    gcloud auth login
    gcloud functions describe thuban-license-api --region=<your-region> --format="value(serviceConfig.environmentVariables)"
    If it's missing or blank, set it via the GCP console or gcloud functions deploy ... --update-env-vars SENDGRID_API_KEY=<key> and redeploy. Also worth checking the Cloud Function logs for a "Welcome email skipped" line around a recent signup timestamp as a faster sanity check.

Recent Fixes (v0.12.10 – v0.12.12)

A round of external QA (Kenny) plus internal hardening surfaced and fixed several real, root-caused issues:

  • Guardian exec no longer hangs — the process-exit handler no longer waits indefinitely
  • Shield audit tamper-evidence — editing a persisted audit log is now correctly flagged as tampered instead of falsely showing "verified"
  • Guardian Gauntlet ENOENT hang — resolved; completes cleanly instead of hanging on a missing-file race
  • Kenny Mode banner — now correctly reads "Tests Attempted" instead of the old "Mutations Attempted" label
  • Forge incident IDs — fixed a duplicate-ID bug where the ID allocator restarted from 000001 every run instead of continuing from the highest existing sequence number
  • Rule-pack promotion safety — candidate rules generated by Forge now stage outside the live Shield rules directory; only a signature-verified promotion step can write into packages/shield/rules/, and the build now verifies every rule pack's signature before bundling, skipping any that fail rather than risking a broken Shield load for every user
  • Cost Guard — new static analyzer added (TCG-101 unbounded AI loop, TCG-201 missing output token limit)

Known open item: process containment does not yet reliably clean up orphaned child processes on a real force-kill of the parent terminal on Windows (confirmed via direct testing) — tracked, not yet fixed.

Full detail in CHANGELOG.md.


Architecture

  • 100% local — no telemetry, no code upload, no cloud dependency for scanning or protection
  • Ed25519-signed rule packs — every Shield detection rule is cryptographically signed; tampering is detected, not trusted
  • Integrity manifest — every published build ships a SHA-256 checksum manifest covering 705 files, so you can verify the package you installed is the package we shipped
  • Obfuscated distribution — source-level protection on the published package
  • Works everywhere your agent runs — Claude Code, Cursor, Codex, Gemini CLI, Continue, Cline, Aider, or any agent that runs on your machine

Real Threats Detected

Forge doesn't work from hypothetical threat models — it tracks real, documented incidents involving AI coding agents in production:

  • OpenAI AI agent sandbox escape — unauthorized intrusion into Hugging Face infrastructure
  • JADEPUFFER — a fully autonomous AI agentic ransomware attack
  • Claude-powered agent wipes production database and backups — in 9 seconds
  • Cursor coding agent sandbox escape via prompt injection ("DuneSlide")
  • Vertex AI over-privileged service accounts — leading to lateral movement and data exfiltration
  • AWS Bedrock AgentCore DNS-based sandbox escape and exfiltration
  • Claude Code rm -rf via symlink — causing unrecoverable data loss

Each tracked incident is analysed, scored, and — where verified — becomes a new Shield detection rule. 36 incidents tracked to date: 8 critical, 16 high, 12 medium severity.


Pricing

| Tier | Price | Includes | |---|---|---| | Free | $0 forever | Scanner (all 69 rules, incl. Cost Guard) + Crucible, unlimited scans, no account required | | Individual | $9/mo (first 30 days free, no card) | Every feature included, no add-ons — full Shield runtime protection, Guardian agent monitoring, Crucible testing, priority rule updates, email support | | Team | $49/mo | 10 users, shared dashboards, team rule packs | | Business | $299/mo | 50 users, compliance reports, dedicated support | | Enterprise | $499/mo | 100+ users, SLA, on-prem option, custom integrations |

Every tier — including Free — runs 100% locally with zero code upload. Full details at thuban.dev/pricing.


CLI Reference

| Command | What it does | |---|---| | thuban protect | One command: scan, verify defences, start protection | | thuban shield | Real-time runtime enforcement (init, watch, audit, rollback) | | thuban guardian | Independent agent observation & evidence (start, status, events, verify, export, gauntlet) | | thuban scan | Static analysis across 10 languages, incl. Cost Guard (unbounded AI loops, missing token limits) | | thuban crucible | Adversarial defence verification (run, mutate, kenny) | | thuban forge | Threat intelligence pipeline (scan, scout-watch, generate) | | thuban blackbox | AI decision replay and explanation (replay, explain, timeline) | | thuban advisor | AI code review commentary (roast, rate, boost) | | thuban dashboard | Interactive HTML report | | thuban prove | Generate proof-of-defence artifacts | | thuban imagine | Model a hypothetical agent capability against current defences | | thuban support | Diagnostics and troubleshooting | | thuban status | License and protection status |


Links

License

MIT