Don't just read the codebase. Understand it. Challenge it. Defend it.
Reposeer is an AI-assisted developer tool designed to turn unfamiliar Python repositories into something you can actually understand, explore, and reason about.
It combines static code analysis, AST parsing, dependency mapping, repository inspection, AI-powered conversation, and architectural interview simulation into one platform.
Whether you're trying to understand a new codebase, investigate its architecture, or test whether you can explain your own engineering decisions under pressure β Reposeer is built to make you think like a technical lead. π§
Walking into an unfamiliar repository can feel like this:
src/
βββ utils/
βββ services/
βββ core/
βββ manager/
βββ helper_final.py
βββ helper_final_v2.py
βββ somehow_this_works.py
You open one file.
Then another.
Then another.
Three hours later, you're still trying to figure out who calls what.
Reposeer exists to fix that.
It analyses a Python repository and builds a structured understanding of its:
- π§© Modules and dependencies
- π³ Abstract Syntax Tree (AST) structure
- ποΈ Classes and functions
- π Import relationships
- πΈοΈ Dependency graphs
β οΈ Architectural risks- π¬ AI-assisted explanations
- π― Interview scenarios
- π Architectural evaluation
Instead of simply asking:
"What does this code do?"
Reposeer helps you ask:
"Why is it designed this way, what could go wrong, and how would I explain it in an architecture interview?"
| Feature | Description |
|---|---|
| π GitHub Analysis | Analyse public GitHub repositories |
| π¦ ZIP Uploads | Upload local Python projects for inspection |
| π³ AST Analysis | Inspect classes, functions and imports |
| πΈοΈ Dependency Graphs | Visualise relationships between modules |
| π€ AI Repository Chat | Ask questions about the analysed codebase |
| π― Interview Mode | Practise repository-aware architecture interviews |
| β‘ Live Analysis | Stream analysis progress to the frontend |
| π Evaluation Metrics | Receive structured feedback on interview responses |
| π§ Architectural Reasoning | Explore maintainability, modularity and design decisions |
Start by providing a public GitHub repository URL or uploading a local ZIP archive.
Reposeer takes the repository and begins building an understanding of the codebase.
Working with a local Python project?
Upload it as a ZIP archive.
The current upload flow requires the archive to contain Python source code and limits uploads to 50 MB.
Once the repository has been analysed, you can choose how you want to interact with it.
Explore the repository conversationally.
Ask questions about:
- Architecture
- Dependencies
- Maintainability
- Modularity
- Potential risks
- Code organisation
Stop asking questions.
Start answering them.
Interview Mode generates repository-aware architectural scenarios and challenges you to explain your engineering decisions.
Reposeer transforms repository relationships into a visual dependency graph.
You can inspect:
- Module relationships
- Import paths
- Dependency clusters
- Potential circular dependencies
- Structural relationships within the repository
Reposeer uses Tree-sitter to inspect Python source structure.
Instead of treating source code as a wall of text, the system identifies important structural elements such as:
Python File
β
βββ Imports
β
βββ Classes
β βββ Methods
β βββ Attributes
β
βββ Functions
This provides the structural foundation for the repository analysis.
Once the repository has been analysed, the AI can use the generated inspection information as context.
Ask questions like:
"Where is authentication handled?"
"What are the major dependencies in this project?"
"Where could this architecture become difficult to maintain?"
"How would you restructure this module?"
"What would you ask a developer about this codebase in an interview?"
The goal isn't simply to generate answers.
It's to help developers understand the reasoning behind the code.
This is where things get uncomfortable.
In a good way.
Interview Mode generates architectural scenarios based on the analysed repository.
Choose your difficulty:
π’ EASY
Understand the architecture.
π‘ MEDIUM
Explain the architecture and identify trade-offs.
π΄ HARD
Defend your architectural decisions.
You are given a scenario and expected to provide an architectural response.
After submitting your response, Reposeer evaluates the answer and provides structured feedback.
The evaluation focuses on areas such as:
- ποΈ Architecture
- π¬ Clarity
- π§© Modularity
- π Technical reasoning
- π Understanding of the repository
The purpose isn't just to produce a number.
The goal is to answer:
"Why did I receive this evaluation?"
flowchart LR
User[π€ User] --> Frontend[π₯οΈ Next.js Frontend]
Frontend --> Inspect[π FastAPI Inspection API]
Frontend --> Chat[π¬ Casual Chat API]
Frontend --> Interview[π― Interview API]
Inspect --> Ingestion[π¦ Repository Ingestion]
Ingestion --> Parser[π³ Tree-sitter AST Parser]
Parser --> Graph[πΈοΈ Dependency Graph Mapper]
Graph --> Report[π Inspection Report]
Chat --> Gemini[π€ Google Gemini]
Interview --> Gemini
Report --> Frontend
Gemini --> Frontend
Repository
β
βΌ
π₯ Ingestion
β
βΌ
π³ AST Parsing
β
βΌ
π Dependency Mapping
β
βΌ
π Structural Analysis
β
βΌ
π§ Repository Context
β
βββββββββββββββββ
βΌ βΌ
π¬ Casual Mode π― Interview Mode
β β
βββββββββ¬ββββββββ
βΌ
π€ AI Feedback
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS
- React Flow
- React Markdown
- Lucide React
- Python 3.11+
- FastAPI
- Uvicorn
- Tree-sitter
- Tree-sitter Python
- GitPython
- NetworkX
- Pydantic
- Google Gemini
- PostgreSQL
- Redis
- Docker Compose
reposeer/
β
βββ backend/
β βββ app/
β β βββ api/
β β β βββ chat.py
β β β βββ inspect.py
β β β βββ interview.py
β β β
β β βββ models/
β β β
β β βββ services/
β β βββ ast_parser.py
β β βββ graph_mapper.py
β β βββ ingestion.py
β β
β βββ Dockerfile
β βββ pyproject.toml
β βββ requirements.txt
β
βββ frontend/
β βββ public/
β β βββ guide/
β β
β βββ src/
β β βββ app/
β β βββ components/
β β βββ lib/
β β
β βββ Dockerfile
β βββ package.json
β
βββ docker-compose.yml
βββ README.md
Before running Reposeer locally, make sure you have:
- Node.js 20+
- npm 10+
- Python 3.11+
- Git
- Docker Desktop (recommended)
- A Google Gemini API key for AI functionality
Create a .env file in the repository root:
GEMINI_API_KEY=your_gemini_api_keyFor local frontend development, you can optionally create:
frontend/.env.local
NEXT_PUBLIC_API_URL=http://localhost:8000Docker Compose can start the:
- π₯οΈ Frontend
- βοΈ Backend
- π PostgreSQL
- π΄ Redis
Run:
docker compose up --buildThen open:
http://localhost:3001
http://localhost:8000
http://localhost:8000/docs
docker compose downdocker compose down -vFrom the repository root:
cd backendCreate a virtual environment:
python -m venv .venv.\.venv\Scripts\Activate.ps1source .venv/bin/activateInstall dependencies:
pip install -r requirements.txtStart FastAPI:
uvicorn app.main:app --reload --port 8000Open another terminal:
cd frontendInstall dependencies:
npm installStart the development server:
npm run devOpen:
http://localhost:3000
| Method | Endpoint | Purpose |
|---|---|---|
GET |
/ |
Backend health response |
POST |
/api/inspect/github |
Analyse a public GitHub repository |
POST |
/api/inspect/upload |
Analyse an uploaded ZIP archive |
GET |
/api/inspect/stream/{job_id} |
Stream inspection progress |
POST |
/api/seer/chat |
AI-assisted repository conversation |
POST |
/api/interview/generate-question |
Generate an interview scenario |
POST |
/api/interview/evaluate |
Evaluate an interview response |
Start a repository inspection:
curl -X POST http://localhost:8000/api/inspect/github \
-H "Content-Type: application/json" \
-d "{\"repo_url\":\"https://github.com/owner/repository\"}"The API returns a job identifier:
{
"job_id": "job-identifier",
"status": "processing"
}Use the identifier to stream analysis progress:
curl http://localhost:8000/api/inspect/stream/job-identifierReposeer's inspection pipeline follows these stages:
1. π Validate repository source
β
2. π₯ Clone / extract repository
β
3. π Collect Python source files
β
4. π³ Parse source using Tree-sitter
β
5. πΈοΈ Build dependency graph
β
6. π Calculate structural metrics
β
7. π Generate inspection report
β
8. π§ Provide context to AI features
This allows the AI-powered features to work with information derived from the repository rather than relying purely on a generic conversation.
From the backend directory:
pytestcd frontend
npm run lintnpm run buildSome important considerations when running Reposeer:
- π Never commit
.envfiles or API keys. - π¦ ZIP uploads must contain Python source files.
- π ZIP uploads are limited to 50 MB.
- π§ Analysis jobs are currently stored temporarily in memory.
- π GitHub ingestion currently supports public repositories.
- π Review CORS configuration before public deployment.
- π Authentication and rate limiting should be added before exposing the API to untrusted users.
Reposeer is actively evolving.
Current limitations include:
- GitHub analysis currently targets public repositories.
- Static analysis primarily focuses on Python.
- Analysis job state is held in memory.
- AI functionality requires a configured Gemini API key.
- Production deployment configuration is not currently included.
Reposeer is being built toward a more complete repository intelligence platform.
- π Private GitHub repository support
- πΎ Persistent analysis history
- π Additional programming language parsers
- π€ Authentication and workspace support
- β‘ Background task queue integration
- π More detailed architecture metrics
- π Exportable inspection reports
- βοΈ Production deployment templates
This project is currently unlicensed.
A license should be added before distributing the project or accepting external contributions.
Reposeer would not exist without the excellent tools and technologies it builds upon.
Reposeer is built around a simple idea:
Understanding a codebase is an engineering skill.
Reading code is easy.
Understanding why it exists is harder.
Explaining its architecture is harder still.
And defending that architecture when someone asks:
"Okay... but what happens when this system has 10 million users?"
...is where things get interesting. π
Reposeer is designed to help developers get better at that last part.
Built with Python, TypeScript, FastAPI, Next.js, Tree-sitter, Gemini, questionable amounts of caffeine, and an unhealthy willingness to stare at dependency graphs.
If Reposeer tells you that your architecture has a circular dependency...
don't shoot the messenger.
The messenger is just very good at finding your problems. π
Inspect. Understand. Explain. Defend.







