Skip to main content

Kumiho Python SDK

PyPI version Python versions Documentation Status License

The official Python SDK for Kumiho Cloud — a graph-native creative and AI asset management platform for VFX, animation, and AI-driven workflows.

Features

  • Graph-Native Design: Built on Neo4j for tracking asset relationships and lineage
  • Revision Control: Semantic versioning for creative assets with full history
  • AI Lineage Tracking: Track AI model training data / GenAI image, video output provenance and dependencies
  • BYO Storage: Files stay on your local/NAS/on-prem storage — only metadata is in the cloud
  • Multi-Tenant SaaS: Secure, region-aware multi-tenant architecture
  • Event Streaming: Real-time notifications for asset changes with tier-based capabilities
  • Graph Traversal: Powerful dependency analysis and impact assessment
  • Type-Safe: Full type hints for IDE autocomplete and static analysis

Installation

pip install kumiho

For development:

pip install kumiho[dev]

Quick Start

1. Authenticate

Run the built-in CLI to cache your Firebase credentials:

kumiho-auth login

This stores credentials at ~/.kumiho/kumiho_authentication.json and automatically refreshes tokens when needed.

2. Connect and Use

import kumiho

# Auto-configure from cached credentials and discovery
kumiho.auto_configure_from_discovery()

# Create a project
project = kumiho.create_project(
    name="my-vfx-project",
    description="VFX assets for 2025 film"
)

# Create a space (organizational container)
space = project.create_space("characters")

# Create an item (versioned asset)
item = space.create_item(
    item_name="hero",
    kind="model"
)

# Create a revision with metadata
revision = item.create_revision(
    metadata={
        "artist": "jane",
        "software": "maya-2024",
        "notes": "Initial model with base topology"
    }
)

# Attach file artifacts (files stay on your storage)
artifact = revision.create_artifact(
    name="hero_model.fbx",
    location="smb://studio-nas/projects/film/hero_model.fbx"
)

# Tag the revision
revision.tag("approved")

Core Concepts

Entity Hierarchy

Project
  └── Space (organizational container)
        └── Item (versioned asset)
              └── Revision (immutable snapshot)
                    └── Artifact (file reference)

Kref URIs

Kumiho uses URI-based references to address any entity:

kref://project/space/item.kind?r=revision&a=artifact

Examples:

# Reference an item (latest revision)
item = kumiho.get_item("kref://my-project/characters/hero.model")

# Reference a specific revision
revision = kumiho.get_revision("kref://my-project/characters/hero.model?r=3")

# Reference a specific artifact
artifact = kumiho.get_artifact("kref://my-project/characters/hero.model?r=3&a=mesh.fbx")

# Reference by tag
published = kumiho.get_revision("kref://my-project/characters/hero.model?t=published")

Edges (Relationships)

Track dependencies and lineage between revisions:

# Create a dependency edge
texture = kumiho.get_revision("kref://my-project/textures/skin.texture?r=2")
revision.create_edge(
    target_revision=texture,
    edge_type=kumiho.DEPENDS_ON,
    metadata={"usage": "skin material"}
)

# Query edges
outgoing = revision.get_edges(direction=kumiho.OUTGOING)
incoming = revision.get_edges(direction=kumiho.INCOMING)

Graph Traversal

Analyze dependencies and impact:

# Find all dependencies (what this revision uses)
deps = revision.get_all_dependencies(max_depth=5)
for kref in deps.revision_krefs:
    print(f"Depends on: {kref}")

# Find all dependents (what uses this revision)
dependents = revision.get_all_dependents(max_depth=5)

# Impact analysis (what would be affected by changes)
impact = revision.analyze_impact()
for impacted in impact:
    print(f"Would affect: {impacted.revision_kref} at depth {impacted.impact_depth}")

# Find shortest path between revisions
path = source.find_path_to(target)

Bundles

Aggregate items into versioned collections:

# Create a bundle
bundle = project.create_bundle("character-bundle")

# Add items
bundle.add_member(hero_model)
bundle.add_member(hero_rig)
bundle.add_member(hero_textures)

# Get members and history
members = bundle.get_members()
history = bundle.get_history()  # Full audit trail

Event Streaming

React to changes in real-time:

import kumiho

# Stream all events with filtering
for event in kumiho.event_stream(routing_key_filter="revision.*"):
    print(f"{event.action}: {event.kref}")

# Filter by kref pattern (glob syntax)
for event in kumiho.event_stream(kref_filter="kref://my-project/**/*.model"):
    print(f"Model changed: {event.kref}")

Tier-Based Streaming Capabilities

Feature Free Creator Studio Enterprise
Real-time streaming
Routing key filters
Kref glob filters
Event persistence in-memory 1 hour 24 hours 30 days
Cursor-based resume
Consumer groups
# Check your tier's capabilities
caps = kumiho.get_event_capabilities()
print(f"Tier: {caps.tier}, Replay: {caps.supports_replay}")

# Resumable streaming (all tiers)
for event in kumiho.event_stream(cursor=saved_cursor):
    process(event)
    save_cursor(event.cursor)  # Persist for recovery

Environment Variables

Variable Required Description
KUMIHO_SERVER_ENDPOINT No gRPC endpoint. Defaults to localhost:8080.
KUMIHO_AUTH_TOKEN For live calls Firebase ID token (JWT).
KUMIHO_AUTH_TOKEN_FILE No Path to file containing the Firebase token.
KUMIHO_CONTROL_PLANE_URL No Control plane URL. Defaults to https://control.kumiho.cloud.
KUMIHO_AUTO_CONFIGURE No Set to true to auto-bootstrap on import.
KUMIHO_DISCOVERY_CACHE_FILE No Discovery cache path. Defaults to ~/.kumiho/discovery-cache.json.

