Skip to main content

AI-powered code reviewer using OpenRouter LLMs

Project description

Iara - AI Code Reviewer 🧜‍♀️

Iara - AI Code Review Agent

🇧🇷 Leia em Português

Iara is an automated, project-agnostic, configurable code review tool designed to run in CI/CD pipelines or locally via CLI. It connects directly to the LLM provider of your choice — OpenRouter (free models), OpenAI, Google Gemini, or Anthropic Claude.


🧜‍♀️ Iara Code Review 🧪 Tests codecov PyPI - Version GitHub Marketplace License: MIT


Table of Contents


🚀 Features

  • Agnostic: Configure your project context (Tech Stack, Rules) via JSON.
  • Multi-Provider: Connect directly to OpenRouter, OpenAI, Google Gemini, Anthropic Claude, or Groq.
  • Smart Fallback: Automatically tries free models if the preferred one fails (OpenRouter only).
  • Rules-Based (Static): Identifies dangerous patterns instantly without spending tokens (e.g., GetComponent in loops in Unity).
  • LLM-Based (Intelligent): Uses AI to understand logic, security, and context, going beyond syntax.
  • GitHub + GitLab: Native integration with both platforms, with automatic comments on PRs/MRs.
  • Multi-Language Reviews: Configure the output language — reviews can be written in English, Portuguese, Spanish, French, and more.

🧠 Capabilities

Iara combines different types of analysis for a complete review:

Type What does it do? Does Iara cover it? How?
Static Analysis Finds bugs by reading code (fast). Yes Via Extensions (Regex) and LLM.
Linting Fixes style and formatting. Yes LLM can suggest Clean Code.
SAST Finds security flaws in code. Yes Primary focus on vulnerability detection.
Dynamic Analysis Finds bugs by running the app (slow). ❌ No Focus on fast CI/CD (Code Review).

What does it detect?

  1. Unity / Game Dev:

    • Use of slow APIs (Find, GetComponent) in critical loops (Update).
    • Excessive memory allocation (Garbage Collection).
    • Excess logging (Debug.Log) in final builds.
  2. Security (General):

    • Hardcoded credentials (Passwords, API Keys).
    • Injection vulnerabilities (SQL, Command).
    • Missing input validation.
  3. Code Quality:

    • Complex or confusing logic.
    • Exception handling errors.
    • Refactoring suggestions for readability.

📦 Installation and Setup

1. Install

pip install iara-reviewer

2. Configure (Interactive Setup)

iara init

The wizard guides you through 5 steps:

  1. Language — Choose the review output language (en, pt-br, es, fr, etc.)
  2. Provider — Choose your LLM provider: openrouter (default, free), openai, gemini, anthropic, or groq
  3. API Key — Enter the key for the chosen provider (validated and saved to ~/.iara/config.json)
  4. Project — Name, tech stack, description
  5. Preferences — Focus areas (Security, Performance, etc.)

Done! Project config is saved at .iara.json.

3. Use

git diff main | iara

Check authentication

iara auth status

Manual setup (without wizard)

Set the provider and its key via environment variables:

# OpenRouter (default — free models available)
export OPENROUTER_API_KEY="sk-or-..."

# OpenAI
export IARA_PROVIDER="openai"
export OPENAI_API_KEY="sk-..."

# Google Gemini
export IARA_PROVIDER="gemini"
export GEMINI_API_KEY="AIza..."

# Anthropic Claude
export IARA_PROVIDER="anthropic"
export ANTHROPIC_API_KEY="sk-ant-..."

API key resolution priority: environment variable > global config (~/.iara/config.json).

From source (Development)

git clone https://github.com/felipefernandes/iara.git
cd iara
pip install -e .

🏃 How to Use

Via Pipe (Git Diff)

git diff main | iara

Via Environment Variable

export PR_DIFF=$(git diff main)
iara

Scan Mode (Static Analysis)

iara --scan ./path/to/project

Forcing a Provider and Model

