Skip to main content

A powerful Git-aware repository assistant powered by LiteLLM and smolagents.

Project description

👁️ repo-lens

Your repository's third eye.

Forget manually digging through git logs and grepping for context. repo-lens combines deep Git history analysis with advanced AI reasoning to give you instant clarity on your codebase. Whether you're hunting for the origin of a bug or summarizing years of commits, repo-lens sees what you might miss.

Powered by smolagents for iterative reasoning and LiteLLM for universal model support (OpenAI, Anthropic, Ollama, Qwen, and more).


🛠️ Prerequisites

Before you start peering into your repos, ensure you have:

  • Python 3.11 or higher.
  • Git installed and available in your PATH.
  • Access to an LLM provider:
    • Cloud: OpenAI, Anthropic, etc. (API Key required).
    • Local: LM Studio, Ollama, or vLLM (OpenAI-compatible server running).

🚀 Installation

Install repo-lens directly from this repository for the latest features:

# Using uv (recommended)
uv tool install repo-lens

# Using pip
pip install repo-lens

To build from source:

git clone https://github.com/satishjasthi/repo-lens.git
cd repo-lens
uv sync

⚙️ Getting Started

repo-lens is configured via environment variables or a .env file in your current directory.

Create a .env file:

# LLM Configuration
REPO_LENS_PROVIDER=openai               # openai, anthropic, ollama, etc.
REPO_LENS_MODEL=openai/gpt-oss-20b      # Your model identifier
REPO_LENS_API_BASE=http://localhost:1234/v1  # Base URL for local SLMs
REPO_LENS_API_KEY=sk-...                # Your API key (if needed)

# Repo Settings
REPO_LENS_REPO=/path/to/your/repo        # Optional defaults to current dir
REPO_LENS_TIMEOUT=60                     # HTTP timeout

🤖 Running the Agent

The agent command (Iterative Reasoning)

The agent command is the powerhouse of repo-lens. It doesn't just guess; it reasons. It plans Git commands, observes the results, and refines its search until it finds the answer.

repo-lens agent "Who added the bedrock support and what files did they change?"

The ask command (Quick Context)

For simple questions based on the recent history and current state:

repo-lens ask "Summarize the changes in the last 5 commits"

Thin Git Wrappers

repo-lens also includes thin wrappers for common Git tasks:

repo-lens git status
repo-lens git log --limit 5
repo-lens shell "ls -la"

📦 PyPI Publishing

Built with uv, repo-lens is ready for the world. To publish your own version:

  1. Update pyproject.toml with your details.
  2. Build the package:
    uv build
    
  3. Publish to PyPI:
    uv publish
    

Author: Satish Jasthi
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

repo_lens-0.1.3.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

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

repo_lens-0.1.3-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file repo_lens-0.1.3.tar.gz.

File metadata

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

File hashes

Hashes for repo_lens-0.1.3.tar.gz
Algorithm Hash digest
SHA256 16a8585c665fd9e30531e924ec38ec654481d343edc4a36cfb42e1a21694eb6c
MD5 ff4a48c001c9a06fecfe650f47590c36
BLAKE2b-256 6dba2baec5c815a0e5005e0c48dd72c41335a9fb6dc49dd5c44edfb4e126dab9

See more details on using hashes here.

Provenance

The following attestation bundles were made for repo_lens-0.1.3.tar.gz:

Publisher: release.yaml on satishjasthi/repo_lens

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

File details

Details for the file repo_lens-0.1.3-py3-none-any.whl.

File metadata

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

File hashes

Hashes for repo_lens-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 61b745b395b9947c7a74fe70e5729c98b86e17a7d20d7d776530436a9a1f4970
MD5 ad08bafd54ac14e171c7b1f082a49447
BLAKE2b-256 bcb1e62ab0678d0d261b164f77942e97b4225ae23704a57bf038328831f39450

See more details on using hashes here.

Provenance

The following attestation bundles were made for repo_lens-0.1.3-py3-none-any.whl:

Publisher: release.yaml on satishjasthi/repo_lens

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