Getting Started with the KinoSec CLI

Run your first pentest from the terminal in under 5 minutes. Install the CLI, add your domain, configure credentials, scan it, and export the report.

The KinoSec dashboard is great, but if you live in the terminal, the CLI is your new best friend. It lets you run pentests, manage assets, and export reports — all without leaving your shell.

Here's what we'll cover:

  • Install the CLI
  • Authenticate with your API token
  • Add your domain as a target
  • Configure credentials for authenticated pentesting
  • Run a pentest and watch it live
  • Review findings the scan discovers
  • Export a report you can share with your team

Let's go.


Prerequisites

Before we start, you'll need two things:

1. A KinoSec account. If you don't have one yet, sign up here.

2. An API token. Head to your dashboard:

  • Go to Settings → API Tokens → Create Token
  • Give it a name like "My CLI Token"
  • Select these scopes: assets:read, assets:write, scans:read, scans:create, findings:read, reports:read
  • Hit create and copy the token — it starts with kns_ and is only shown once

Keep that token handy. You'll need it in a moment.


Step 1 — Install the CLI

The fastest way is a single command — no Node.js required:

curl -fsSL https://kinosec.ai/install | bash

Or via npm if you prefer:

npm install -g @kinosec/cli

Confirm it's working:

kinosec --version
0.10.0

Step 2 — Authenticate

Log in with the API token you just created:

kinosec auth login
API token: ********
✓ Authenticated as [email protected]
  Plan: Security Pro (kns_plan_security_pro)
  Org: Varradon Security

You can also pass the token directly with --token, or set the KINOSEC_TOKEN environment variable if you prefer not to store credentials locally.

Verify everything looks right:

kinosec me
User ID:    …46655440000
Email:      [email protected]
Plan:       Security Pro (kns_plan_security_pro)
Org:        Varradon Security
Auth Type:  pat
Token ID:   …a1b2c3d4
Scopes:     assets:read, assets:write, scans:read, scans:create, findings:read, reports:read

Step 3 — Add Your Domain

Before scanning, you need to tell KinoSec what you own. Let's add a domain:

kinosec asset create --type domain --value tessarly.io
✓ Asset created: tessarly.io
  ID: 7f3a9b2c-1234-4abc-9def-567890abcdef
  Type: domain

Step 4 — Configure Credentials (Optional)

Most real vulnerabilities hide behind login pages. If your app has authenticated areas, configure credentials so KinoSec can test them:

kinosec asset auth set tessarly.io --type bearer --bearer-token "$TOKEN"

KinoSec supports five auth types depending on how your app handles authentication:

Type Use when
bearer Your app uses Authorization: Bearer <token> headers
basic Your app uses HTTP Basic Authentication
apikey Your app uses a custom API key header
session Your app has a login form
cookie You want to provide a pre-authenticated session cookie

Not sure which flags you need? Use the interactive mode — it walks you through it:

kinosec asset auth set tessarly.io

Want to test for broken access controls? Add a second account with lower privileges:

kinosec asset auth set-target tessarly.io \
  --target-username [email protected] \
  --target-password "$VIEWER_PASS"

KinoSec will try to access the target's data using the primary account — any success means a vulnerability.

Verify what's configured:

kinosec asset auth show tessarly.io

Pass credentials via environment variables to keep them out of shell history.


Step 5 — Run Your First Pentest

Time for the fun part. Start a pentest:

kinosec pentest --target tessarly.io

The CLI will ask you to confirm you're authorized to test this target:

⚠  Authorization Required

Penetration testing without proper authorization is illegal
and may result in criminal prosecution.

Target: tessarly.io

By proceeding, you confirm that:
  • You own or have explicit written authorization to test this target
  • You will comply with all applicable laws and regulations
  • You will not use the results for illegal or malicious purposes
  • You accept full legal responsibility for this pentest

Unauthorized access to computer systems is a criminal offense under
laws such as the CFAA (US), Computer Misuse Act (UK), and similar
legislation worldwide. KinoSec bears no liability for unauthorized
use of its services.

Agree and continue? (y/N) y

Type y and hit Enter. The CLI automatically starts watching progress:

✓ Pentest started: tessarly.io
  Profile ID: a1b2c3d4-5678-4abc-9def-abcdef012345
  Mode: full

─────────────────────────────────────

✓ Subdomain enumeration                     14.2s  (total 14.2s)
✓ Port scanning                             22.8s  (total 37.0s)
✓ Vulnerability scanning                   412.5s  (total 449.5s)
✓ Analysis                                  98.3s  (total 547.8s)

✓ Pentest completed: tessarly.io    547.8s

  Findings:  1 critical   1 high   1 medium   1 low   0 info

  View details:  kinosec finding list a1b2c3d4-5678-4abc-9def-abcdef012345

Full mode is the default and runs a comprehensive pentest — it takes 1-2 hours. You can also use the short flag -t instead of --target.

Press Ctrl+C to stop watching — the scan continues in the background. If you configured credentials in Step 4, KinoSec automatically uses them during the scan.


Step 6 — View Your Findings

Let's see what the scan found:

kinosec finding list a1b2c3d4-5678-4abc-9def-abcdef012345
┌──────────────────────────────────────┬──────────────────────────────────────────┬──────────┬────────┐
│ ID                                   │ Name                                     │ Severity │ Status │
├──────────────────────────────────────┼──────────────────────────────────────────┼──────────┼────────┤
│ b1c2d3e4-5678-4abc-9def-111111111111 │ SQL Injection in Login Form              │ CRITICAL │ open   │
│ b1c2d3e4-5678-4abc-9def-222222222222 │ Missing CSRF Token                       │ HIGH     │ open   │
│ b1c2d3e4-5678-4abc-9def-333333333333 │ Insecure Cookie Flags                    │ MEDIUM   │ open   │
│ b1c2d3e4-5678-4abc-9def-444444444444 │ Server Version Disclosure                │ LOW      │ open   │
└──────────────────────────────────────┴──────────────────────────────────────────┴──────────┴────────┘

Want details on a specific finding? Drill in:

kinosec finding get b1c2d3e4-5678-4abc-9def-111111111111
ID:            b1c2d3e4-5678-4abc-9def-111111111111
Name:          SQL Injection in Login Form
Severity:      CRITICAL
Status:        open
Verification:  verified
Phase:         vulnerability-scanning
Created:       2026-05-12T14:23:45Z

Description
───────────
  User input is directly concatenated into SQL queries without
  sanitization, allowing an attacker to extract or modify database
  contents.

Solution
────────
  Use parameterized queries and prepared statements. Never
  concatenate user input into SQL strings.

Step 7 — Export Your Report

Package everything into a report you can share:

kinosec report export a1b2c3d4-5678-4abc-9def-abcdef012345 --format markdown > pentest-report.md

Drop this into your team's wiki, attach it to a compliance ticket, or share it with stakeholders. Need machine-readable output? Skip the --format flag — JSON is the default.


What's Next

You've just run your first pentest from the terminal. Here's what else you can do:

Happy hacking.