Oneport Standup
Your git history → standup notes, weekly summaries, and release notes. Developer-owned: it reads your git on your machine and writes your narrative. Nothing is uploaded.
You already did the work — it's in your commits. Stop re-typing it into Slack every morning. One command turns your commits into a clean update in the right voice.
$ oneport-standup daily
# Standup — the last 24 hours
_you (priya@acme.io)_
**Shipped the checkout retry fix and started the refund flow.**
## Shipped
- Fixed the double-charge on checkout retries (ABC-412, #88)
- Added idempotency keys to the payments client
## In progress
- Refund flow — models + migration landed, API next
_6 commit(s) · 14 file change(s) · +512/-97 · refs: ABC-412_
Why it's different
LinearB, Jellyfish, and Swarmia read your GitHub from their cloud to build
manager dashboards — engineers experience that as surveillance. oneport-standup
inverts it: it runs on your machine, defaults to your commits, and the
output is yours to paste wherever you want. There is no server. Your history
never leaves the building.
Install
pip install oneport-standup
# optional — for the written narrative; without it you still get a clean,
# deterministic commit summary grouped by day:
onp account login <op_live_...> # 0-BYOK: runs on OnePort's managed models, metered
# to your account. Token: https://www.oneport.co.in/console
Use
oneport-standup daily # last 24h → standup notes (defaults to you)
oneport-standup weekly # last 7 days → weekly summary
oneport-standup since 2026-07-01 # since a date
oneport-standup since v2.3.0 # since a tag/branch/commit
oneport-standup release v2.3.0 v2.4.0 # release notes for a version range
oneport-standup weekly --all # everyone's commits, not just yours
oneport-standup daily --author jo@x # a specific author
oneport-standup daily -f json # machine-readable
oneport-standup weekly --no-llm # facts only, no login needed
oneport-standup weekly --post $SLACK_WEBHOOK # post it straight to a Slack channel
Markdown is the default output — paste it into a standup doc, a PR description, or
a CHANGELOG. -f inline renders it prettily in the terminal; -f json is for
tooling. --post <webhook> delivers it to Slack (Block Kit), so a cron job can run
weekly --post $SLACK_WEBHOOK and drop the summary into a channel unattended.
What's deterministic vs. AI
- Deterministic (always): which commits, by whom, in the window; files touched;
line stats; ticket keys (
ABC-123,CVE-2026-…) and PR refs (#42) pulled from subjects. This is puregit log— no model, no network. - AI (optional): grouping those commits into themed, readable bullets in the right voice. The model may only rephrase and group what the commits say. This is enforced, not just requested: every ticket/PR reference the model produces is checked against the real commits, and any it invented is stripped and noted. If the model is unavailable, you get the deterministic day-grouped report instead (never nothing).
Configure — .oneportrc
standup:
model: gemini-flash-latest
output_format: markdown # markdown | inline | json
max_commits: 120 # cap fed to the summariser
The shared .oneport/guidelines.md is passed to the summariser as tone/context
(e.g. "write standups in past tense, no fluff").
Privacy
Serverless by design. Every fact comes from your local .git. Only the optional
prose summary calls a model, on your key. There is no Oneport server; your commit
history and code never leave your machine.
MIT licensed.
Metadata
Release files for oneport-standup 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| oneport_standup-0.3.0.tar.gz | 20.5 kB | Without provenance | Details for oneport_standup-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| oneport_standup-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for oneport_standup-0.3.0-py3-none-any.whl |
Total release size: 45.4 kB
Release files / oneport_standup-0.3.0.tar.gz
| Download URL | oneport_standup-0.3.0.tar.gz |
|---|---|
| Size | 20.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cb97beeae60e11b18dfbfd722a6344785fb61fa815bf748d61b5132bdcf9b890
|
|
BLAKE2b-256 checksum How to use checksums |
dfa1aa6f1f65b878ae7bd1bcde76be24fae6867f7bc5a3343e05452406d31f19
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.0
|
Release files / oneport_standup-0.3.0-py3-none-any.whl
| Download URL | oneport_standup-0.3.0-py3-none-any.whl |
|---|---|
| Size | 24.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
88216ad43c45dcf58ec457b1f2e003bcd08ad2d24e41676a695629d5a53772c5
|
|
BLAKE2b-256 checksum How to use checksums |
65e52faf4130e031ad861f776c24f3cd87a56031d74901f64a2c1fff21dab7ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.0
|
Security for oneport-standup 0.3.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.