Skip to main content

surgite

Standup summaries from your git history — in the browser, in the terminal, or as a shareable link.

CI PyPI Python versions License: MIT

The web app gives your team a shared dashboard: per-user repos, per-user prompt settings, AI-written summaries, and shareable links to specific summary views. The CLI does the same for a local repo, no server needed. First-party auth, no third-party tracking.

Lean principles: ~15 Python source files, one binary, no SPA framework, no slowapi, no Celery, no Redis. Reads like a script.

Quickstart

Two paths. Pick one.

The web app — three commands, full team dashboard:

git clone https://github.com/nicoleman0/surgite.git
cd surgite
cp .env.example .env       # set BOOTSTRAP_OWNER_EMAIL=you@example.com
docker compose up -d

On first start the app mints an admin invite and logs the token; redeem it with uv run surgite --redeem-invite <token> --email you@example.com and you're in. Full guide: docs/self-host.md.

One-off summary from a local repo — no database, no server:

pip install surgite         # or: uv tool install surgite
surgite /path/to/your/repo --since 7.days.ago

The PyPI wheel ships the surgite package — the CLI and the API code. The web frontend and the alembic migrations are not in the wheel; the full self-hosted stack installs from the repo or the Docker image (see docs/self-host.md).

Add --summarize to get AI-written prose (set ANTHROPIC_API_KEY first).

Screenshots

surgite dashboard

The dashboard, with terminal-aesthetic chrome, a sample repo's commit log, and a streamed AI summary panel. See docs/self-host.md for the deployment walkthrough.

What you get

  • Web dashboard — per-user repos, prompt settings, summary history, share links, admin user management (/admin/users). Email + password login with __Host- session cookies.
  • CLIsurgite /path/to/repo for a local one-off, surgite --registered <name> to pull from a running API, surgite --login to authenticate, surgite --summarize for AI-written prose.
  • Per-user provider keys — each user brings their own Anthropic / Groq / DeepSeek key. Fernet-encrypted at rest, never returned by the API.
  • Shareable summary linksPOST /summaries mints a /s/{slug} URL that re-runs a saved query in a read-only view. Owner-scoped in multi-user mode.

Why?

  • Multi-user — email + password login, per-user repos and summaries, per-user provider keys. (The 0.5.0 headline.)
  • Self-hostable — your data, your auth, your machine. No SaaS account, no vendor lock-in. Runs on a homelab box, a small VM, a Raspberry Pi, or a Kubernetes cluster — same code path.
  • No telemetry — first-party auth, no analytics, no phone-home.
  • Lean — FastAPI + Postgres + SvelteKit, the whole thing reads top-to-bottom.

Documentation

Development

uv sync --group dev                 # install deps (incl. dev tools)
docker compose up -d db             # Postgres for local dev
uv run alembic upgrade head         # run migrations
uv run uvicorn surgite.api:app --reload
cd frontend && npm install && npm run dev
uv run pytest                       # tests
uv run ruff check . && uv run ruff format --check .   # lint + format

See AGENTS.md for the canonical dev quickstart and the architecture overview.

Contributing

Contributions are welcome. The project is deliberately minimalist — see the principles in AGENTS.md. Start with CONTRIBUTING.md for dev setup and the PR workflow; please also read CODE_OF_CONDUCT.md. For anything security-sensitive, see SECURITY.md.

The canonical repository is on GitHub: https://github.com/nicoleman0/surgite.

License

MIT © 2026 Nick Coleman

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

surgite-1.0.0.tar.gz (56.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

surgite-1.0.0-py3-none-any.whl (63.7 kB view details)

Uploaded Python 3

File details

Details for the file surgite-1.0.0.tar.gz.

File metadata

  • Download URL: surgite-1.0.0.tar.gz
  • Upload date:
  • Size: 56.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for surgite-1.0.0.tar.gz
Algorithm Hash digest
SHA256 53b916c9ae696b203bfbd8cb6e0a654abcce0fda7b220c331400518e903603e8
MD5 9c134f9a9ac7827af5642cc15a44325a
BLAKE2b-256 18a31d3ab6ed2113e1541f9d36c0bf5d0e1052a4f41e1e281745ddccfce4d732

See more details on using hashes here.

Provenance

The following attestation bundles were made for surgite-1.0.0.tar.gz:

Publisher: publish.yml on nicoleman0/surgite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file surgite-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: surgite-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 63.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for surgite-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 327a4a0e88e9ce664e34b6c24bdaef6f667e2d00fa96662b76e5a9be8ea588e7
MD5 e9d5ad3f0e02edda22a7f27b490f9027
BLAKE2b-256 d9e4c542f50085d92758bec00b8a55a1aa8a55b8f7d0853eb37a1cc7f213114e

See more details on using hashes here.

Provenance

The following attestation bundles were made for surgite-1.0.0-py3-none-any.whl:

Publisher: publish.yml on nicoleman0/surgite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.1.0

2 files

1.0.2

2 files

1.0.1

2 files

This release

1.0.0 This release

2 files

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