Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
翻訳待ち
Wager Book keeps every wager you place on Kalshi and Polymarket in one table: stake, odds, max win, today's sell price and what each closed wager actually paid. Free for Windows and macOS.
翻訳待ち
金融Python · Inno SetupGitHub @Charette-AI-Groupオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
Wager Book desktop app (PySide6): a book of Kalshi and Polymarket wagers
翻訳待ち
Loading the full README.
Read the full README ↗A desktop book for wagers placed on Kalshi and Polymarket US: every open position and every closed one, with the stake, the market-implied chance, the most it can pay, and what it actually paid. PySide6, one JSON file, nothing sent anywhere.
Website: https://charette-ai-group.github.io/wagerBook/ — screenshots, the full manual and
the downloads, built from docs/.
The user manual is in docs/manual/README.md, with the arithmetic.
Users do not need Python. Releases carry a Windows installer, a Windows portable zip and a macOS app bundle:
| File | For |
|---|---|
wagerBookSetup-<version>.exe | Windows. Per-user install, no administrator rights; adds a Start menu entry |
WagerBook-<version>-portable.zip | Windows, without installing: unzip anywhere and run WagerBook.exe |
WagerBook-<version>-macos.zip | macOS: unzip and drag WagerBook.app to Applications |
Your book stays in %APPDATA%\Wager Book (on macOS, the user's application data folder), not
in the install folder, so upgrading or uninstalling never touches your wagers.
cd W:\projects\26wagerBook
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"
cd W:\projects\26wagerBook
.\.venv\Scripts\Activate.ps1
wager-book
Or without the script entry point:
python -m wagerBook.main
Or just double-click runApp.cmd in the project folder (needs the one-time setup done first).
pytest
ruff check src tests
%APPDATA%\Wager Book\wagers.json — every wager, open or closed. Rewritten whole on each
change through a temporary file, so a crash mid-write leaves the previous book intact.
settings.ini beside it holds the theme choice and the window's last position and size.
The release files are built by .github/workflows/build.yml, the
same pipeline as 26FRWB: every push runs the tests on Windows and macOS and builds both; pushing
a version tag also publishes a GitHub Release with the builds attached.
To build them yourself:
pip install -e ".[build]"
python tools\buildExe.py
python tools\buildInstaller.py
| Step | Produces | Notes |
|---|---|---|
tools/buildExe.py on Windows | dist\WagerBook\ | One-folder PyInstaller bundle, about 120 MB |
tools/buildExe.py on macOS | dist/WagerBook.app | Application bundle, from the same spec |
tools\buildInstaller.py | dist\wagerBookSetup-<version>.exe | Inno Setup 6, about 33 MB. Needs winget install JRSoftware.InnoSetup. Windows only |
tools/buildExe.py inventories what landed in the bundle - the icon, the manual, certifi's
certificate list - checks on Windows that WagerBook.exe carries the app's version in its
Properties > Details (stamped from appConfig by tools/windowsVersionInfo.py), and then runs the built app's --selftest report.txt, which also builds the
window offscreen against a scratch book. A windowed build has no console, so asking it is the
only proof it starts; the script refuses to call a bundle shippable until it answers.
The certificate list matters for Update Prices: a standalone macOS build often finds no system
list, and every https request would then fail as if the price sites were down.
services/httpsService.py uses certifi's list everywhere, so the answer is the same from
source and from every build.
The app bundle is not code-signed or notarised, so Gatekeeper will refuse it on first open with a message about an unidentified developer. Right-click the app and choose Open, which offers a button the plain double-click does not, or clear the quarantine flag:
xattr -dr com.apple.quarantine WagerBook.app
Signing needs a paid Apple Developer account, which this project does not have.
Tag a commit whose appConfig.appVersion matches. The workflow refuses a tag that disagrees,
because a release named after a version the app does not report leaves a bug report
unanswerable.
git tag -a v0.8.4 -m "What changed in this release" ; git push origin v0.8.4
The tag's message becomes the release notes. git tag deletes lines starting with # by
default, so if the notes use Markdown headings, write them to a file and tag with
--cleanup=whitespace instead:
This is the beginning of the README. Read the rest at the original. Read the full README ↗