English · العربية · Español · Français · 日本語 · 한국어 · Tiếng Việt · 中文 (简体) · 中文(繁體) · Deutsch · Русский
Learn Weiqi as a readable journey, not as a wall of unexplained “best moves.”
Path of Influence is a local-first teaching application for Go/Weiqi. It moves from short 5×5 and 7×7 lessons through complete 9×9 games to ordinary full-board 19×19 play, with an explanatory companion, bounded player agents, narrated agent theatre, and a replayable chronicle. Exact rules remain authoritative even when every analysis or language-model provider is offline.
| Donate | PayPal | Stripe |
|---|---|---|
The board keeps exact liberties, groups, captures, ko, and legal moves visually separate from KataGo forecasts, teacher interpretation, model explanation, and metaphor.
On ordinary 19×19 openings, candidate previews separate exact local shape from calculated territory potential and influence direction, then show authored gains, tradeoffs, before→after power shape, reconsideration conditions, follow-ups, opponent replies, and joseki (定式) context. Numbered mini-diagrams are questions to examine, not stones already played or a forced sequence. The optional deeper AI study keeps its localized headings separate from verbatim model prose and never places a stone.
- Deterministic code owns legality, capture, positional superko, scoring, history, and persistence.
- KataGo supplies bounded analysis evidence and never mutates a game.
- Player Agents choose only from position-bound legal candidate IDs supplied by the server.
- Companion Agents explain and ask questions; they move only after an explicit one-turn delegation.
- “Energy” is a teaching metaphor with separately labeled exact, tactical, engine, teacher, model, and metaphor evidence.
- Ordinary games, including full-board 19×19 play, use declared Chinese area rules with positional superko; training variants are labeled.
| Path | Contents |
|---|---|
apps/api/ |
FastAPI authority, deterministic Go domain, SQLite chronicle, and bounded KataGo/LLM adapters |
apps/web/ |
Responsive React/Vite teaching client with 11 explicit interface catalogs |
config/ |
Reviewed 9×9 and 19×19 KataGo analysis configurations |
scripts/ |
Reproducible setup, verification, runtime, and visible-browser controls |
references/ |
Architecture and safety, teaching principles, and model provenance |
Prerequisites: Linux, Python 3.10+, uv, Node.js 22, and npm. KataGo is optional for the first launch.
git clone https://github.com/lachlanchen/LazyWeiqi.git
cd LazyWeiqi
npm ci
uv sync --project apps/api --extra dev --locked
cp .env.example .env
scripts/run.sh startOpen http://127.0.0.1:8010/ for the compact board or http://127.0.0.1:8010/full for the complete learning view. Stop only this repository’s owned processes with:
scripts/run.sh stopInstall the pinned, hash-verified KataGo teaching engines when analysis is needed. The dedicated 19×19 setup has its own reviewed configuration and verification path:
scripts/setup-katago.sh --print-plan
scripts/setup-katago.sh
scripts/verify-katago.sh
scripts/setup-katago19-models.sh
scripts/verify-katago19.sh --static-only
scripts/verify-katago19.shThe persisted, allowlisted selector supports en, ar, es, fr, ja, ko, vi, zh-Hans, zh-Hant, de, and ru. Every locale has the same 629 explicit message keys and the same interpolation placeholders. The document language follows the selection, and Arabic switches the page to right-to-left layout.
Stable interface copy and known deterministic rule failures are localized. Unknown engine or model prose remains verbatim and keeps its evidence provenance; the client never presents an unreviewed translation as an exact Go fact.
React teaching UI
│ exact commands + revision checks
▼
FastAPI game service ───────► SQLite game and branch chronicle
│
├── deterministic rules, capture, superko, and scoring
├── legal candidate IDs ──► KataGo / bounded Player Agent
└── verified evidence ────► Companion / narrator explanation
Private notes, credentials, databases, browser profiles, downloaded models, tuning caches, and generated runtime evidence remain ignored and out of Git.
npm run lint
npm test
npm run build
uv run --locked --project apps/api ruff check apps/api
uv run --locked --project apps/api ruff format --check apps/api
uv run --locked --project apps/api pytest -q
bash -n scripts/*.sh scripts/tests/*.sh
git diff --checkBrowser-facing changes additionally require the dedicated loopback noVNC/CDP desktop check at desktop and mobile widths, screenshots, and zero unexpected console or network errors.
If you use Path of Influence in teaching or research, cite the repository. GitHub reads CITATION.cff and shows a Cite this repository panel on the repository page.
@software{chen_path_of_influence_2026,
author = {Chen, Lachlan},
title = {Path of Influence: A Local-First Weiqi Teaching Journey},
year = {2026},
version = {0.1.0},
url = {https://github.com/lachlanchen/LazyWeiqi}
}This is a production teaching application under active development, not a disposable board-game demo. The source is MIT licensed; KataGo and downloaded networks retain their upstream licenses and are not committed here. The teaching default remains 9×9; ordinary full-board 19×19 play is also supported under declared Chinese area rules with positional superko.

