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 SDKclick— CLIpython-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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file churn_cli-0.1.1.tar.gz.
File metadata
- Download URL: churn_cli-0.1.1.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5cda4aa5026894cb0753841355b639ca8024d70b5d48b9153c45527321533ea
|
|
| MD5 |
10c490b5cfdce0e724f134621175bf5b
|
|
| BLAKE2b-256 |
5dd1eb711a7dc2daa2efc7642f451aa887d36a154445f5837a45907386661ec4
|
File details
Details for the file churn_cli-0.1.1-py3-none-any.whl.
File metadata
- Download URL: churn_cli-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53f78e284c8015bd620c73c892031a42df3fe88e858255c59c53e1da6772ae38
|
|
| MD5 |
b67ac70c4b2e1f811f56fa040cf54539
|
|
| BLAKE2b-256 |
7c9a6c798644387e0d71df1e6cca7ee5eac6533c95e2b370320676275aacba78
|