Skip to main content

argus-languages

Built-in security scanner for 20+ languages and IaC formats — pure Python, no Semgrep, no Checkov, no extra installs.

pip install argus-languages
argus-languages scan /path/to/your/project

Requires Python 3.10+.


Quick start

pip install argus-languages

# Scan any supported project (auto-detects languages)
argus-languages scan /path/to/project

# JSON output
argus-languages scan /path/to/project --format json

# Scan a single file
argus-languages scan ./src/main.java

Python API

from argus_languages import scan_directory

result = scan_directory("/path/to/repo")
print(f"Findings: {len(result.findings)}")
for f in result.findings:
    print(f"[{f.severity}] {f.file}:{f.line} — {f.title}")

Usage by language

Same command for every language — point at your project root or a specific file.

JavaScript / TypeScript / Vue

argus-languages scan ./my-node-app
argus-languages scan ./src/components/Button.tsx

| Scans | .js .jsx .ts .tsx .mjs .vue | | Checks | XSS, SQL injection patterns, eval/exec, weak crypto, hardcoded secrets, CORS wildcard, NoSQL injection |

React / Next.js projects: use argus-codescan on npm instead — no Python needed.


Python

argus-languages scan ./django-app
argus-languages scan ./api/main.py

| Scans | .py .pyw | | Checks | Debug mode, hardcoded Flask secret, Django ALLOWED_HOSTS = *, SQL injection, pickle/yaml deserialization, command injection |


Java / Kotlin / Scala

argus-languages scan ./spring-boot-app
argus-languages scan ./android-app/src/main/java

| Scans | .java .jsp .kt .kts .scala | | Checks | SQL concatenation, XXE parsers, LDAP injection, path traversal, Spring CSRF disabled, log injection |


PHP

argus-languages scan ./laravel-app
argus-languages scan ./public/index.php

| Scans | .php .phtml | | Checks | XSS via echo $_…, LFI via include($…), SQL injection, unsafe unserialize(), open redirects |


Go

argus-languages scan ./cmd/api
argus-languages scan ./main.go

| Scans | .go | | Checks | SQL via fmt.Sprintf, TLS InsecureSkipVerify, command injection |


Ruby

argus-languages scan ./rails-app

| Scans | .rb .erb | | Checks | Shell injection, mass assignment, command injection |


C# / Rust / Swift / Scala / Perl / Lua / Elixir

argus-languages scan ./dotnet-api      # .cs
argus-languages scan ./rust-service    # .rs
argus-languages scan ./ios-app         # .swift
argus-languages scan ./elixir-app      # .ex .exs
Language Extensions Example checks
C# .cs SQL concat, BinaryFormatter deserialization
Rust .rs unsafe blocks, shell via Command
Swift .swift Insecure credential storage
Perl .pl .pm Open with user input
Lua .lua loadstring / dynamic eval
Elixir .ex .exs Code.eval_string

Dart / Flutter (mobile)

argus-languages scan ./my-flutter-app

| Scans | .dart files, pubspec.yaml, AndroidManifest.xml, Info.plist | | Checks | |

Dart source (.dart):

  • Cleartext http:// URLs
  • Hardcoded API keys / tokens
  • Weak MD5/SHA-1 hashing
  • TLS validation disabled (badCertificateCallback)
  • Sensitive data in SharedPreferences
  • Unrestricted WebView JavaScript
  • SQL concatenation in rawQuery

Flutter config:

  • android:debuggable="true" in AndroidManifest
  • Cleartext traffic / allowBackup / exported components
  • iOS ATS disabled (NSAllowsArbitraryLoads)
  • Hardcoded secrets in pubspec.yaml

Skips generated files: *.g.dart, *.freezed.dart.


Terraform

argus-languages scan ./infra
argus-languages scan ./modules/vpc/main.tf

| Scans | .tf .tfvars .hcl | | Checks | Public S3 ACLs, 0.0.0.0/0 security groups, unencrypted EBS, public RDS, hardcoded secrets, IAM wildcards, GCP/Azure public access |


Ansible

argus-languages scan ./ansible
argus-languages scan ./playbooks/site.yml

| Scans | .yml / .yaml in roles/, playbooks/, tasks/, handlers/, etc. | | Checks | Hardcoded passwords, SSL verify disabled, open file permissions (777), shell module usage, hardcoded tokens |


Docker

argus-languages scan ./Dockerfile
argus-languages scan ./docker-compose.yml

| Scans | Dockerfile, docker-compose.yml / .yaml | | Checks | Secrets in ENV, privileged mode, host network, docker socket mount, :latest tags |


Kubernetes

argus-languages scan ./k8s
argus-languages scan ./manifests/deployment.yaml

| Scans | .yaml / .yml / .json with apiVersion + kind | | Checks | Privileged containers, runAsUser 0, hostNetwork/hostPID, plaintext secrets, wildcard RBAC |


Shell / SQL

argus-languages scan ./scripts/deploy.sh
argus-languages scan ./migrations/001_users.sql

| Scans | .sh .bash .zsh / .sql | | Checks | curl piped to bash, unquoted variables / GRANT ALL / dynamic SQL exec |


Monorepo / multi-language project

Scan the whole repo — all languages are detected automatically:

argus-languages scan .

Example: a repo with frontend/ (JS), backend/ (Java), and infra/ (Terraform) is scanned in one command.


Full Argus CLI (optional)

For CSV export, MCP, DAST, and external tools (Checkov, tfsec, ansible-lint):

pip install argus-scan
argus scan code /path/to/project --output ./report.csv
argus scan terraform /path/to/infra
argus scan all /path/to/project

All supported languages

Category Languages / formats
Web & app JavaScript, TypeScript, Python, Java, Kotlin, PHP, Go, Ruby, C#, Rust, Swift, Scala, Perl, Lua, Elixir, Vue, Dart
Mobile Flutter (Dart + AndroidManifest + Info.plist + pubspec.yaml)
Infrastructure Terraform, Ansible, Docker, Kubernetes
Other Shell, SQL

Package Install Use case
argus-languages pip install argus-languages This package — lightweight, all languages above
argus-scan pip install argus-scan Full CLI + MCP + DAST + Checkov/tfsec
argus-codescan npm install argus-codescan React / Next.js / Node only

License

MIT — see GitHub.

Metadata

Release files for argus-languages 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for argus-languages 0.1.4
File Size Uploaded
argus_languages-0.1.4.tar.gz 18.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for argus-languages 0.1.4
File Interpreter ABI Platform
argus_languages-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 42.7 kB

Release files / argus_languages-0.1.4.tar.gz

Download URL argus_languages-0.1.4.tar.gz
Size 18.0 kB
Tags Source
SHA-256 checksum
How to use checksums
db554e6d6f59bf1de5fd9bbb11b05d0a303ecc5c9fcd3b12f74c7f3c72a8b2d7
BLAKE2b-256 checksum
How to use checksums
cad6ad98616dfa4fba5593e431de960f27da1a0fae8b52cba7944fe123f234b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / argus_languages-0.1.4-py3-none-any.whl

Download URL argus_languages-0.1.4-py3-none-any.whl
Size 24.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09df0a22d93c2932f69757cef9c4f36e1510808ab0e408f4cba8d284f087ef8f
BLAKE2b-256 checksum
How to use checksums
34c6a5e6ad2f508628252473ff40e3f70734326c85f12f9cad7826cdb7ecc2c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page