Unofficial Python client for querying, parsing, and analyzing bug reports from the syzbot public JSON API
Project description
syzbot-client
syzbot-client is an unofficial Python client for querying, parsing, and
analyzing bug reports from the syzbot dashboard. It uses
the versioned
syzbot public JSON API
and provides typed Python models for bug listings and details.
Use it to:
- query open, fixed, and invalid bugs from public syzbot targets;
- check whether a kernel crash title matches a known syzbot report;
- retrieve bug details, crash reports, kernel configs, and reproducers; and
- build and cache multi-target snapshots for repeated analysis.
The client discovers live dashboard targets, records partial snapshot failures,
and applies conservative HTTP throttling and retries. It also ships inline type
information through py.typed.
This project is not affiliated with or endorsed by the syzkaller or syzbot maintainers.
Installation
Python 3.10 or newer is required.
pip install syzbot-client
Quick start
Check whether a crash is already known, then retrieve the complete record only for the selected match:
from syzbot_client import BugGroup, SyzbotClient, SyzbotIndex
with SyzbotClient() as client:
bugs = client.fetch_group("upstream", BugGroup.OPEN)
matches = SyzbotIndex(bugs).match(
"possible deadlock in example_func"
)
if matches:
summary = matches[0].bug
bug = client.fetch_bug(summary.link)
print(matches[0].kind.value, bug.title)
Other common workflows include discovering targets with
client.fetch_targets(), aggregating targets with client.fetch_snapshot(),
retrieving linked artifacts with client.fetch_text(), and persisting results
with save_snapshot() and load_snapshot(). See the
usage guide
for complete, runnable examples and error-handling guidance.
Agent skill
The repository includes a ready-to-use Agent Skills-compatible package that teaches coding agents how to query syzbot data, match crash titles, fetch reproducers, and reuse cached snapshots with this library.
Copy skills/syzbot-client/ from a source checkout into the skills directory
recognized by your agent. Compatible agents can then invoke
$syzbot-client; the Python package and the skill can also be used
independently.
Development and contributing
Create a project-local environment and install the development dependencies:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install --editable '.[dev]'
Then run the standard checks:
python -m pytest
python -m ruff check src tests
python -m mypy src
Windows setup, coding conventions, test requirements, artifact validation, and the maintainer-only release workflow are documented in the contribution guide.
Security
The client sends only HTTP GET requests and rejects cross-origin links returned by the dashboard. Do not load snapshots from untrusted sources without reviewing them. Report suspected vulnerabilities through the repository's private security reporting channel rather than a public issue.
License
Licensed under the Apache License 2.0.
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
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 syzbot_client-0.1.0.tar.gz.
File metadata
- Download URL: syzbot_client-0.1.0.tar.gz
- Upload date:
- Size: 26.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4842e5641b8a5823c60fb5b4d2313a017cb57db8a9d58daa102b8aeabac71cb6
|
|
| MD5 |
19db9bd0fe075102282bc571994873ab
|
|
| BLAKE2b-256 |
aa287ffabeb4e3ab8087626da09861e1e914ec444f7c2ce7e1744664cffeb713
|
File details
Details for the file syzbot_client-0.1.0-py3-none-any.whl.
File metadata
- Download URL: syzbot_client-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e3f7333d6df4d0669238d23da05de4de1ca814c823cfeb9640d813f65207877
|
|
| MD5 |
836dc67e0e0ebeb233e552eb72afe6cf
|
|
| BLAKE2b-256 |
0f5defd498538bf5dec17f35547789e5f122966832d989a437ee868bbae452cb
|