quin-scanner added to PyPI

Share

Nothing in Your Codebase is Hidden from Quin

A 4000‑word Overview of the Gaincontro CLI Tool

“Nothing in your codebase is hidden from Quin.”
Headline from the Gaincontro press release, 2026‑05‑24

Gaincontro’s new open‑source command‑line interface (CLI) Quin promises a radical shift in how developers see their own code. Drawing inspiration from the Song‑dynasty judge Bao Qingtian, famed for his incorruptibility and keen eye for deception, Quin is positioned as the ultimate “code‑base oracle.” In this article we walk through everything you need to know: from the tool’s historical namesake and core architecture to installation, practical use cases, and the wider impact on the security‑engineering community.


Table of Contents

  1. Introduction
  2. The Historical Context: Bao Qingtian
  3. Why Quin? The Naming Rationale
  4. What is Quin?
  5. Core Features at a Glance
  6. Installation & Quickstart
  7. CLI Architecture & Internals
  8. Deep Dive: Code‑Scanning Engine
  9. Secrets & Credential Detection
  10. Dependency & Package Management Analysis
  11. Static Analysis & Vulnerability Detection
  12. Dynamic Code Analysis & Runtime Monitoring
  13. Integration with CI/CD Pipelines
  14. Local Development Workflow
  15. Project‑Wide Visibility & Dashboards
  16. Community & Collaboration Features
  17. Extending Quin: Plugins & Custom Rules
  18. Performance Benchmarks
  19. Security & Compliance Use Cases
  20. Future Roadmap & Planned Enhancements
  21. Concluding Thoughts

1. Introduction

When you write code, you’re often under the impression that every file, module, or function is transparent to you and your team. In reality, hidden code paths, obsolete dependencies, and secret tokens can lurk, silently compromising the integrity of your software. Gaincontro’s Quin attempts to expose these hidden elements, making the entire codebase visible, auditable, and, most importantly, secure.

Quin is an open‑source CLI, released under the Apache 2.0 license, that you can run on Windows, macOS, and Linux. Unlike traditional static‑analysis tools that focus on one language or a narrow set of rules, Quin is designed to handle multi‑language projects with a unified, declarative rule system.


2. The Historical Context: Bao Qingtian

The name “Quin” is not arbitrary. Gaincontro explicitly linked the tool to Bao Qingtian (北清天), a celebrated judge of the Song Dynasty (960‑1279 AD). Bao was renowned for:

  • Unwavering Integrity: He was considered incorruptible, refusing bribes or political pressure.
  • Rigorous Scrutiny: He famously scrutinized every piece of evidence, no matter how trivial.
  • Unmasking Deception: Bao had a talent for uncovering hidden motives, ensuring justice was served.

In a world where code can be deceptive—hidden variables, legacy binaries, and obfuscated dependencies—Quin aims to embody these traits. Its mission is to be a “code judge” that can see through any deception.


3. Why Quin? The Naming Rationale

Gaincontro’s marketing team chose Quin (pronounced “kwin”) to symbolize the following:

  1. Quintessential Transparency: Just as Bao sought truth, Quin seeks absolute visibility into your project.
  2. Quintuple Security Layer: The tool is designed to scan for secrets, vulnerabilities, obsolescence, misuse, and compliance issues—five core layers of security.
  3. Quintet of Languages: Initially targeting JavaScript/Node.js, Python, Java, Go, and Rust—five languages that dominate modern software stacks.

The name’s allusion to a historical figure also signals that Quin is more than a simple linter; it is a guardian of justice within your codebase.


4. What is Quin?

Quin is a command‑line interface that performs comprehensive analysis on your source code. It is designed for:

  • Full‑stack, multi‑language projects: Supports JavaScript, TypeScript, Python, Java, Go, Rust, and more.
  • Large repositories: Handles millions of lines of code with minimal performance overhead.
  • Continuous Integration: Seamlessly integrates with Jenkins, GitHub Actions, GitLab CI, CircleCI, and Azure Pipelines.
  • Local Development: Detects potential issues before code reaches the repository.

Its primary function is to uncover hidden code—dead paths, legacy modules, secret tokens, and outdated dependencies—providing actionable insights.


5. Core Features at a Glance

| Feature | Description | Use Case | |---------|-------------|----------| | Secrets Scanning | Detects exposed passwords, API keys, certificates. | Prevent accidental credential leakage. | | Dependency Analysis | Identifies outdated or vulnerable libraries. | Maintain a healthy dependency graph. | | Static Code Analysis | Finds security bugs, unreachable code, and anti‑patterns. | Harden code before deployment. | | Dynamic Analysis | Uses runtime instrumentation to capture hidden paths. | Uncover obfuscated logic. | | Compliance Reporting | Generates GDPR, HIPAA, SOC2 compliant reports. | Pass audits. | | Plugin System | Extensible via custom rules and integrations. | Tailor Quin to company standards. | | Interactive Dashboard | CLI‑based UI for real‑time monitoring. | Immediate feedback in terminal. | | CI/CD Hooks | Auto‑runs on pull requests and merge events. | Prevent regressions. |


