🐛 DebugAI
AI-powered CLI tool that turns any stack trace into a root cause analysis — in seconds.
No dashboard. No account. No SDK to integrate. Just pipe in a log and get answers.
cat production.log | debuai --ai
Demo
https://github.com/user-attachments/assets/5771164c-865e-4c95-aff8-3cc7e2dae0f2
Install
pip install debuai
Quickstart
# Analyse a log file
debuai error.log
# Pipe from any source
cat error.log | debuai
kubectl logs my-pod | debuai
docker logs my-container | debuai
# With AI analysis
debuai error.log --ai
# Machine-readable JSON output
debuai error.log --json
debuai error.log --ai --json | jq .
# Choose your AI provider
debuai error.log --ai --provider openai
debuai error.log --ai --provider anthropic
debuai error.log --ai --provider nvidia
# Analyse the last N errors in a log
debuai error.log --top 3
What It Does
Given a stack trace like this:
Traceback (most recent call last):
File "server.py", line 10, in handle_request
result = process_data(payload)
File "processor.py", line 25, in process_data
value = parse_input(raw)
File "parser.py", line 8, in parse_input
return int(raw)
ValueError: invalid literal for int() with base 10: 'abc'
DebugAI gives you this:
🔥 Exception Type ValueError
📍 Failure Origin parse_input
🔗 Execution Chain handle_request → process_data → parse_input
🤖 AI Root Cause The function receives a string that cannot be
converted to int — 'abc' is passed where a
numeric string is expected.
🛠 Suggested Fix Validate input before conversion:
if not raw.isdigit(): raise ValueError(...)
🛡 Prevention Add input validation at the API boundary so
invalid types never reach the parsing layer.
🟢 Confidence: HIGH
Supported Languages
| Language | Detection | Parser |
|---|---|---|
| Python | Traceback (most recent call last) |
✅ |
| Java | .java: in frames |
✅ |
| Go | goroutine / panic: |
✅ |
| C# / .NET | at Namespace.Class.Method() |
✅ |
| Node.js | .js: in frames |
✅ |
Language is auto-detected — no --lang flag needed.
AI Providers
DebugAI works with whichever key you already have. Set one environment variable and it just works.
export OPENAI_API_KEY=... # Uses gpt-4o-mini
export ANTHROPIC_API_KEY=... # Uses claude-haiku
export NVIDIA_API_KEY=... # Uses NVIDIA inference
Auto-detection order: OpenAI → Anthropic → NVIDIA. Override with --provider.
JSON Output
The --json flag outputs clean, pipeable JSON — no Rich formatting, no colour codes.
debuai error.log --ai --json
{
"exception": "ValueError",
"failure_origin": "parse_input",
"execution_chain": ["handle_request", "process_data", "parse_input"],
"source_file": "parser.py",
"language": "python",
"ai": {
"root_cause": "...",
"fix": "...",
"prevention": "...",
"confidence": "high"
}
}
Pipe into jq, Slack bots, Jira integrations, or CI pipelines.
CI / CD Integration
Add DebugAI to your GitHub Actions workflow to get AI analysis on every failed build:
- name: Analyse failure
if: failure()
run: |
pip install debuai
cat logs/error.log | debuai --ai --json
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
Setup for Development
git clone https://github.com/kanhaiya-bhayana/debugai.git
cd debugai
python -m venv venv
source venv/bin/activate # Mac/Linux
venv\Scripts\activate # Windows
pip install -e ".[dev]"
Run tests:
python -m pytest tests/ -v
Set your API key:
export OPENAI_API_KEY=your_key_here
Project Structure
debugai/
├── parser/
│ ├── python.py # Python traceback parser
│ ├── java.py # Java / Spring parser
│ ├── go.py # Go panic parser
│ ├── csharp.py # C# / .NET parser
│ ├── node.py # Node.js parser
│ └── registry.py # Language auto-detection router
├── providers/
│ ├── openai_provider.py
│ ├── anthropic_provider.py
│ └── nvidia.py
├── analyzer.py # Core extraction logic
├── ai_analyzer.py # Provider selection + AI orchestration
└── cli.py # Typer CLI entry point
tests/
├── test_parsers.py # 50 parser tests
├── test_analyzer.py # 28 analyzer tests
└── test_safeguards.py # 13 edge case + safeguard tests
Roadmap
- Python, Java, Go, C#, Node.js parsers
- Multi-provider AI backend (OpenAI, Anthropic, NVIDIA)
- Structured JSON output
- CI/CD pipeline
- PyPI publish
- GitHub issue search — link traces to known issues automatically
- Kubernetes / Docker log stream support
- VS Code extension
- Web UI for team sharing
Contributing
Contributions are welcome. Please read CONTRIBUTING.md before opening a PR.
# Run the full test suite before submitting
python -m pytest tests/ -v
License
MIT — see LICENSE for details.
Built with ❤️ for developers who are tired of Googling stack traces.
Metadata
Release files for debuai 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| debuai-0.1.1.tar.gz | 19.6 kB | Without provenance | Details for debuai-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| debuai-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for debuai-0.1.1-py3-none-any.whl |
Total release size: 38.7 kB
Release files / debuai-0.1.1.tar.gz
| Download URL | debuai-0.1.1.tar.gz |
|---|---|
| Size | 19.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
68dd0b3767e2279842820d9e08c78365522a3b44d5c8307e11488c3eef704296
|
|
BLAKE2b-256 checksum How to use checksums |
aa66f59d983295769c2ffd84c5d8458224968baa6c6ddc31edfe09d19888eb9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / debuai-0.1.1-py3-none-any.whl
| Download URL | debuai-0.1.1-py3-none-any.whl |
|---|---|
| Size | 19.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6b91913186fbfc37bad182187162a8fea666124b57d2fddd84b1bdc04ba944d2
|
|
BLAKE2b-256 checksum How to use checksums |
05d8b721bf91e68b3743220b5f9f2231fc4581c24e7fe49d6c87ae6c93e76375
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Security for debuai 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.