Skip to main content

Read your codebase. Generate interview questions.

Project description

Churn

A personal developer CLI tool that reads your codebase and generates interview questions based on your actual project.


What It Does

Churn scans a local project directory, identifies the most frequently edited files using git log, compresses the code, and sends it to the Gemini API. It returns 15 interview questions with detailed answers across 3 experience levels, saved as a markdown file.


Current State

This is a personal project under active development. It is not published to PyPI yet.

What works today:

  • Local project directory scanning (recursive, all subfolders)
  • Git-based important file detection via git log --stat
  • Code compression — strips comments and blank lines
  • Gemini API integration (google-genai)
  • Structured JSON output parsed into a markdown file
  • 3 experience levels: Fresher / Mid / Senior — 5 questions each

Usage

Requirements: Python 3.8+, a Gemini API key from aistudio.google.com

# Clone the repo
git clone https://github.com/dhawalshankar/churn
cd churn

# Create and activate virtual environment
python -m venv churn-env
churn-env\Scripts\activate  # Windows
source churn-env/bin/activate  # Mac/Linux

# Install dependencies
pip install google-genai click python-dotenv

# Add your Gemini API key
echo GEMINI_API_KEY=your_key_here > .env

# Run
python main.py ./your-project-path

Output is saved to churn-output.md in the current directory.


Output Structure

## FRESHER
Q1: What does this project do?
A: ...

## MID
Q1: Why did you choose this database over alternatives?
A: ...

## SENIOR
Q1: What are the security risks in your current architecture?
A: ...

Files Scanned

Included: .py .js .ts .tsx .jsx .java .go .cpp

Ignored: node_modules/ .git/ dist/ build/ __pycache__/ .next/ venv/ churn-env/


Privacy

  • No code is stored at any point
  • Everything runs locally — no backend server
  • Code is processed in memory, sent to Gemini, and wiped immediately
  • Gemini API does not use API request data for model training

Tech Stack

  • Python 3.12
  • google-genai — Gemini API SDK
  • click — CLI
  • python-dotenv — environment variables

Roadmap

  • PyPI publish — pip install churn
  • GitHub public repo URL support
  • VS Code Extension
  • Custom focus flag — --focus security
  • PDF export

License

This is a personal project. All rights reserved.

© 2026 dhawalshankar

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

churn_cli-0.1.0.tar.gz (2.7 kB view details)

Uploaded Source

Built Distribution

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

churn_cli-0.1.0-py3-none-any.whl (2.7 kB view details)

Uploaded Python 3

File details

Details for the file churn_cli-0.1.0.tar.gz.

File metadata

  • Download URL: churn_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 2.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for churn_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f29a9f1001a94657fb997dcb0c0d322fe3c08919aef80966d6f5f34678ef6061
MD5 16bb902e47ca5299187989c10ef5b0a6
BLAKE2b-256 8d3564bf02e84a7e8d03844089febaf50eb5ef5611fea32c2da8e6c777dd6ed2

See more details on using hashes here.

File details

Details for the file churn_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: churn_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for churn_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 db6b9e70f6b0af7cd9f0961207fa87ce93af4d530d8a6698b4145c680d2d7d54
MD5 1dea8e0fd420ab4bf199fdb0c13fc689
BLAKE2b-256 93b757c308e295b4b0cdd69c5c80363c3578cbb06243a25a43f016e76c853609

See more details on using hashes here.

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