Skip to content

Repository files navigation

Rook

Point it at a target. Walk away. Come back to findings.

rook running an objective

Rook is an AI bug-hunting harness for vulnerability research, bug hunting and source-code auditing, in a single Go binary. It takes an objective - the goal, the success criteria that define done, the rules of engagement - and works the problem the way a researcher would: enumerating, reading code, probing, and chaining what it finds, then handing back concrete findings with the evidence to back them. The autonomous engine (zot) runs inside the binary and talks straight to any OpenAI-compatible provider with your own key. No hosted service, no telemetry.

⚠️ Authorized use only. Rook is an offensive-security tool. Only run it against systems, code and services you own or are explicitly authorized to test. Read safety first.

Install

curl -fsSL https://github.com/pdparchitect/rook/releases/latest/download/install.sh | bash

That fetches the latest release for your platform (Linux or macOS, amd64 or arm64), verifies its checksum, and puts rook in ~/.local/bin. The same command upgrades in place. Pin a version with ROOK_VERSION=vX.Y.Z, or change the directory with ROOK_INSTALL_DIR.

Prefer to do it by hand? Grab a tarball from the releases page, or build from source.

Use

Rook defaults to the zai provider running glm-5.2. Export a key, write an objective, hand it over:

export ZAI_API_KEY="sk-..."
rook new "Audit the HTTP handlers in ./server for injection and auth-bypass bugs"
rook

rook new writes a small YAML objective under .rook/objectives/; edit its success criteria, then a bare rook runs everything outstanding, skipping what the ledger already records as done. rook --watch turns the folder into a drop box. Any OpenAI-compatible provider works - --provider anthropic, a local --provider ollama, a gateway, a custom endpoint - see providers.

The agent's findings are its response; it does not write files unless the objective asks. Every run records a resumable session (rook --resume last) and closes with a digest carrying the session id.

Why Rook

  • Objectives, not prompts. Mission files that queue, batch and stream, with a ledger of what's done. → objectives
  • One portable binary. Static, cross-platform, nothing to install; carry it onto a target box and remove it cleanly. → how it works
  • Skills on demand. The binary carries a catalog, not a library; the agent fetches the playbooks a hunt needs. → skills
  • Built to run unattended. In-process engine, compaction, loop detection, resumable logs - your key, your provider, your machine. → how it works

⚠️ Safety

Rook has real file-write and shell access and runs commands against whatever you point it at; --dir is not a sandbox. Point it at a disposable checkout or an isolated host, and bound the run with the objective's rules of engagement. Read safety first.

Documentation

Ecosystem

Project Role
Zot The autonomous engine Rook runs on - an automated software factory in one binary
Pion A defensive AI security harness for automatic monitoring and incident prevention
Pantalk Connect coding agents to the chat platforms people already use

License

Rook is MIT licensed - see LICENSE. It bundles no third-party content: skill collections are fetched at runtime and keep their own licenses (see docs/skills.md).

Status

Rook is 0.x and in active use. Flags, config and behavior may change before 1.0 - pin a version and skim the changelog before upgrading. Small, focused pull requests are welcome; anything large is worth an issue first.

About

AI bug hunting harness

Topics

Resources

Stars

28 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages