Leap360Leap360DocsBeta

Code scan

Find out what the AI in your project can actually do, before the code ships.

npx leap360 scan
   CRITICAL  delete_namespace  src/agent.ts:13 · ai-sdk  NOT governed
             └ k8s.delete       api.deleteNamespace()  deletes Kubernetes resources  src/lib/k8s.ts:10 via removeNamespace → deleteNs
   HIGH      refund  src/agent.ts:23 · ai-sdk  governed by leap.wrapTool
             └ payment          stripe.refunds.create()  moves money  src/agent.ts:26

The scanner parses your code. It finds every function handed to an AI as a tool, and follows each one across functions and files to the operations that matter: shell commands, file deletion, SQL, Kubernetes, AWS, GitHub, payments, outbound messages and network calls.

What it recognises

  • Vercel AI SDK and OpenAI Agents tool()
  • Mastra createTool()
  • LangChain tools
  • MCP servers (server.tool, registerTool)
  • OpenAI and Anthropic tool schemas
  • leap.wrapTool()
  • Python @tool, @function_tool and @mcp.tool() (basic support)

Stop new risky tools in the build

npx leap360 scan --install-hook

This adds leap360 scan --fail-on-new critical to your prebuild script and saves a baseline. A change that gives an agent a new critical ability, such as a tool that can delete a cluster, then fails the build until the tool is governed with wrapTool or accepted with --update-baseline.

See results in the console

npx leap360 scan --report

Uploads the result to your project, with the git branch and commit. It appears under Code scan in the console. Use it in CI.

The Code scan page listing tools and the operations behind themThe Code scan page listing tools and the operations behind them

Options

OptionWhat it does
--fail-on <risk>Exit 1 if a tool Leap360 does not govern reaches this risk
--fail-on-new <risk>Exit 1 only if this change adds such a tool or ability, compared with the baseline
--update-baselineAccept the current abilities as the baseline (.leap360/scan-baseline.json; commit it)
--install-hookAdd the scan to your prebuild script and save a baseline
--jsonMachine-readable output
--reportUpload the result to the console

To use it from code: import { scanProject } from 'leap360/scan'.

On this page