6. Installation & Quickstart

6.1. Prerequisites

  • Node.js ≥ 18 (for the core CLI runtime)
  • Python 3.8+ (for optional Python integration)
  • Java JDK 11+ (for Java projects)
  • Go 1.20+ (for Go projects)

6.2. Install via npm

npm install -g quin-cli

6.3. Verify Installation

quin --version
# Output: quin-cli/1.0.0

6.4. Quick Start Command

quin analyze

Running quin analyze scans the current working directory by default, producing a summary report:

Scanning project: /path/to/repo
Files analyzed: 14,523
Secrets found: 3
Outdated dependencies: 12
Static violations: 56
Runtime anomalies: 4

Report generated: quin-report-2026-05-24.json

7. CLI Architecture & Internals

Quin’s architecture is a layered, modular design that separates concerns cleanly:

  1. Scanner Layer – Parses files, tokenizes code, and identifies file types.
  2. Rule Engine – A declarative rule set that can be extended via JSON/YAML.
  3. Analyzer Layer – Applies rules, generates diagnostics.
  4. Reporting Layer – Formats output in JSON, Markdown, or HTML.
  5. Extensibility Layer – Plugin hooks, webhooks, and API endpoints.

The core runtime is written in TypeScript for its rich type system and compile‑time safety. The scanner uses language‑specific parsers (e.g., Acorn for JavaScript, go/parser for Go, javaparser for Java) while a unified interface translates parse trees into a common intermediate representation (IR). This IR is the lingua franca for rule evaluation.


8. Deep Dive: Code‑Scanning Engine

8.1. File Discovery

Quin uses glob patterns defined in .quinignore (similar to .gitignore) to skip files. It supports:

  • Recursive directories
  • Exclusion of build artifacts (e.g., dist/, node_modules/, venv/)

8.2. Language Detection

Using file extensions and shebangs, Quin automatically detects language context. For example:

  • *.js → JavaScript
  • *.ts → TypeScript
  • *.py → Python
  • *.java → Java
  • *.go → Go
  • *.rs → Rust

8.3. Tokenization & Abstract Syntax Trees (ASTs)

Quin tokenizes each file into an AST, enabling sophisticated analysis:

  • Control‑flow graph (CFG) generation for static analysis.
  • Abstract Data Flow Analysis (ADFA) for detecting dead code.

The ASTs are then converted to the IR, a language‑agnostic node representation that the rule engine consumes.


9. Secrets & Credential Detection

9.1. Built‑in Secret Rules

Quin ships with over 200 pre‑defined secret detection rules:

| Category | Example Patterns | |----------|------------------| | Passwords | (?i)(password|pwd)[:=]\s*['"]?[^'"\s]{8,} | | API Keys | AKIA[0-9A-Z]{16} | | AWS Credentials | (?i)(aws_access_key_id|aws_secret_access_key)[:=]\s*['"][A-Za-z0-9+/=]{20,} | | Certificates | -----BEGIN (CERTIFICATE|PRIVATE KEY) |

9.2. Regex & Machine‑Learning Hybrid

While regex rules cover the majority of secrets, Quin also integrates a lightweight ML model trained on common credential patterns. The ML component improves detection rates for obfuscated tokens or concatenated strings.

9.3. Reporting & Redaction

Secrets are reported with the following details:

  • File path
  • Line number
  • Confidence score
  • Suggested remediation (e.g., environment variables)

Optionally, the user can enable auto‑redaction in the output file. Quin will replace the secret with a placeholder (<REDACTED>).


10. Dependency & Package Management Analysis

Quin’s dependency analyzer covers multiple ecosystems:

  • Node.js: package.json & package-lock.json
  • Python: requirements.txt, Pipfile, poetry.lock
  • Java: pom.xml, build.gradle
  • Go: go.mod, go.sum
  • Rust: Cargo.toml, Cargo.lock

10.1. Vulnerability Matching

Quin queries the National Vulnerability Database (NVD) and GitHub Advisory Database to match dependency versions against known CVEs.

10.2. License Compliance

It cross‑checks license texts against SPDX identifiers, flagging incompatible licenses that might violate corporate policies.

10.3. Outdated Dependencies

For each dependency, Quin lists:

  • Current version
  • Latest available version
  • Security severity of the difference

10.4. Example Output

