Hanani — Geopolitical News Reasoning
Hanani is a standalone geopolitical reasoning system — expandable semantic graphs + a layered assessment engine, not a one-off crisis briefing or news reader.
What do all available reports imply when combined?
Requirements (web): run hanani docs serve → http://127.0.0.1:8805/
Architecture: docs/reasoning-system.md ·
docs/requirements.md ·
docs/review-2026-08-08.md (functional + code
review of 0.8.0; findings actioned in 0.9.0 — expanded offline floor,
unassessed audit scores, declared-vs-detectable coverage on status commands)
Initial focus: Russia–Ukraine, Hormuz Strait / US–Iran–Gulf states.
See docs/vision.md.
hanani --help
hanani factors
hanani reasoning # engine status (Layer 1 → Layer 2 pipeline)
hanani ontology # mechanism graph (L1–L5)
hanani rhetoric # fallacy / audit graph
hanani workflow status
hanani docs serve # requirements + architecture as web pages
# The vertical slice — article → atoms → Layer 1 rhetoric → Layer 2 → persisted:
hanani ingest article.txt --source-id reuters --title "Odesa depot strike"
hanani ingest article.txt --source-id reuters --hoglah-model llama3 # + model tier
hanani corpus # summarise the persisted store (~/.hanani)
hanani gaps # registry-aware gaps and stated information needs
hanani relations # typed, auditable relations between assessed atoms
hanani push-tirzah # push stored records into Tirzah memory (tirzah extra)
hanani debate # Milcah multi-LLM debate over admissible atoms (milcah extra)
Graphs: living-semantic-model.md ·
rhetorical-logic-graph.md
Family stack
| Sibling | Role |
|---|---|
| Milcah | argument evaluation, multi-LLM debate |
| Tirzah | memory over ingested reports |
| Hoglah | LLM execution queue |
| Galeed | process trace |
| Keturah | capability manifest |
Install
pipx install hanani
hanani --help
Optional extras: pipx inject hanani 'hanani[milcah]', hanani[tirzah], hanani[family].
hanani docs serve needs a git checkout (docs are not in the wheel).
Develop
pip install -e ".[dev]"
pytest
License
Metadata
Release files for hanani 0.9.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hanani-0.9.1.tar.gz | 54.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hanani-0.9.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 102.3 kB
Release files / hanani-0.9.1.tar.gz
| Download URL | hanani-0.9.1.tar.gz |
|---|---|
| Size | 54.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8c86e1bdde0acacd3181fba1ecf3c332910831be07c126f52183452b8f91736e
|
|
BLAKE2b-256 checksum How to use checksums |
53921e2a6d94ac08fa74d22d93061c9a3e664b89da7489687e2fad6c13e76b54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / hanani-0.9.1-py3-none-any.whl
| Download URL | hanani-0.9.1-py3-none-any.whl |
|---|---|
| Size | 47.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4bd490ce262fc3b819f765db6a132c02d86bc483ec0d5dd1b8a6753ea4151f2d
|
|
BLAKE2b-256 checksum How to use checksums |
42f27c62436377255e473ac93b4781b20ffb799a987a181c355d7e53e2ba47e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|