Skip to main content

GitHub Repository Interconnect

A full-stack application that ingests open-source GitHub repositories, statically analyses their exposed endpoints (REST APIs, CLIs, libraries, data files, schemas, ML models), classifies license compatibility for safe chaining, visualises module interconnections on an interactive canvas, and uses a local LLM (via LM Studio) to infer hidden endpoints and generate architecture reports.


🌟 Key Features

1. GitHub Repository Ingestion & Analysis

  • Accepts any public GitHub repository URL or owner/repo identifier.
  • Streams live analysis progress over WebSockets so you see results as they arrive.
  • Detects endpoint categories via static heuristic analysis:
    • ⚡ REST API — FastAPI, Flask, Express, OpenAPI / Swagger definitions
    • ⌨️ CLI Tool — console entry points, bin/ scripts, click / typer / argparse
    • 📦 Library / Package — pip (pyproject.toml / setup.py), npm, Cargo
    • 🗄️ Data Files — CSV, Parquet, HDF5, SQLite, Arrow
    • 🧩 Data Structures — Pydantic models, Protobuf, JSON Schema, TypedDict
    • 🐳 Docker Container — Dockerfile, docker-compose.yml
    • 🤖 ML Model — model weights, PyTorch, Hugging Face Transformers
    • ◈ GraphQL & gRPC Services

2. License Compatibility & Caution Banners

  • Classifies SPDX licenses into Permissive (MIT, Apache-2.0, BSD-), Weak Copyleft (LGPL, MPL-2.0), Strong Copyleft (GPL-, AGPL-*), Proprietary, or Unknown.
  • Shows caution banners on module cards for copyleft and proprietary licenses.
  • Displays a per-connection license compatibility warning inside the Connection Inspector panel when incompatible modules are wired together.

3. Interactive Data-Flow Canvas

  • Powered by React Flow with fully custom module node cards.
  • Left (purple) handles = input endpoints (data consumer).
  • Right (green) handles = output endpoints (data producer).
  • Drag from any output handle to an input handle to create a directed data-flow edge.
  • Click any edge to open the Connection Inspector slide-up panel showing the full endpoint pair and license compatibility status.
  • Auto-layout, fit-to-view, and mini-map controls built in.

4. ✨ AI Features (LM Studio)

