Skip to main content

Kobo — free-tier security scanner CLI

Project description

Kobo CLI

AI writes code fast — and ships bugs and vulnerabilities just as fast. Every generated function can hide SQL injection, leaked secrets, command injection, or unsafe deserialization that looks perfectly fine. Kobo is the security gate for AI-assisted development: one command scans your code and hands your AI agent machine-readable findings to fix — before they ever reach production.

Free security scanning for your code, from the command line.

Kobo scans your project for real vulnerabilities — SQL injection, XSS, command injection, SSRF, path traversal, insecure deserialization, and more — and gives you a clear report you (or your AI coding agent) can act on immediately.

This repo is the command-line client only. It zips your project, sends it to the Kobo API over HTTPS, and prints the result. It's open source so you can verify exactly what it does.

What it catches

The bugs that actually get apps hacked — the ones that pass code review and slip out of an AI prompt looking totally fine:

  • 💉 Injection — SQL, NoSQL, OS-command, code/eval, LDAP, XPath
  • 🌐 Web attacks — XSS, SSRF, open redirects, request/header smuggling
  • 📂 Files & data — path traversal, unsafe deserialization, XXE, template injection
  • 🔑 Leaked secrets — hardcoded API keys, tokens, passwords
  • 📦 Risky dependencies — packages you import that have known security holes
  • ⚙️ Misconfig — insecure infrastructure config, weak crypto

…in the languages you actually ship:

Python · JavaScript · TypeScript · Java · Go · Ruby · PHP · C# · Kotlin · Rust · Scala · Swift · C · C++ · Dart

You get a plain list of file · line · what's wrong · how to fix — and a single letter grade (A–F) so you know at a glance whether it's safe to ship.


Install

Requires Python 3.10+.

pip install kobo-scan      # installs the `kobo` command

That's it — pip install kobo-scan (the package), then use kobo.

Other ways to install
# from GitHub
pip install git+https://github.com/kobo-cli/kobo.git

# or clone / download ZIP, then:
pip install .

# or run the single file directly, no install:
python kobo.py --help

Let your AI assistant use Kobo automatically

Kobo is built to be driven by AI coding agents (Claude, GPT, Cursor, Copilot, …) so security scanning happens while code is written — no manual step.

1. One-time setup (you do this once):

pip install kobo-scan
kobo register --email you@gmail.com
kobo verify <code>        # from your email

After this the API key is stored in ~/.kobo/, so the agent can scan without ever seeing your credentials.

2. Give your AI agent this instruction — paste it into your tool's rules/prompt:

After you write or modify code, run kobo scan --path . --format json. Read the JSON findings; for each, open file at line and fix the issue described by cwe + message. Re-run kobo scan until there are no critical or high findings. Never finish a task with an open critical/high vulnerability.

That's it — now the agent scans, reads machine-readable findings, fixes them, and re-scans on its own, every time it touches code.

Where to put the instruction:

Tool File / place
Claude Code CLAUDE.md in your repo
Cursor .cursorrules (or Settings → Rules)
GitHub Copilot .github/copilot-instructions.md
Windsurf .windsurfrules
Custom agent / API the system prompt

The report is pure JSON (file · line · severity · cwe · message), so any agent can parse and act on it with zero glue code — fully hands-off security as you build.

Getting started (3 steps)

# 1. Sign up — Kobo emails you a 6-digit code
kobo register --email you@gmail.com

# 2. Enter the code to activate your account
kobo verify 123456

# 3. Scan your project (you'll accept the terms once, the first time)
kobo scan --path .

That's it. Example output:

Security Grade: B
Findings: 7  (critical 0 · high 2 · medium 3 · low 2)
Full report: kobo report --last --format json

Use with an AI agent

Get the full machine-readable report and feed it to your assistant to auto-fix:

kobo scan --path . --format json      # findings as JSON
kobo report --last --format json      # re-fetch the latest report

