Skip to main content

Self-hosted AI development manager for GPU job execution on your own servers

Project description

mikon

日本語版: README-ja.md

A self-hosted tool for managing AI development (training and evaluation jobs) on GPU servers from a browser.

Write Python the way you normally would, and just add a decorator to your functions. mikon automatically discovers your jobs, generates config forms, allocates GPUs, launches runs, and displays metrics, logs, and artifacts in real time.


Features

  • Decorator-only discovery — Just add @mikon.job. No registration step, no code changes required.
  • Auto-generated config UI — Pydantic fields on class Config(mikon.Config) become form widgets automatically (sliders, selects, checkboxes, etc.)
  • NVIDIA and AMD support — Specify GPUs in unified nvidia:0 / amd:0 format. CUDA_VISIBLE_DEVICES / ROCR_VISIBLE_DEVICES are set automatically.
  • Live monitoring — Metric charts and log streams update every few seconds via SSE.
  • Artifact management — Call ctx.log_artifact() to make files downloadable from the browser.
  • Lineage trackingctx.use_dataset() / ctx.use_artifact() automatically build an upstream/downstream graph.
  • Module system — Register swappable components with @mikon.module; the UI generates a module-selection form automatically.
  • Dataset management — Register existing paths or create datasets with a builder function.
  • Document viewer — Markdown, Typst, and TypMark files placed in docs/ are viewable in the dashboard.
  • File-based persistence — No SQL database required. Everything is stored as text files under .mikon/.
  • Independent processes — Jobs keep running even if the dashboard is restarted.

Requirements

  • Python 3.11+
  • GPU server with NVIDIA drivers or AMD ROCm installed
  • typst CLI (optional, for Typst document rendering)
  • typmark-cli CLI (optional, for TypMark document rendering)

Quick Start

# Install
uv add mikon   # or: pip install mikon

# Initialize project
mikon init
# src/train.py
import mikon
from mikon import Config, RunContext
from pydantic import Field
from typing import Literal

class TrainConfig(Config):
    lr: float = Field(1e-3, gt=0, le=1)
    epochs: int = Field(10, ge=1, le=1000)
    optimizer: Literal["adam", "sgd"] = "adam"

@mikon.job
def train(config: TrainConfig, ctx: RunContext) -> None:
    for epoch in range(config.epochs):
        loss = 1.0 / (epoch + 1)
        ctx.log_metric("loss", loss, step=epoch)
# Start the server on the GPU machine
mikon serve

# Launch a job from the CLI
mikon run train --gpu nvidia:0

# Access the dashboard from your local machine via SSH port forwarding
ssh -L 8000:localhost:8000 you@gpu-server
# → Open http://localhost:8000 in your browser

Installation

uv add mikon   # recommended
pip install mikon

Dependencies (pynvml, psutil, watchfiles, fastapi, etc.) are installed automatically.


Documentation

For the full usage guide, SDK reference, CLI options, and API error model, see USAGE.md.


License

MIT

Project details


Download files

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

Source Distribution

mikon-0.0.1.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

mikon-0.0.1-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file mikon-0.0.1.tar.gz.

File metadata

  • Download URL: mikon-0.0.1.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mikon-0.0.1.tar.gz
Algorithm Hash digest
SHA256 429b767a5799bb9975e85bfa80c0fd1c2ee426fed8ae665c46d7fac61e11ae3e
MD5 c70751843503e001b64bfb3fca0b7c0b
BLAKE2b-256 18ce7fcd70015ef032930347f20ddc87a0774e1851b5c681f00756b066c9b475

See more details on using hashes here.

File details

Details for the file mikon-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: mikon-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mikon-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9bdeeed800824ca08ea4b2adc9b9fb4ce8dbe3ae158c09181d505715d73ec8df
MD5 eb62448e02531b4996b31ecf18f2ddc5
BLAKE2b-256 a9ecc37a8755111d1dc26d78a95d132517d8b7a4cd2994cc824c87c584459bb6

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