Official Python SDK for Precogs AI - Security-first code analysis
Project description
Precogs SDK
Official Python SDK for the Precogs AI security platform.
Installation
pip install precogs-sdk
Quick Start
from precogs import PrecogsClient
# Initialize with your API key
client = PrecogsClient(api_key="pk_live_xxxxxxxxxxxx")
# Or use environment variable
# export PRECOGS_API_KEY=pk_live_xxxxxxxxxxxx
client = PrecogsClient()
# List your projects
projects = client.projects.list()
for project in projects:
print(f"Project: {project['name']}")
# Trigger a code scan
scan = client.scans.trigger_code_scan(project_id="proj_123")
print(f"Scan started: {scan['id']}")
# Get vulnerabilities
vulns = client.vulnerabilities.list(severity="critical")
for vuln in vulns:
print(f"[{vuln['severity']}] {vuln['title']}")
Features
- Code Security Scanning - SAST analysis for 20+ languages
- Dependency Scanning - SCA for npm, pip, maven, etc.
- IaC Scanning - Terraform, CloudFormation, Kubernetes
- Container Scanning - Docker image vulnerability detection
- AI-Powered Fixes - Get suggested code fixes for vulnerabilities
API Reference
Projects
# List all projects
projects = client.projects.list()
# Get a specific project
project = client.projects.get("proj_123")
# Create a new project
project = client.projects.create(
name="My App",
repo_url="https://github.com/org/repo",
provider="github",
branch="main"
)
Scans
# Trigger different scan types
scan = client.scans.trigger_code_scan(project_id="proj_123")
scan = client.scans.trigger_dependency_scan(project_id="proj_123")
scan = client.scans.trigger_iac_scan(project_id="proj_123")
scan = client.scans.trigger_container_scan(
project_id="proj_123",
image="nginx:latest"
)
# Check scan status
status = client.scans.get_status(scan_id="scan_456")
# Get scan results
results = client.scans.get_results(scan_id="scan_456")
Vulnerabilities
# List vulnerabilities with filters
vulns = client.vulnerabilities.list(
project_id="proj_123",
severity="high",
status="open"
)
# Get vulnerability details
vuln = client.vulnerabilities.get("vuln_789")
# Get AI-generated fix
fix = client.vulnerabilities.get_ai_fix("vuln_789")
print(fix['suggestedCode'])
# Update status
client.vulnerabilities.update_status(
vuln_id="vuln_789",
status="fixed",
reason="Patched in v2.1.0"
)
Dashboard
# Get overall security metrics
overview = client.dashboard.get_overview()
# Get severity distribution
distribution = client.dashboard.get_severity_distribution()
# Get vulnerability trend
trend = client.dashboard.get_trend(days=30)
Error Handling
from precogs import PrecogsClient, AuthenticationError, RateLimitError
try:
client = PrecogsClient(api_key="pk_live_xxx")
projects = client.projects.list()
except AuthenticationError:
print("Invalid API key")
except RateLimitError as e:
print(f"Rate limited. Retry after {e.retry_after} seconds")
Environment Variables
| Variable | Description |
|---|---|
PRECOGS_API_KEY |
Your Precogs API key |
License
MIT License - see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
precogs_sdk-0.1.0.tar.gz
(6.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file precogs_sdk-0.1.0.tar.gz.
File metadata
- Download URL: precogs_sdk-0.1.0.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69b0d4f01432d9c2fa1b9820e8738741627afae6315f3984db8a066fe0a7a514
|
|
| MD5 |
566aebb408d69837418c4d25deee5f22
|
|
| BLAKE2b-256 |
9686b236bb76459034556477e45cbf432bcab19de94aba19547ef16b698a78c1
|
File details
Details for the file precogs_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: precogs_sdk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f8ffde68d02a2f3de6936c8b7da07eeab21d0b2a13a6c3ab3506c443d441418
|
|
| MD5 |
8c50be70cd5a2135af3e8e28bda19a51
|
|
| BLAKE2b-256 |
7312791ae20ca63bac003991997a6978c3e5a58fdc1a33cb6adfa9e036103390
|