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 Container image 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

That builds the image from the checkout. To pull the published one instead of building, uncomment APP_IMAGE=ghcr.io/nicoleman0/surgite:latest in .env.

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).

Demo

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.
  • CLI — surgite /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.
  • Self-hosted models — point LOCAL_BASE_URL at any server speaking the OpenAI chat API (vLLM, Ollama, LM Studio, LiteLLM) to keep summaries on your own network. LLM_LOCAL_ONLY=1 drops the hosted providers entirely.
  • Shareable summary links — POST /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

Metadata

Release files for surgite 1.3.2

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

Source distribution (sdist)

Source distribution for surgite 1.3.2
File Size Uploaded
surgite-1.3.2.tar.gz 57.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for surgite 1.3.2
File Interpreter ABI Platform
surgite-1.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 123.2 kB

Release files / surgite-1.3.2.tar.gz

Download URL surgite-1.3.2.tar.gz
Size 57.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c69f4d407d99f51253429acef4a8f09a952133694aa99c3929f9e678d937b7e5
BLAKE2b-256 checksum
How to use checksums
d3d9e55c1f32aae6a195fa4470d87106dc024d958d81f93fef1b4c5f20e8f39f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release files / surgite-1.3.2-py3-none-any.whl

Download URL surgite-1.3.2-py3-none-any.whl
Size 65.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79c3d99613e956984f9060e194d1796e738f4871dbf1430425afb3554a8e2973
BLAKE2b-256 checksum
How to use checksums
23cf2ed8dea6513ae7df5af5e963ab1e420a9a4b2fa6727212d0cdd004f0ab42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release history Release notifications | RSS feed

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

This release

1.3.2 This release

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release 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