Multi-Tenant Usage

# Use discovery to auto-configure for your tenant
kumiho.auto_configure_from_discovery()

# Or specify a tenant explicitly
kumiho.auto_configure_from_discovery(tenant_hint="my-studio")

# Switch between tenants using context managers
tenant_a = kumiho.connect(endpoint="tenant-a.kumiho.cloud:443")
tenant_b = kumiho.connect(endpoint="tenant-b.kumiho.cloud:443")

with kumiho.use_client(tenant_a):
    projects_a = kumiho.get_projects()

with kumiho.use_client(tenant_b):
    projects_b = kumiho.get_projects()

MCP Server (Model Context Protocol)

Kumiho includes an MCP server that enables AI assistants (GitHub Copilot, Claude, Cursor, etc.) to interact with your asset graph.

Installation

pip install kumiho[mcp]

Running the MCP Server

# Ensure you're authenticated first
kumiho-auth login

# Start the MCP server
kumiho-mcp

VS Code Configuration

Add to your VS Code settings.json:

{
    "mcp": {
        "servers": {
            "kumiho": {
                "command": "kumiho-mcp"
            }
        }
    }
}

Available Tools

The MCP server exposes 39 tools organized by category:

Read Operations

Tool Description
kumiho_list_projects List all accessible projects
kumiho_get_project Get project details by name
kumiho_get_spaces Get spaces within a project
kumiho_get_item Get an item by kref URI
kumiho_search_items Search items with filters
kumiho_get_revision Get a revision by kref
kumiho_get_artifacts Get all artifacts for a revision
kumiho_resolve_kref Resolve kref to file location

Graph Traversal

Tool Description
kumiho_get_dependencies Get what a revision depends on
kumiho_get_dependents Get what depends on a revision
kumiho_analyze_impact Analyze downstream impact of changes
kumiho_find_path Find shortest path between revisions
kumiho_get_edges Get edges (relationships) for a revision

Create Operations

Tool Description
kumiho_create_project Create a new project
kumiho_create_space Create a space within a project
kumiho_create_item Create an item within a space
kumiho_create_revision Create a new revision for an item
kumiho_create_artifact Create an artifact for a revision
kumiho_create_edge Create relationship between revisions
kumiho_tag_revision Apply a tag to a revision

For full MCP documentation, see the MCP Server Guide.

Running Tests

# Run all tests
pytest tests/ -v

# Run with coverage
pytest tests/ --cov=kumiho

Documentation

Requirements

  • Python 3.10+
  • Kumiho Cloud account (sign up)

License

MIT - See LICENSE for details.

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

Links

Download files

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

Source Distribution

kumiho-0.12.1.tar.gz (150.0 kB view details)

Uploaded Source

Built Distribution

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

kumiho-0.12.1-py3-none-any.whl (148.0 kB view details)

Uploaded Python 3

File details

Details for the file kumiho-0.12.1.tar.gz.

File metadata

  • Download URL: kumiho-0.12.1.tar.gz
  • Upload date:
  • Size: 150.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.16

File hashes

Hashes for kumiho-0.12.1.tar.gz
Algorithm Hash digest
SHA256 8d277ff9d3d7b34a815e9f7a8bf381447140f46cf267599b3b710ec2733cad7c
MD5 ef91b2507efab158c1b572a3a222e88b
BLAKE2b-256 0d64d4399ad81ab71a96ea727f94f15258d8abaee45e17170a8cedfaa7a84ece

See more details on using hashes here.

File details

Details for the file kumiho-0.12.1-py3-none-any.whl.

File metadata

  • Download URL: kumiho-0.12.1-py3-none-any.whl
  • Upload date:
  • Size: 148.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.16

File hashes

Hashes for kumiho-0.12.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f2d8696775d2ad046808a59045e5e233c71d0e59a3e0ceb640d595a27f107c17
MD5 e84a4523532ac616d5b14a93a39ea57a
BLAKE2b-256 9f63dacc2dcf49ff32dbb5d4c2ea1b7d064c9766eb5125233d147f8825c4bf05

See more details on using hashes here.

Release history Release notifications | RSS feed

0.13.0

2 files

0.12.2

2 files

This release

0.12.1 This release

2 files

0.12.0

2 files

0.11.0

2 files

0.10.8

2 files

0.10.7

2 files

0.10.6

2 files

0.10.5

2 files

0.10.4

2 files

0.10.3

2 files

0.10.2

2 files

0.10.1

2 files

0.10.0

2 files

0.9.24

2 files

0.9.23

2 files

0.9.22

2 files

0.9.21

2 files

0.9.20

2 files

0.9.19

2 files

0.9.18

2 files

0.9.17

2 files

0.9.16

2 files

0.9.15

2 files

0.9.14

2 files

0.9.13

2 files

0.9.12

2 files

0.9.11

2 files

0.9.9

2 files

0.9.8

2 files

0.9.7

2 files

0.9.6

2 files

0.9.5

2 files

0.9.4

2 files

0.9.3

2 files

0.9.1

2 files

0.9.0

2 files

0.8.6

2 files

0.8.5

2 files

0.8.4

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

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