Skip to main content

kymo local runtime

For installing and using local mode, see the kymo README. This file is for developers of the runtime.

This platform wheel owns the native kymo and kymo-server commands plus the frozen PostgreSQL and ClickHouse artifacts used by local deployment. It provides durable installation identity, verified database installation, read-only diagnostics, and a per-user supervisor for the local stack.

For isolated development and tests, set KYMO_LOCAL_ROOT to put every managed directory below one private root. MKDB2_LOCAL_ROOT is rejected after the cutover.

kymo status
kymo install
kymo ensure --json
kymo open [--no-browser] [<project-id> [<run-id>]]
kymo start
kymo doctor
kymo stop [--hold]
kymo ports [--dashboard <port> --cdn <port>]

ensure installs missing artifacts unless KYMO_LOCAL_NO_INSTALL=1, starts one stack when stopped, and returns the current installation UUID, endpoint generation, private client sockets, loopback browser origins, protocol range, and ephemeral server bearer. MKDB2_LOCAL_NO_INSTALL is rejected. Its JSON output is machine-oriented secret material and must not be logged. start is ensure without the JSON. Concurrent or repeated calls reuse the running supervisor.

The supervisor starts PostgreSQL 17 on a private Unix socket, ClickHouse on pinned HTTPS, and kymo-server with separate native, upload, dashboard, and CDN transports. Lifecycle, recovery, stop/--hold, ports, idle shutdown, and the trust boundary are specified in local deployment.

Generation credentials are distinct and private. ClickHouse intentionally binds 127.0.0.1, while the server connects to localhost: the generated certificate contains subjectAltName=DNS:localhost, which rustls/webpki requires and does not infer from the common name.

On macOS, short-lived sockets live below the canonical per-user temporary directory returned by the standard library's _CS_DARWIN_USER_TEMP_DIR path. Linux uses a validated private XDG_RUNTIME_DIR, with a private /tmp/kymo-<uid> fallback. Persistent database data and generation secrets remain in the managed data and state roots.

The artifact catalog is ../shared/local-runtime-artifacts.json. Both this installer and the transport qualification harness consume it. The launcher also owns the shared laptop database profiles through core; changes to versions, exact sizes, hashes, listeners, or resource settings therefore re-run both workflows.

The official macOS ClickHouse asset is a self-extracting executable: invoking --version expands the downloaded 107 MB stub in place to roughly 560 MB. The catalog's installed_sha256 is the digest after that required expansion, so preparation must happen before installed-file validation.

Manifest format 1 is still pre-release. Its compatibility rule lives beside MANIFEST_FORMAT_VERSION. A pre-release installation with an incompatible protocol is not migrated: delete it and reinstall.

Removing data, backup, and restore

There is no uninstall, reset, backup, or restore command. Use kymo doctor --json to record the resolved managed roots before deleting anything. The runtime creates:

  • macOS data and state below ~/Library/Application Support/ai.NovelAI.kymo-local-runtime/, and cache at ~/Library/Caches/ai.NovelAI.kymo-local-runtime;
  • Linux data below ${XDG_DATA_HOME:-~/.local/share}/kymo-local-runtime/data, state below ${XDG_STATE_HOME:-~/.local/state}/kymo-local-runtime (falling back to the local-data directory's state child), and cache below ${XDG_CACHE_HOME:-~/.cache}/kymo-local-runtime;
  • with KYMO_LOCAL_ROOT=/absolute/path, exactly /absolute/path/data, /absolute/path/state, and /absolute/path/cache instead of those platform roots;
  • Python delivery spools at $KYMO_SPOOL_DIR or ~/.cache/kymo/spool; no-argument kymo-sync also scans the pre-cutover ~/.cache/pymkdb2/spool backlog;
  • macOS sockets below _CS_DARWIN_USER_TEMP_DIR/kymo-<uid>/<state-digest>, or Linux sockets below $XDG_RUNTIME_DIR/kymo-<uid>/<state-digest> with canonical /tmp/kymo-<uid>/<state-digest> as the fallback, where <state-digest> is the first 12 hex digits of the state root path's SHA-256 (a copied installation shares the UUID, so the UUID cannot key it).

Component logs live in the state root and keep one current file plus three 8 MiB rotations, capped at 32 MiB per component.

Uninstall, cold backup, and restore procedures are in local deployment.

Metadata

Release files for kymo-local-runtime 2026.9.27

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for kymo-local-runtime 2026.9.27
File Interpreter ABI Platform
kymo_local_runtime-2026.9.27-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
kymo_local_runtime-2026.9.27-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 27.2 MB

Release files / kymo_local_runtime-2026.9.27-py3-none-manylinux_2_28_x86_64.whl

Download URL kymo_local_runtime-2026.9.27-py3-none-manylinux_2_28_x86_64.whl
Size 14.1 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
6258763e3896a2e23010b3f6457eec1553c6eebcb28352df9399d936f7ec1bab
BLAKE2b-256 checksum
How to use checksums
6ba1a87e7246d4c06a34dc1b3fdf8ef191d496189edcab3dfbb9de7447c213d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / kymo_local_runtime-2026.9.27-py3-none-macosx_11_0_arm64.whl

Download URL kymo_local_runtime-2026.9.27-py3-none-macosx_11_0_arm64.whl
Size 13.1 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b0ed00e6edcccca95b7d3befd2382b2e846bc3f61b8432d258b372d6e30dbe9c
BLAKE2b-256 checksum
How to use checksums
6e238cfe2a781c8a73d834986916bb8b2e6c93b3b31576246f28e875aab82467
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Security for kymo-local-runtime 2026.9.27

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for kymo_local_runtime-2026.9.27-py3-none-manylinux_2_28_x86_64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page