{
  "dependencies": [
    {
      "name": "express",
      "current": "4.17.1",
      "latest": "4.18.2",
      "cveCount": 2,
      "severity": ["High"],
      "license": "MIT"
    },
    {
      "name": "bcrypt",
      "current": "5.0.1",
      "latest": "5.0.1",
      "cveCount": 0,
      "severity": [],
      "license": "MIT"
    }
  ]
}

11. Static Analysis & Vulnerability Detection

Quin uses a rule‑based system for static analysis. Rules are expressed in a domain‑specific language (DSL) that is YAML‑driven. Example:

rules:
  - id: SQL_INJECTION
    description: Detect unsanitized SQL queries
    language: javascript
    pattern: |
      function.*\(\s*.*\s*\)\s*{\s*.*\.query\s*\(.*\)
    severity: High

11.1. Common Vulnerabilities

  • SQL Injection (JavaScript, Java)
  • Cross‑Site Scripting (XSS) (HTML templates)
  • Buffer Overflows (C/C++, Go)
  • Race Conditions (Go, Rust)
  • Insecure Deserialization (Java, .NET)

11.2. Unreachable Code Detection

Quin’s CFG analysis flags:

  • Dead branches: Code that will never execute.
  • Unreachable returns: return statements after throw or process.exit.

This assists developers in maintaining a lean codebase.


12. Dynamic Code Analysis & Runtime Monitoring

While static analysis is powerful, dynamic analysis catches hidden paths that static tools miss.

12.1. Instrumentation

Quin uses byte‑code instrumentation (for Java) and AST rewriting (for JavaScript/TypeScript) to inject monitoring hooks.

12.2. Execution Traces

During a test run or a short “dry‑run” of the application, Quin captures:

  • Call‑stack snapshots
  • Variable state changes
  • Unhandled exceptions

12.3. Hidden Path Discovery

If a function never gets executed under normal test conditions, Quin flags it as a potential dead path or feature flag. It suggests adding a test case or refactoring.

12.4. Performance Overhead

Dynamic instrumentation adds a ~5–10% overhead during analysis, acceptable for CI pipelines or local debugging.


13. Integration with CI/CD Pipelines

Quin’s design makes it an excellent fit for automated pipelines.

13.1. GitHub Actions

name: Code Quality

on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install Quin
        run: npm install -g quin-cli
      - name: Run Quin
        run: quin analyze --ci
      - name: Upload Report
        uses: actions/upload-artifact@v3
        with:
          name: quin-report
          path: quin-report-*.json

13.2. Jenkins

pipeline {
  agent any
  stages {
    stage('Scan') {
      steps {
        sh 'quin analyze --ci'
      }
    }
  }
  post {
    always {
      junit 'quin-report-*.xml'
    }
  }
}

13.3. Failure Policies

  • Strict mode: Mark PR as failed if any High severity issues are found.
  • Lenient mode: Allow merge but generate a notification email.

14. Local Development Workflow

Quin is designed to integrate into the developer’s day‑to‑day habits.

14.1. Pre‑Commit Hook

git init
git config core.hooksPath .githooks

# .githooks/pre-commit
#!/bin/sh
quin analyze --quiet

This runs before every commit, ensuring no new issues slip through.

14.2. IDE Integration

  • VSCode: Extension auto‑runs Quin on file save.
  • IntelliJ: Plugin exposes a “Quin Scan” button.

14.3. Live Feedback

Quin’s interactive dashboard runs in the terminal:

quin watch

It shows real‑time diagnostics as you type. The dashboard also supports:

  • Hot‑reloading: No restart needed after rule changes.
  • Code folding: Focus on relevant sections.

15. Project‑Wide Visibility & Dashboards

Quin’s reporting system produces human‑readable and machine‑friendly outputs.

15.1. Markdown Report

# Quin Scan Report
**Date**: 2026-05-24
**Project**: AwesomeApp

## Summary
- Secrets: **3** (`High`)
- Vulnerabilities: **12** (`Critical: 2`, `High: 4`, `Medium: 6`)
- Outdated Dependencies: **12** (`Critical: 1`, `High: 2`)
- Unreachable Code: **7**

## Details
1. **Secret**: API_KEY in `src/config.js` line 42
2. **Vulnerability**: CVE‑2026‑1234 in `express` 4.17.1 (High)
...

15.2. JSON/CSV for CI Systems

The --output json flag dumps diagnostics into a structured format that can be consumed by CI dashboards like SonarQube or GitHub Code Scanning.

15.3. Web Dashboard (Optional)

Quin can be paired with the open‑source Quin‑Dashboard, a lightweight Flask app that visualizes:

  • Issue trend over time
  • Severity heatmap
  • License compliance status

16. Community & Collaboration Features

Quin is built to foster a community around secure coding.

16.1. Issue Templates

A dedicated issue_template.yml prompts contributors to fill in:

  • Language stack
  • Problem description
  • Suggested rule set

16.2. Rule Marketplace

Gaincontro hosts a public rule marketplace where community members can upload custom rule sets. Each rule includes:

  • Name
  • Description
  • Author
  • License

16.3. Collaboration Mode

Quin supports a collaborative mode where multiple developers can share diagnostics via a lightweight local server. This facilitates pair‑programming and code reviews.


17. Extending Quin: Plugins & Custom Rules

The extensibility layer is a cornerstone of Quin’s design.

17.1. Plugin API

Plugins are simple JavaScript/TypeScript modules that export a run function. Example:

export function run(context) {
  const { ast, file } = context;
  // Custom logic
  if (file.language === 'javascript' && ast.hasUnsafeEval()) {
    context.report({
      ruleId: 'CUSTOM_UNSAFE_EVAL',
      message: 'Unsafe eval usage detected.',
      severity: 'High',
      line: ast.evalLine
    });
  }
}

Plugins can be added via:

quin plugin add @quin/awesome-plugin

17.2. Custom Rule Syntax

Custom rules are written in YAML and interpreted by the rule engine:

custom_rules:
  - id: NO_LOGGING_IN_PROD
    description: Ensure no console.log statements in production
    language: javascript
    pattern: 'console\.log\(.*\)'
    severity: Medium
    env: production

17.3. Cross‑Language Rules

With the IR, you can write a rule that applies to multiple languages (e.g., checking for hardcoded credentials in any file).


18. Performance Benchmarks

Gaincontro ran a comprehensive benchmark across 10 open‑source projects (JavaScript, Python, Java, Go, Rust). Results:

| Project | Lines of Code | Scan Time (CLI) | CPU Usage | Memory | |---------|---------------|-----------------|-----------|--------| | Node.js | 2.5M | 12s | 30% | 400MB | | Flask | 450K | 4s | 15% | 250MB | | Spring | 3.1M | 18s | 35% | 550MB | | Go‑server | 1.1M | 9s | 28% | 350MB | | Rocket | 700K | 6s | 20% | 280MB |

Quin uses incremental parsing: only files changed since the last scan are re‑parsed, cutting runtime dramatically in CI.


19. Security & Compliance Use Cases

Quin is not only a developer tool but also a compliance assistant.

19.1. GDPR Data Protection

  • Detects hardcoded PII (email, SSN).
  • Ensures proper encryption usage.
  • Generates a compliance matrix.

19.2. HIPAA

  • Scans for unencrypted patient data.
  • Flags insecure data flow paths.

19.3. SOC 2

  • Generates evidence reports for Security and Availability categories.
  • Provides audit‑ready logs.

19.4. ISO 27001

  • Offers policy checks (e.g., code signing, secret rotation).

Organizations can integrate Quin into their Audit Trail to provide objective evidence during reviews.


20. Future Roadmap & Planned Enhancements

Gaincontro has outlined a 12‑month roadmap:

| Quarter | Feature | Description | |---------|---------|-------------| | Q3 2026 | Machine‑Learning‑Based Anomaly Detection | Detect unusual code patterns via unsupervised learning. | | Q4 2026 | GraphQL & API Security Rules | Special rules for GraphQL, REST endpoints. | | Q1 2027 | Container‑Level Analysis | Scan Dockerfiles, Kubernetes manifests for secrets. | | Q2 2027 | AI‑Generated Rule Suggestions | Auto‑suggest new rules based on past findings. | | Q3 2027 | Enterprise Dashboard | Centralized web UI for multiple projects. | | Q4 2027 | Security‑as‑Code Integration | Connect with Terraform, Pulumi, CloudFormation. |

The community can contribute via feature requests on the Quin GitHub repository.


21. Concluding Thoughts

Quin is an ambitious, all‑encompassing tool that attempts to bring the rigor of historical legal judgment into modern code inspection. By combining static and dynamic analysis, secrets detection, dependency scrutiny, and compliance reporting into a single, extensible CLI, Quin addresses a gap that many developers and security teams have long felt: the invisibility of hidden code paths and legacy baggage.

Whether you’re a solo developer looking for a pre‑commit safety net or a security lead managing a multi‑language monorepo, Quin offers a modular, open‑source solution that grows with your needs. Its design philosophy—full transparency, integrity, and community‑driven extensibility—mirrors its namesake, Bao Qingtian, making it a fitting guardian for your codebase.

“Nothing in your codebase is hidden from Quin.” Indeed, with Quin, your code’s secrets are exposed, your dependencies are audited, and your vulnerabilities are flagged—before they can become the next headline.


© 2026 Gaincontro, Inc. All rights reserved.

Read more