Kiso (基礎)
The backend platform for Kasane and Milo.
Kiso is a health intelligence server that powers two clients: the Kasane iOS app (habits, coaching, focus plans) and Milo (an AI coaching agent on WhatsApp). Both read and write the same person profiles, habits, check-ins, and health data through a shared API.
The name means "foundation" in Japanese. Kasane means "layers." Kiso is what the layers sit on.
What it does
For the iOS app: bidirectional sync of persons, habits, check-ins, focus plans, and health measurements via REST API.
For Milo: 52 MCP tools for health coaching. Log weight, meals, labs, blood pressure. Pull data from Garmin, Apple Health, Oura, Whoop. Score 20 health metrics against NHANES population percentiles and clinical guidelines.
For both: a unified person context that merges all data sources in one call.
Quick start
git clone https://github.com/a-deal/kiso.git
cd kiso
pip install -e ".[gateway,dev]"
# Run the gateway
python3 -m uvicorn engine.gateway.server:create_app --factory --port 18800
# Run tests
python3 -m pytest tests/ -v
MCP server (for Claude Desktop / Claude Code)
{
"mcpServers": {
"kiso": {
"command": "uvx",
"args": ["kiso"]
}
}
}
API surfaces
| Surface | Path | Client |
|---|---|---|
| Kasane sync | POST /api/v1/sync |
iOS app |
| Kasane CRUD | /api/v1/persons, /api/v1/habits, etc. |
iOS app |
| Person context | GET /api/v1/persons/:id/context |
Milo |
| Health tools | /api/{tool_name} |
Milo |
| Wearable auth | /auth/garmin, /auth/google |
Browser (OAuth) |
Full API reference: docs/API.md
Architecture
One Python process. Two storage systems. Three clients.
- SQLite (
data/kasane.db): persons, habits, check-ins, focus plans, wearable daily metrics, labs, meals, weight, training. Synced with iOS and wearable integrations. - CSVs (
data/): legacy weight, meals, labs, supplements. Being migrated to SQLite. - Bridge:
person.health_engine_user_idlinks a SQLite person to a per-user data directory.
Full architecture: docs/ARCHITECTURE.md
Health scoring
20 clinically validated metrics scored against NHANES population data (300K+ Americans) and clinical guidelines from AHA, ADA, and ESC. Covers cardiovascular, metabolic, body composition, recovery, and lifestyle dimensions.
Going from 0% to full coverage costs under $300.
Full methodology: docs/METHODOLOGY.md
Docs
| Doc | What's in it |
|---|---|
| ARCHITECTURE.md | System design, storage model, deploy model, project layout |
| API.md | v1 endpoints, sync protocol, data types |
| ROADMAP.md | Cloud adoption phases (JWT, Litestream, Supabase) |
| METHODOLOGY.md | Why each metric, evidence sources, clinical thresholds |
| SCORING.md | How the scoring engine works |
| METRICS.md | 20-metric catalog |
| DATA_FORMATS.md | CSV/JSON/SQLite schemas |
| ONBOARDING.md | Setup walkthrough |
License
MIT
Metadata
Release files for baseline-health 0.8.2
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 |
|---|---|---|---|---|
| baseline_health-0.8.2.tar.gz | 409.2 kB | Without provenance | Details for baseline_health-0.8.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| baseline_health-0.8.2-py3-none-any.whl | Python 3 | none | any | Details for baseline_health-0.8.2-py3-none-any.whl |
Total release size: 703.9 kB
Release files / baseline_health-0.8.2.tar.gz
| Download URL | baseline_health-0.8.2.tar.gz |
|---|---|
| Size | 409.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce91a8ae1ff43df3f10b66fd9b7809e2469b7c341c3643251916c51b8f41a8fb
|
|
BLAKE2b-256 checksum How to use checksums |
7b10ac90efbfebf3a03704c02f8643be2b597ca2b6454be98e858daa614af9aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / baseline_health-0.8.2-py3-none-any.whl
| Download URL | baseline_health-0.8.2-py3-none-any.whl |
|---|---|
| Size | 294.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3ad1a0f776d8b0b1aa313983188d33b6efb4a6508e5cd2e4bfcd413bfbbce14a
|
|
BLAKE2b-256 checksum How to use checksums |
2a63ab8bc83a42b84a2f9dbe31cc3f487f78fea9194bcc4a65029f4f034d136e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Security for baseline-health 0.8.2
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.