Skip to main content

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 psutil is installed)
  • GPU count and names (if torch is 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(model, train_data)
        val_loss, val_acc = evaluate(model, val_data)

        # 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tyko-0.1.50.tar.gz (66.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tyko-0.1.50-py3-none-any.whl (46.7 kB view details)

Uploaded Python 3

File details

Details for the file tyko-0.1.50.tar.gz.

File metadata

  • Download URL: tyko-0.1.50.tar.gz
  • Upload date:
  • Size: 66.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.17.0 {"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.17.0"},"openssl_version":"OpenSSL 3.5.6 7 Apr 2026","python":"3.14.5","system":{"name":"Linux","release":"6.19.14+deb14-amd64"}} HTTPX2/2.4.0

File hashes

Hashes for tyko-0.1.50.tar.gz
Algorithm Hash digest
SHA256 471a0d9203f46fab22a66a2e40a27a115d6a71c5b372295961207af3825a7a98
MD5 e63499a824cb90e72054f8e8f18a868e
BLAKE2b-256 580f79558cd313a0b94fdacab0c6e25b4b58e5ab363bc0cc3d11a96125acc31d

See more details on using hashes here.

File details

Details for the file tyko-0.1.50-py3-none-any.whl.

File metadata

  • Download URL: tyko-0.1.50-py3-none-any.whl
  • Upload date:
  • Size: 46.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.17.0 {"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.17.0"},"openssl_version":"OpenSSL 3.5.6 7 Apr 2026","python":"3.14.5","system":{"name":"Linux","release":"6.19.14+deb14-amd64"}} HTTPX2/2.4.0

File hashes

Hashes for tyko-0.1.50-py3-none-any.whl
Algorithm Hash digest
SHA256 e797b0aa6e79e1993a113c7f693ba23216bc73520dd9ceafb9fcdce3a3a56d7d
MD5 1a2f73a2b5c73e412b1a781ffea8ae12
BLAKE2b-256 b01655662a85f35182b251028e71c342ecb4132bb02c1ad5a28358fc69f5bec1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page