AI-powered codebase health analysis, right inside VS Code.
Built with IBM Bob Β· IBM watsonx Orchestrate Β· watsonx.ai (Granite)
Open any project in VS Code, click the RepoSense icon, get a full health report in minutes β without leaving your editor.
| Panel | What You Get |
|---|---|
| π― Health Score | Score out of 100 with grade (AβF) and breakdown |
| ποΈ Architecture | D3 module dependency graph, zoomable and clickable |
| π Code Review | AI-detected issues with severity and file locations |
| π Documentation | Auto-generated function docs and unit test stubs |
| π Security | Vulnerability detection and modernization priorities |
Four IBM watsonx Orchestrate agents do the work β Architect, Reviewer, Documenter, Hardener β coordinated by a local FastAPI backend. Health scoring uses the Granite model on watsonx.ai.
Supported languages: Python, JavaScript, TypeScript.
VS Code Extension (TypeScript)
β
β HTTP (localhost:8000)
βΌ
FastAPI Backend (Python)
βββ Parser β reads workspace files
βββ Job Queue β tracks analysis state
βββ Orchestrate Client
β
β IBM watsonx APIs
βΌ
βββββββββββββββββββββββββββββββββββββ
β watsonx Orchestrate β
β βββ Architect Agent β
β βββ Reviewer Agent β
β βββ Documenter Agent β
β βββ Hardener Agent β
β β
β watsonx.ai (Granite) β
β βββ Health Score Calculator β
βββββββββββββββββββββββββββββββββββββ
- Python 3.11, 3.12, or 3.13 (constrained by
ibm-watsonx-ai==1.5.11which requires>=3.11,<3.14). Install from python.org. - Node.js 18+ (LTS recommended). Install from nodejs.org.
- VS Code with the
codecommand in PATH.- macOS: open VS Code β
Cmd+Shift+Pβ "Shell Command: Install 'code' command in PATH". - Windows: re-run the VS Code installer and check "Add to PATH".
- macOS: open VS Code β
- bash (built-in on macOS/Linux; on Windows install Git for Windows and run from Git Bash).
- IBM watsonx credentials (entered via the in-app setup wizard β no manual
.envediting required).
Execute run.sh from the repo root to set up everything and launch the application:
./run.shThe script will:
- Check prerequisites β Python (correct version), Node.js, npm,
codeCLI, port 8000. Bails early with a clear message if anything's missing. - Create a Python virtual environment in
venv/using a compatible Python. - Install backend dependencies from
backend/requirements.txt. - Install extension dependencies with
npm installand compile the TypeScript. - Start the uvicorn backend on
http://localhost:8000and wait until it actually responds (not just "process exists"). - Launch VS Code with the extension loaded in development mode.
The backend keeps running in the background. Press Ctrl+C to stop the launcher; the backend's PID is printed so you can kill it when you're done.
On first launch, the RepoSense sidebar shows a setup wizard for your watsonx credentials. The wizard writes them to backend/.env and reloads settings in memory.
If you prefer to run components separately:
cd backend
pip install -r requirements.txt
uvicorn src.main:app --reloadBackend runs on http://localhost:8000. Verify:
curl http://localhost:8000/
# {"service":"RepoSense API","status":"running","version":"1.0.0"}cd vscode-extension
npm installPress F5 in VS Code to launch the Extension Development Host, open any project folder, and click the RepoSense icon in the sidebar.
On first launch, the sidebar shows a setup wizard. Enter your watsonx credentials there β the extension posts them to /config/setup, which persists them to backend/.env and reloads settings in memory. No manual .env editing required.
If you'd rather pre-populate .env yourself, copy backend/.env.example to backend/.env and fill in the real values (not the placeholder strings β the backend treats non-empty placeholders as "configured" and skips the wizard).
Start analysis on a local path.
{ "local_path": "/absolute/path/to/project" }Returns:
{ "type": "request", "job_id": "abc-123", "progress": [...] }Poll for status. While running, returns type: "request" with current progress steps. On completion, type: "result" with the full payload:
{
"type": "result",
"job_id": "abc-123",
"progress": [...],
"payload": {
"score": { "score": 74, "grade": "B", "breakdown": {...}, "summary": "...", "top_priorities": [...] },
"architecture": { "nodes": [...], "edges": [...] },
"review": { "findings": [...] },
"docs": { "docs": [...], "tests": [...] },
"security": { "security": [...], "modernization": [...] }
}
}On failure, type: "error" with a code, message, and the stage that failed.
Remove a job from the in-memory store.
Manually trigger cleanup of jobs older than JOB_RETENTION_HOURS (default 24). Returns { "removed": <count> }.
Check whether all required watsonx credentials are set. Returns { "configured": bool, "missing_fields": [...] }. The VS Code extension calls this on launch to decide whether to show its setup wizard.
Persist any subset of watsonx credentials. Non-empty values are written to backend/.env and reloaded in memory. Returns the same shape as /config/status.
See .env.example for the full list. Required:
# watsonx Orchestrate (agents)
ORCHESTRATE_API_KEY=
ORCHESTRATE_URL=https://api.us-south.watson-orchestrate.cloud.ibm.com
ORCHESTRATE_INSTANCE_ID=
ORCHESTRATE_AGENT_ARCHITECT_ID=
ORCHESTRATE_AGENT_REVIEWER_ID=
ORCHESTRATE_AGENT_DOCUMENTER_ID=
ORCHESTRATE_AGENT_HARDENER_ID=
# watsonx.ai (health scoring)
WATSONX_API_KEY=
WATSONX_PROJECT_ID=
WATSONX_URL=https://us-south.ml.cloud.ibm.com
The Orchestrate client exchanges your API key for an IBM IAM bearer token on demand β no manual token handling required.
Built entirely with IBM Bob IDE. Session exports for all 6 team members are in bob_sessions/, organized by role (P1βP6).
| Member | Role |
|---|---|
| P1 | Backend β FastAPI, job queue, parser |
| P2 | Orchestrate β four AI agent implementations |
| P3 | AI β health scoring with watsonx.ai Granite |
| P4 | Extension β VS Code extension core |
| P5 | Webview β interactive panels with D3.js |
| P6 | Integration, demo, submission |
Built for the IBM Bob Hackathon 2026. See repository for license details.
IBM Bob Hackathon 2026