Powered by any OpenAI-compatible local model running in LM Studio (http://localhost:1234).

Feature How to trigger What it does
Endpoint Inference Click ✨ AI on a module card Streams AI-inferred endpoints from the repo README & file tree — useful when static analysis is incomplete
Description Enrichment Available inside the AI Infer modal Rewrites terse auto-detected descriptions into readable natural language
Architecture Report Click ✨ AI Report in the toolbar Generates a 5-section Markdown report covering pipeline overview, data-flow analysis, endpoint contract mapping, license assessment, and optimisation recommendations

The report modal supports:

  • 📄 Open / Print PDF — opens a clean printable window and triggers the print dialog (Save as PDF).
  • ⬇️ .md — downloads the raw Markdown file.
  • 📋 Copy — copies to clipboard.
  • 🔄 Regenerate — streams a fresh report.

5. Import & Export

  • Export the full graph state (modules + connections) as a JSON file.
  • Import a previously exported JSON file to restore a saved topology.
  • GitHub PAT is stored in localStorage — never sent anywhere except the backend proxy.

🏗️ Architecture

GitHub Repository Interconnect
├── backend/                        # FastAPI application (Python ≥ 3.10)
│   ├── main.py                    # Server entry point, REST routes & WebSocket handlers
│   ├── models/
│   │   └── module.py              # Pydantic schemas: Module, Endpoint, Connection
│   ├── analyzer/
│   │   ├── github_client.py       # Async GitHub REST API client (PAT-aware)
│   │   ├── repo_analyzer.py       # Analysis orchestrator (WebSocket streaming generator)
│   │   ├── endpoint_extractor.py  # Heuristic static detectors for all endpoint types
│   │   └── license_checker.py     # SPDX license classifier & compatibility matrix
│   └── llm/
│       ├── lm_studio_client.py    # OpenAI-compatible async streaming client for LM Studio
│       ├── endpoint_inferrer.py   # AI endpoint inference from README + file tree
│       ├── enricher.py            # AI description enrichment for terse auto-detected endpoints
│       └── flow_reporter.py       # AI architecture & pipeline report generator
│
└── frontend/                       # React + Vite application (Node ≥ 18)
    ├── src/
    │   ├── App.jsx                # Root: React Flow canvas, toolbar, modal mounts
    │   ├── store/
    │   │   └── useModuleStore.js  # Zustand state: modules, connections, AI settings
    │   ├── api/
    │   │   └── client.js          # Axios HTTP client + WebSocket helpers
    │   ├── components/
    │   │   ├── ModuleNode.jsx      # Custom React Flow node card with endpoint handles
    │   │   ├── AddRepoPanel.jsx    # Sidebar: repo ingestion form + AI settings toggle
    │   │   ├── AISettingsPanel.jsx # LM Studio URL, model picker, connection tester
    │   │   ├── AIInferPanel.jsx    # Per-module AI inference & enrichment modal
    │   │   ├── FlowReportPanel.jsx # Full canvas AI architecture report modal
    │   │   ├── ConnectionPanel.jsx # Edge inspector slide-up panel
    │   │   ├── ModuleListPanel.jsx # Module list sidebar (collapsible)
    │   │   ├── EndpointBadge.jsx   # Endpoint type icon + label badge
    │   │   └── LicenseBadge.jsx    # License tier colour badge
    │   └── index.css              # Dark-mode design system (CSS custom properties)
    ├── index.html
    ├── vite.config.js             # API & WebSocket proxy → http://localhost:8000
    └── package.json

🚀 Quick Start

Option A — pip install (end-user, no Node required)

The pre-built React frontend is bundled inside the Python wheel, so only Python is needed at runtime.

pip install repo-conn

# Optional: set a GitHub PAT to raise the API rate limit
export GITHUB_TOKEN=ghp_...

# Launch — starts the server and opens the browser automatically
repo-conn

Custom host/port:

repo-conn --port 9000
repo-conn --host 0.0.0.0 --port 8080   # expose on LAN
repo-conn --no-browser                  # skip auto-open
repo-conn --reload                      # enable hot-reload (dev)

The server runs at http://127.0.0.1:8000. Swagger docs at /docs.


Option B — development (frontend hot-reload)

Use this if you are modifying the frontend source and want Vite's HMR.

Prerequisites

  • Python ≥ 3.10
  • Node.js ≥ 18 and npm
  • (Optional) LM Studio running on http://localhost:1234 for AI features
# 1. Clone
git clone https://github.com/<you>/github-repository-interconnect.git
cd github-repository-interconnect

# 2. Configure environment
cp .env.example .env
# Edit .env — add GITHUB_TOKEN and optionally LM_STUDIO_URL

# 3. Backend
pip install -e .
python -m uvicorn backend.main:app --host 127.0.0.1 --port 8000 --reload

# 4. Frontend (separate terminal)
cd frontend
npm install
npm run dev       # http://localhost:5173

(Optional) LM Studio setup

  1. Download LM Studio and load any GGUF model (e.g. google/gemma-3, mistral-7b-instruct, llama-3).
  2. Start the local server on port 1234 (default).
  3. In the app sidebar, expand ✨ AI Settings, enter http://localhost:1234, and click Test.
  4. Select your loaded model from the dropdown.

🔌 Backend API Reference

Method Path Description
GET /api/state Returns persisted modules and connections
DELETE /api/modules/{id} Removes a module
POST /api/connections Creates a new endpoint connection
DELETE /api/connections/{id} Removes a connection
POST /api/export Returns full graph state as JSON
POST /api/import Loads graph state from uploaded JSON
GET /api/llm/health Tests LM Studio connectivity and lists available models
POST /api/llm/enrich/{module_id} Enriches module endpoint descriptions with AI
WS /ws/analyze Streams repo analysis events (progress, endpoints, done/error)
WS /ws/llm/infer/{module_id} Streams AI-inferred endpoints for a module
WS /ws/llm/report Streams full AI architecture report for current graph

🧩 Multi-Repository Pipeline Examples

REST API & Validation Pipeline

pallets/click  ──CLI Tool──►  pydantic/pydantic  ──Data Structures──►  fastapi/fastapi
 (CLI ingestion)               (schema validation)                       (REST API service)

All MIT/BSD — ✅ Freely chainable in open-source and commercial projects.

ML Inference Pipeline

encode/httpx  ──HTTP Client──►  fastapi/fastapi  ──REST API──►  huggingface/transformers
(async HTTP)                    (inference server)              (tokenizer + model)

⚙️ Environment Variables

Variable Default Description
GITHUB_TOKEN (empty) GitHub PAT — raises rate limit from 60 to 5,000 req/hr
HOST 127.0.0.1 Uvicorn bind host
PORT 8000 Uvicorn bind port

📄 License

MIT

Metadata

Release files for repo-conn 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for repo-conn 1.1.0
File Size Uploaded Provenance
repo_conn-1.1.0.tar.gz 23.7 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for repo-conn 1.1.0
File Interpreter ABI Platform
repo_conn-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.9 MB

Release files / repo_conn-1.1.0.tar.gz

Download URL repo_conn-1.1.0.tar.gz
Size 23.7 MB
Tags Source
SHA-256 checksum
How to use checksums
ad9fb1707fbb3bebd99c9f9743a1e434f9177c3e5c52b3d0c62047fcc35f4432
BLAKE2b-256 checksum
How to use checksums
2c08d8d9d574d32dd6d391708683ecbcbc8ae6ba64d952c3036aeb6f4579ac8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.11

Release files / repo_conn-1.1.0-py3-none-any.whl

Download URL repo_conn-1.1.0-py3-none-any.whl
Size 222.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4bbfeeb343a5f23c4793e0dc67bd189906bbdfab453f66e30124173f276c2456
BLAKE2b-256 checksum
How to use checksums
8626d6c50e0c92adc5b7df07c97373ca36c30ae8b9989b923a439d22259e42bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.11

Security for repo-conn 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page