CommitIQ analyzes a GitHub repository's commit history to show how code health changes over time. It ingests commits, computes complexity, churn, dependency, semantic drift, and bus factor signals, then presents an interactive dashboard with health timelines, graph exploration, hotspot views, and optional Claude or Gemini-generated commit narratives.
- FastAPI and Python
- React and Vite
- SQLite
- Claude and Gemini APIs
- Python 3.11 or newer
- Node.js 18 or newer
- Git
- Optional API keys for Anthropic Claude, Google Gemini, and GitHub
- Clone the repository:
git clone https://github.com/eshaanag/CommitIQ---.git
cd CommitIQ---- Create an environment file:
cp .env.example .envUpdate .env with your local values. For SQLite, use a SQLAlchemy async URL such as sqlite+aiosqlite:///./commitiq.db.
- Install backend dependencies:
python -m venv .venv
source .venv/bin/activate
pip install -r backend/requirements.txtFor optional GraphCodeBERT semantic analysis:
pip install -r backend/requirements-ml.txt- Run the backend:
uvicorn backend.main:app --reload --host 0.0.0.0 --port 8000- Install frontend dependencies and run Vite:
cd frontend
npm install
npm run devThe frontend runs at http://localhost:5173 by default and expects the backend at http://localhost:8000.
DATABASE_URL=your_database_url_here
REPO_STORAGE_PATH=/tmp/commitiq_repos
LLM_MAX_CALLS=25
MAX_COMMITS=150
GITHUB_TOKEN=your_github_token_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
GEMINI_API_KEY=your_gemini_api_key_here