AI-Powered API Testing Agent with Zero-Config Onboarding for OpenAPI-First Development
Project description
🔧 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
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 fixit_ai-0.0.1.tar.gz.
File metadata
- Download URL: fixit_ai-0.0.1.tar.gz
- Upload date:
- Size: 100.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d36ddf8507c9f55723588cf3c5dc7f4cff32b468070af60d2f36ebfcdba5984
|
|
| MD5 |
362f6e7f1af73c3563d0ca3db6bbee6f
|
|
| BLAKE2b-256 |
b0cec2662b6fef01ecd8eeb096acc8d577517db46e683e4e285b44e0768506b0
|
File details
Details for the file fixit_ai-0.0.1-py3-none-any.whl.
File metadata
- Download URL: fixit_ai-0.0.1-py3-none-any.whl
- Upload date:
- Size: 76.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f17dd1d8d1a6c225561c2ae6b12015865036611df205a636508d8ec854e35418
|
|
| MD5 |
73c368b970ca0bdd203d420b48b84741
|
|
| BLAKE2b-256 |
b84cb796bac94f6cabb57a58e76373f69b7a41b3073e3f380853e6d7625ae58f
|