# Anthropic Claude
export IARA_PROVIDER="anthropic"
export ANTHROPIC_API_KEY="sk-ant-..."
export IARA_MODEL="claude-sonnet-4-5-20250929"
git diff | iara

# OpenAI GPT-4o
export IARA_PROVIDER="openai"
export OPENAI_API_KEY="sk-..."
export IARA_MODEL="gpt-4o"
git diff | iara

# Google Gemini
export IARA_PROVIDER="gemini"
export GEMINI_API_KEY="AIza..."
export IARA_MODEL="gemini-2.5-flash"
git diff | iara

🔒 Privacy & Security

Important: Iara sends your code to third-party LLM providers for analysis. While convenient, this has privacy implications you should be aware of.

What happens to your code?

  • Code diffs are sent to external APIs (OpenRouter, OpenAI, Gemini, Anthropic, Groq)
  • Providers may temporarily store data for processing
  • Data retention and training policies vary by provider

Provider Privacy Comparison

Provider Training on API Data Data Retention Enterprise Options Best For
Anthropic ❌ No Temporary ✅ Yes Sensitive code
OpenAI ⚠️ Opt-out required 30 days ✅ Yes General use
Gemini ⚠️ Varies Not documented ✅ Yes General use
Groq ⚠️ Not documented Not documented ❌ No Public code
OpenRouter ⚠️ Depends on model Varies ❌ No Public code

Recommendations by Use Case

  • Open Source Projects: Any provider (code is already public)
  • Private Projects (non-sensitive): Anthropic or Groq
  • Sensitive/Proprietary Code: Anthropic Enterprise or self-hosted LLM
  • Regulated Industries (HIPAA, PCI-DSS): Self-hosted LLM only (e.g., Ollama - see Issue #76)

For detailed privacy information and self-hosted options, see Privacy & Security Guide.


📚 Documentation

For detailed guides and configuration options, see:

Configuration Examples

Complete configuration examples are available in examples/:

Quick Links


🧪 Tests

python -m unittest discover tests

🤝 Contributing

We welcome contributions! See our Contributing Guide for:

  • Development setup
  • Running tests
  • Code quality standards
  • Pull request guidelines
  • Release process

📜 License

MIT

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

iara_reviewer-1.10.0.tar.gz (72.6 kB view details)

Uploaded Source

Built Distribution

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

iara_reviewer-1.10.0-py3-none-any.whl (52.4 kB view details)

Uploaded Python 3

File details

Details for the file iara_reviewer-1.10.0.tar.gz.

File metadata

  • Download URL: iara_reviewer-1.10.0.tar.gz
  • Upload date:
  • Size: 72.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for iara_reviewer-1.10.0.tar.gz
Algorithm Hash digest
SHA256 34910fc47ba3dc52e18074de346ea4b81d631f614810ae7c1b5e94a10dce26e2
MD5 5226540e6eef95c731534b607a8cbb30
BLAKE2b-256 50f85f83ef9c9344f8958897b15d607b64691b4612f77e1154f524f8946b7bda

See more details on using hashes here.

Provenance

The following attestation bundles were made for iara_reviewer-1.10.0.tar.gz:

Publisher: publish-pypi.yml on felipefernandes/iara

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iara_reviewer-1.10.0-py3-none-any.whl.

File metadata

  • Download URL: iara_reviewer-1.10.0-py3-none-any.whl
  • Upload date:
  • Size: 52.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for iara_reviewer-1.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 33ce34b8a84bac78281bc0e451b1f853f1adce164eea85b7a9ff04bee6b96a91
MD5 79751032646ed6a6b7a055b146886734
BLAKE2b-256 941b10a17e7f0322eb76c4083b8d797bbafd2022a2af0e63950b7be481ea647d

See more details on using hashes here.

Provenance

The following attestation bundles were made for iara_reviewer-1.10.0-py3-none-any.whl:

Publisher: publish-pypi.yml on felipefernandes/iara

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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