Each finding includes the file, line, severity, CWE, and a short message.

Examples

Scan the current project:

kobo scan --path .
Security Grade: B
Findings: 7  (critical 0 · high 2 · medium 3 · low 2)
Full report: kobo report --last --format json

Scan a specific folder:

kobo scan --path ./services/api

Get the machine-readable report (file · line · severity · CWE · message — ready for an AI agent to fix):

kobo scan --path . --format json
{
  "grade": "B",
  "summary": { "total": 7, "critical": 0, "high": 2, "medium": 3, "low": 2 },
  "findings": [
    { "file": "app.py", "line": 42, "severity": "high",
      "cwe": "CWE-89", "title": "SQL Injection",
      "message": "Untrusted input flows into a SQL query" }
  ]
}

Pipe findings into your AI coding agent to auto-fix:

kobo scan --path . --format json > findings.json
# then: "Fix every finding in findings.json"

Re-fetch your latest report / list history:

kobo report --last --format json
kobo history

Use in CI (fail the build on a bad grade — example with jq):

GRADE=$(kobo scan --path . --format json | jq -r .grade)
[ "$GRADE" = "F" ] && { echo "Security grade F — failing build"; exit 1; }

Returning on a new machine (log in with your existing key instead of re-verifying):

kobo login --key kobo_xxxxxxxxxxxxxxxx
kobo scan --path .

All commands

Command Description
kobo register --email <email> Request a verification code
kobo verify <code> Verify and store your API key
kobo login --key <api-key> Log in on a new machine with an existing API key
kobo scan --path <dir> Scan a project (--format text|json)
kobo report --last Fetch your most recent report (--format json)
kobo history List your past scans
kobo whoami Show your account
kobo logout Remove stored credentials
kobo config --server <url> Point at a different API endpoint
kobo version Print the CLI version

Your API key is stored locally in ~/.kobo/ (readable only by you).

Already have an account? (new machine)

register/verify is a one-time signup. On another machine, don't re-verify (that rotates your key) — just log in with your existing key:

kobo login --key kobo_xxxxxxxxxxxxxxxx

Free tier

Unlimited use for individual developers and small teams, with a light rate limit (a few scans per 5-hour window). No payment, no card, no quotas to manage.

Privacy

Running a scan uploads your source code to the Kobo service, where it is stored and used to operate and improve the product. Remove secrets and credentials before scanning. Full details: TERMS.md. The CLI asks you to accept these terms once before your first scan.

License

The Kobo CLI is licensed under the GNU AGPL-3.0-or-later (LICENSE). You may use, modify, and redistribute it freely; any derivative — including a modified version run as a network service — must stay open under the same license. The Kobo backend service is separate and governed by TERMS.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kobo_scan-0.1.2.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kobo_scan-0.1.2-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file kobo_scan-0.1.2.tar.gz.

File metadata

  • Download URL: kobo_scan-0.1.2.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kobo_scan-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c337568cd697ab33c0ec27ad9332e1d2bb34a754b550015d1b137d003702c8c6
MD5 5e3feb02509afc42628242cf3515343c
BLAKE2b-256 7333f6b3610f07ff1665751a894f0a158889b67a0353c850eab019ffe8f45a54

See more details on using hashes here.

Provenance

The following attestation bundles were made for kobo_scan-0.1.2.tar.gz:

Publisher: publish.yml on kobo-cli/kobo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kobo_scan-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: kobo_scan-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kobo_scan-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6ecd586181eac5e8c7307c08cdbc162ecc08a9fd0e8eccbd204bece3045d6e25
MD5 140d65a00aff6d9dc586fc362b5dfbcb
BLAKE2b-256 359a9c70483c2c00be8f6b8ea1964b25c375f1b4c2d935b372915344bc05f78c

See more details on using hashes here.

Provenance

The following attestation bundles were made for kobo_scan-0.1.2-py3-none-any.whl:

Publisher: publish.yml on kobo-cli/kobo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page