Tyko Client - Python SDK
Official Python SDK for Tyko Labs.
Track experiments, manage models, and version datasets with a simple, intuitive API.
Hierarchy
Tyko uses a three-level hierarchy to organize your ML work:
Project → Experiment → Run
- Project: Top-level container for your ML project (e.g., "mnist-classifier")
- Experiment: Groups related runs for comparison (e.g., "hyperparameter-search")
- Run: A single training execution with parameters, metrics, and artifacts
Installation
Install via pip:
pip install tyko
Quick Start
from tyko import TykoClient
client = TykoClient()
# Simplest usage - just project name (uses "default" experiment)
# Environment info (Python version, CPU, GPU, etc.) is auto-captured
with client.start_run(project="my-ml-project") as run:
run.params["learning_rate"] = 0.001
run.params["batch_size"] = 32
# ... your training code ...
# With params at creation time
with client.start_run(
project="my-ml-project",
experiment="hyperparameter-search",
params={"learning_rate": 0.01, "batch_size": 64}
) as run:
# Params are already set, can add more during the run
run.params["epochs"] = 100
# ... your training code ...
Environment Capture
Environment information is automatically captured when you start a run:
- Python version
- Operating system/platform
- CPU count
- RAM size (if
psutilis installed) - GPU count and names (if
torchis available)
You can also manually add environment details:
with client.start_run(project="ml-experiments") as run:
# Add custom environment info
run.environment["git_commit"] = "abc123"
run.environment["cuda_version"] = "12.1"
To use the standalone function:
from tyko import capture_environment
env = capture_environment()
print(env) # {'python_version': '3.12.1', 'platform': 'Linux-...', ...}
Metric Logging
Log metrics during training using run.log():
with client.start_run(project="image-classifier") as run:
run.params["learning_rate"] = 0.001
run.params["batch_size"] = 32
for epoch in range(100):
train_loss = train_epoch() # your training step
val_loss, val_acc = evaluate() # your eval step
# Log multiple metrics at once
run.log({
"train/loss": train_loss,
"eval/loss": val_loss,
"eval/accuracy": val_acc,
"epoch": epoch,
})
Metric Naming Conventions
Use prefixes with slashes for grouped visualization in the dashboard:
| Pattern | Example | Dashboard Grouping |
|---|---|---|
prefix/metric |
train/loss, train/accuracy |
Grouped under "train" |
prefix/metric |
eval/loss, eval/accuracy |
Grouped under "eval" |
| Plain name | epoch, step |
Ungrouped |
This allows the dashboard to organize metrics into logical groups automatically.
Configuration
API Key
Set your API key via environment variable (recommended):
export TYKO_API_KEY="your-api-key"
Or pass it explicitly:
client = TykoClient(api_key="your-api-key")
If the server has anonymous access enabled (ALLOW_ANONYMOUS=true), no API key is needed:
client = TykoClient(api_url="https://your-server.com")
Server URL
For self-hosted deployments, set the server URL:
export TYKO_API_URL="https://your-server.com"
Or:
client = TykoClient(api_url="https://your-server.com")
Development
Prerequisites
- Python 3.11+
- uv package manager
Setup
cd packages/tyko-client
uv sync
Testing
moon run tyko-client:test
Linting
# Check code style
moon run tyko-client:ruff
# Format code
moon run tyko-client:black
# Type checking
moon run tyko-client:mypy
# All three
moon run tyko-client:lint
Building
moon run tyko-client:build
Metadata
Release files for tyko 0.1.58
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 |
|---|---|---|---|---|
| tyko-0.1.58.tar.gz | 70.8 kB | Without provenance | Details for tyko-0.1.58.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tyko-0.1.58-py3-none-any.whl | Python 3 | none | any | Details for tyko-0.1.58-py3-none-any.whl |
Total release size: 119.2 kB
Release files / tyko-0.1.58.tar.gz
| Download URL | tyko-0.1.58.tar.gz |
|---|---|
| Size | 70.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7e9a84fe496bec23b320fe9feac709268abe5400322968f2d45533cbbbeb1c9d
|
|
BLAKE2b-256 checksum How to use checksums |
ece854d346d1dbcca6251a5970d300a15bd27806cf18ca25260b237a59d7e9f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.18.2 {"ci":true,"cpu":"x86_64","distro":{"id":"bookworm","libc":{"lib":"glibc","version":"2.36"},"name":"Debian GNU/Linux","version":"12"},"implementation":{"name":"CPython","version":"3.14.5"},"installer":{"name":"hatch","version":"1.18.2"},"openssl_version":"OpenSSL 3.5.6 7 Apr 2026","python":"3.14.5","system":{"name":"Linux","release":"5.15.154+"}} HTTPX2/2.16.0
|
Release files / tyko-0.1.58-py3-none-any.whl
| Download URL | tyko-0.1.58-py3-none-any.whl |
|---|---|
| Size | 48.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ed5f0ebc4d84683057ac163a32a46e8c7c7a6f8a55f440ec405d867b1069e5fc
|
|
BLAKE2b-256 checksum How to use checksums |
9946056dd4b43ec3766405bd07efe8ef865812fd98a4a405637aff4d85859507
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.18.2 {"ci":true,"cpu":"x86_64","distro":{"id":"bookworm","libc":{"lib":"glibc","version":"2.36"},"name":"Debian GNU/Linux","version":"12"},"implementation":{"name":"CPython","version":"3.14.5"},"installer":{"name":"hatch","version":"1.18.2"},"openssl_version":"OpenSSL 3.5.6 7 Apr 2026","python":"3.14.5","system":{"name":"Linux","release":"5.15.154+"}} HTTPX2/2.16.0
|
Security for tyko 0.1.58
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.