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.1.tar.gz (13.8 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.1-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: repo_lens-0.1.1.tar.gz
  • Upload date:
  • Size: 13.8 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.1.tar.gz
Algorithm Hash digest
SHA256 d00a9fa97539de0589f632e7e6707c440447f93e2f79f66aef41f9090b96626c
MD5 316c3b28edfbcd001554325ff81079f3
BLAKE2b-256 52e12cf33c759dd097d353017bc5e41e6cc778ccbf5eec02c9ee9bdcb57e57a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for repo_lens-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: repo_lens-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e3298f56e40bae08f948cbf2e870e249373028feae38748f855200b1ffff3e6a
MD5 b743438066e31c67dbcd00f46ae2f6c5
BLAKE2b-256 74cb91e3e99d54efa1776e49913f27c7266bb69e51f01a4f0d57048b4fcb9705

See more details on using hashes here.

Provenance

The following attestation bundles were made for repo_lens-0.1.1-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