Skip to main content

AI-Powered API Testing Agent with Zero-Config Onboarding for OpenAPI-First Development

Project description

🔧 Fixit.AI

PyPI version Python Support License: MIT GitHub stars GitHub issues

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 DevelopersQA EngineersDevOps TeamsStartups


⚡ 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)

  1. Download LM Studio
  2. Install model: GPT-OSS 20B
  3. Start server on localhost:1234
  4. 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

📄 License

MIT License - see LICENSE for details.


Made with ❤️ by the Fixit.AI team

Star us on GitHub • 🐛 Report Issues • 💬 Join Discussions

GitHubPyPIDocumentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fixit_ai-0.0.1.tar.gz (100.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fixit_ai-0.0.1-py3-none-any.whl (76.7 kB view details)

Uploaded Python 3

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

Hashes for fixit_ai-0.0.1.tar.gz
Algorithm Hash digest
SHA256 3d36ddf8507c9f55723588cf3c5dc7f4cff32b468070af60d2f36ebfcdba5984
MD5 362f6e7f1af73c3563d0ca3db6bbee6f
BLAKE2b-256 b0cec2662b6fef01ecd8eeb096acc8d577517db46e683e4e285b44e0768506b0

See more details on using hashes here.

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

Hashes for fixit_ai-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f17dd1d8d1a6c225561c2ae6b12015865036611df205a636508d8ec854e35418
MD5 73c368b970ca0bdd203d420b48b84741
BLAKE2b-256 b84cb796bac94f6cabb57a58e76373f69b7a41b3073e3f380853e6d7625ae58f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page