Skip to content

VAMFI/repostellar

VAMFI RepoStellar

License: Apache-2.0 Node >= 20 Privacy: Local-first Platform

RepoStellar is a local-first open-source Git atlas and explorer from VAMFI Inc.

It scans your machine for Git repositories, visualizes topology, inspects file trees and commits, and infers repository purpose from local signals only.

Why RepoStellar

  • Find any repository quickly across large directory trees
  • Understand project purpose without opening each repo manually
  • Inspect files and commit history from one interface
  • Visualize relationships by path, remote host, and activity
  • Keep data local by default

Screenshot Gallery

Animated Tour

RepoStellar tour

Atlas View

Atlas view

Repo Drawer (Files + Commits)

Repo drawer

Graph View (2D)

Graph 2D

Graph View (3D)

Graph 3D

Insights View

Insights

Quick Start

git clone https://github.com/VAMFI/repostellar.git
cd repostellar
npm install
npm run dev

Local services:

  • Web UI: http://127.0.0.1:5174
  • API: http://127.0.0.1:4177

Monorepo Layout

  • apps/server local API + scan engine + SSE jobs
  • apps/web React/Vite UI (Atlas, Graph, Insights, Repo Drawer)
  • packages/shared shared API/data types

API Endpoints

  • POST /api/scan/start
  • GET /api/scan/:scanId/events
  • POST /api/scan/:scanId/cancel
  • GET /api/repos?scanId=...
  • GET /api/repo/:repoId/files?path=...
  • GET /api/repo/:repoId/commits?branch=...&limit=...
  • GET /api/graph?scanId=...&mode=path|remote|activity

Demo GIF Commands

Use the captured workflow frames in docs/screenshots/workflow5.

cd repostellar
mkdir -p docs/demo

ffmpeg -y -framerate 0.7 -pattern_type glob \
  -i 'docs/screenshots/workflow5/*.png' \
  -vf "scale=1400:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
  docs/demo/repostellar-tour.gif

Python fallback (if ffmpeg is unavailable):

python3 -m pip install pillow
python3 - <<'PY'
from PIL import Image
from pathlib import Path
frames = [Image.open(p).convert('P', palette=Image.ADAPTIVE) for p in sorted(Path('docs/screenshots/workflow5').glob('*.png'))]
frames[0].save('docs/demo/repostellar-tour.gif', save_all=True, append_images=frames[1:], duration=[1400,1600,1300,1300,1500], loop=0, optimize=True)
PY

Optional optimization:

gifsicle -O3 docs/demo/repostellar-tour.gif -o docs/demo/repostellar-tour.gif

Troubleshooting Install

  • Verify Node version: node -v (requires >= 20)
  • If you have an older version, use nvm install 20 && nvm use 20
  • If local dev fails with missing @esbuild/darwin-arm64 on Apple Silicon:
npm install -D @esbuild/darwin-arm64
  • Reinstall deps cleanly:
rm -rf node_modules package-lock.json
npm install

Privacy

RepoStellar runs locally and does not send scan content to external services by default.

Open Source

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors