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.11.1.tar.gz (73.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.11.1-py3-none-any.whl (52.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: iara_reviewer-1.11.1.tar.gz
  • Upload date:
  • Size: 73.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.11.1.tar.gz
Algorithm Hash digest
SHA256 ff1d092993bd77d977845ff7ef4694ae44b6b20fee3dfa56133a8f7903681c1c
MD5 43a153dfc38dba2c5b7e94c85b15b70d
BLAKE2b-256 193c0c4aec3bf85a54322dc4b3c4751c023f6157c9b9ea834d199b5ed91ae715

See more details on using hashes here.

Provenance

The following attestation bundles were made for iara_reviewer-1.11.1.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.11.1-py3-none-any.whl.

File metadata

  • Download URL: iara_reviewer-1.11.1-py3-none-any.whl
  • Upload date:
  • Size: 52.8 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.11.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0fd2e831a4546e7a0f6fd81fc2147e10f1f32d34cacbc10c817e302325a969f5
MD5 7ccd8ea6827936d8ab1ad89e40336090
BLAKE2b-256 8dd35060ab615f9f99fe4d902ee3c1cb0335a2d0aa60c3efe3945ac7b20f783e

See more details on using hashes here.

Provenance

The following attestation bundles were made for iara_reviewer-1.11.1-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