🔧 Fixit.AI
AI-Powered API Testing Agent with Zero-Config Onboarding for OpenAPI-First Development
Fixit.AI is an offline-first API testing platform that automatically generates comprehensive test suites, detects security vulnerabilities, and provides AI-powered failure analysis. Built for modern API development with native support for FastAPI and Express.js.
🌟 Key Features
- 🚀 Zero-Config Onboarding - Start testing in seconds with automatic spec discovery
- 🤖 AI-Powered Analysis - Intelligent failure detection and code suggestions
- 🔒 Security-First - Built-in vulnerability scanning and OWASP compliance
- 📊 Rich Reporting - Beautiful HTML reports with detailed analytics
- ⚡ Offline-First - Works entirely on your machine with local LLMs
- 🛠️ Smart Patching - Automated code fixes for common API issues
🎯 Perfect For
API Developers • QA Engineers • DevOps Teams • Startups
⚡ Quick Start
Installation
pip install fixit-ai
or
# Clean installation (recommended)
pip install fixit-ai --quiet
FastAPI (Zero-Config)
# Start your FastAPI app
uvicorn main:app --reload
# Test with zero configuration
fixit init --fastapi main:app --base http://localhost:8000
fixit gen && fixit test && fixit fix && fixit sec
Express.js
# Start your Express.js app with OpenAPI
node app.js
# Test your Express.js API
fixit init --express . --base http://localhost:3000
fixit gen && fixit test && fixit fix && fixit sec
Universal (Any OpenAPI Framework)
fixit init --spec openapi.yaml --base http://localhost:8000
fixit gen && fixit test && fixit fix && fixit sec
🎯 What Fixit.AI Does
| Step | Command | What Happens |
|---|---|---|
| Initialize | fixit init |
🔍 Auto-extracts OpenAPI spec, creates fixit.toml with LLM defaults |
| Generate | fixit gen |
📝 Creates comprehensive test suite covering all endpoints |
| Test | fixit test |
🧪 Runs tests with real-time AI analysis of failures |
| Fix | fixit fix |
🛠️ Shows AI-generated code patches (suggestions-only by default) |
| Secure | fixit sec |
🔒 Scans for OWASP API Security Top 10 vulnerabilities |
🤖 AI Integration
Fixit.AI works with local LLMs for private, offline analysis:
Quick Setup (LM Studio)
- Download LM Studio
- Install model:
GPT-OSS 20B - Start server on
localhost:1234 - Run:
fixit test(auto-detects LM Studio)
Alternative (Ollama)
# Install and setup
curl -fsSL https://ollama.ai/install.sh | sh
ollama pull phi3:mini
# Configure (optional - auto-detected)
fixit init --llm-provider ollama --llm-model phi3:mini
📋 Framework Support
| Framework | Language | Zero-Config | Code Patches | Security Scan |
|---|---|---|---|---|
| FastAPI | Python | ✅ | ✅ | ✅ |
| Express.js | Node.js | ✅ | ✅ | ✅ |
| Any OpenAPI 3.0+ | Any | ✅ | ✅ | ✅ |
⚙️ Configuration
Auto-Generated fixit.toml (created on first run):
llm_active = "llm"
openapi = "openapi.yaml"
[llm]
provider = "lmstudio"
# base_url = "http://localhost:11434/v1" # Ollama
base_url = "http://localhost:1234/v1" # LM Studio
model = "gpt-oss20B"
temperature = 0.0
max_tokens = 2048
timeout_seconds = 180
offline = true
api_key_env = "FIXIT_API_KEY"
[llm.demo]
provider = "llama.cpp-stub"
[test]
include = []
exclude = []
max_tests = 0
concurrency = 8
Override during init:
fixit init --fastapi main:app --base http://localhost:8000 \
--llm-provider ollama --llm-model phi3:mini
🛠️ CLI Commands
| Command | Description |
|---|---|
fixit init --fastapi main:app |
Initialize FastAPI project (zero-config) |
fixit init --express . |
Initialize Express.js project |
fixit init --spec openapi.yaml |
Initialize with existing OpenAPI spec |
fixit gen |
Generate comprehensive test suite |
fixit test |
Run tests with AI analysis |
fixit fix |
Show AI code suggestions |
fixit sec |
Security vulnerability scan |
🚀 Getting Started Checklist
- Install:
pip install fixit-ai - Choose framework: FastAPI (zero-config) or Express.js
- Initialize:
fixit init --fastapi main:app --base http://localhost:8000 - Generate tests:
fixit gen - Run tests:
fixit test - Review suggestions:
fixit fix - Security scan:
fixit sec - View report: Open
.fixit/reports/index.html
🔍 Example Output
Real-time AI Analysis:
$ fixit test
🧪 Running 7 tests...
❌ 3 failures detected
🤖 AI Analysis:
[1/3] Analyzing post_/users_validation_error... 🆕 (fresh)
[2/3] Analyzing get_/users/{id}_not_found... 💾 (cached)
[3/3] Analyzing post_/auth/login_unauthorized... 🆕 (fresh)
$ fixit fix
💡 3 AI-generated suggestions:
✨ Fix email validation in UserCreate model
✨ Add proper 404 error handling
✨ Implement JWT token validation
🔗 Resources
- 📚 Full Documentation - Comprehensive guides and tutorials
- 🐛 Issues - Bug reports and feature requests
- 💬 Discussions - Community support and Q&A
- ⭐ GitHub - Source code and examples
📄 License
MIT License - see LICENSE for details.
Made with ❤️ by the Fixit.AI team
⭐ Star us on GitHub • 🐛 Report Issues • 💬 Join Discussions
GitHub • PyPI • Documentation
Metadata
Release files for fixit-ai 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fixit_ai-1.0.0.tar.gz | 101.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fixit_ai-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 178.5 kB
Release files / fixit_ai-1.0.0.tar.gz
| Download URL | fixit_ai-1.0.0.tar.gz |
|---|---|
| Size | 101.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0d371a9fae7fce9252b3960f3945fe190e172ee58501e2d211e5c7ad275eeebf
|
|
BLAKE2b-256 checksum How to use checksums |
3023eeaa322cfc775cb03376b5f2fa1de3f6dd320ca318b63d1310cd09bf6f0c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.1
|
Release files / fixit_ai-1.0.0-py3-none-any.whl
| Download URL | fixit_ai-1.0.0-py3-none-any.whl |
|---|---|
| Size | 77.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6411d471ab4d1258eb674728fa7fd02665ff86cddb904ca6389ebb66fcaef219
|
|
BLAKE2b-256 checksum How to use checksums |
a846622a40d4bf20d0931dc618f51e51de7e3a88759d25025187babb5e4813bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.1
|