python

A tool for generating a typed Python package from a Vovk API schema, with options for standalone packages or source files to embed in another project.

In plain words
What is it for?
Use it to generate Python API clients, consume JSON or JSON Lines data, validate requests on the client, and publish the package to PyPI, the main package registry for Python.
Why use it?
It keeps the Python client aligned with the same schema used by the TypeScript client, reducing repeated manual client code and type definitions.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/finom/vovk/python
Any agent
npx skills add finom/vovk --skill python
Clone the repo
git clone --depth 1 https://github.com/finom/vovk

Made for: Claude Code, Codex.

Per session 261 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,406 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00261 $0.03406
Opus 5 $0.00130 $0.01703
Sonnet 5 $0.00052 $0.00681
Haiku 4.5 $0.00026 $0.00341

Measured 2d ago against content hash 801ed9a6e33c, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

python scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

description: The Vovk.ts Python client — generating a typed Python package from a Vovk API with `vovk-python`, the `py` / `pySrc` templates, `TypedDict` shapes, JSON + JSON Lines consumption, client-side validation, and
skills/python/SKILL.md · 350 lines

How it starts

The opening of the file, as written. The whole thing — 350 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Vovk.ts Python client

vovk-python generates typed Python package from same .vovk-schema/ artifacts driving TS client. One source of truth, multi-language.

Experimental — generated API may shift between Vovk versions. Pin version on consume.

Scope

Covers:

  • Install vovk-python + generate Python package.
  • Templates: py (standalone) vs pySrc (source files to embed).
  • Auto-gen config in vovk.config.mjs.
  • Call shape (TypedDict per [MethodName][Input|Output|Body|Query|Params]).
  • JSON Lines streaming via Python generators.
  • Client-side validation toggle.
  • PyPI publishing flow.

Out of scope:

  • Procedure / controller authoring → procedure skill.
  • vovk bundle general (TS, Rust) → bundle skill.
  • Server-side JSON Lines → jsonlines skill.
  • OpenAPI spec tuning → openapi skill.

Install + generate

npm i -D vovk-python

Standalone package

Emits complete Python package (PyPI-ready). Canonical output dir ./dist_python (hello-world convention):

npx vovk generate --from py --out ./dist_python

Output:

dist_python/
  src/<package_name>/__init__.py    # RPC functions + TypedDict definitions
  src/<package_name>/api_client.py  # HTTP client
  src/<package_name>/py.typed       # Type-hint marker
  src/<package_name>/schema.json    # Generated schema
  pyproject.toml                    # hatchling build backend
  setup.cfg
  README.md

Embedded source

Emits .py files only — drop into existing Python project:

npx vovk generate --from pySrc --out ./python_src

Auto-generate with composed client

Wire Python into vovk generate → runs alongside TS:

// vovk.config.mjs
const config = {
  composedClient: {
    fromTemplates: ['js', 'py'],
  },
};
export default config;

Bake prod API URL via clientTemplateDefs.py.outputConfig.origin — generated client uses this by default. Pattern from hello-world:

// vovk.config.js
const PROD_ORIGIN = 'https://hello-world.vovk.dev';

const config = {
  composedClient: { fromTemplates: ['js', 'py'] },
  clientTemplateDefs: {
    py: {
      extends: 'py',
      outputConfig: { origin: PROD_ORIGIN },
      // composedClient: { outDir: './dist_python' }, // override output dir if needed
    },
  },
};

Read the full file on GitHub · 350 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 350 lines · 261 tokens per session scan A 801ed9a6e33c

Subscribe to this mod's changes

python is a skill published in the GitHub repository finom/vovk (52 stars, last pushed 5d ago), licensed MIT. It adds 261 tokens to every session and 3,406 once invoked, about $0.0013 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

ocli-api

Turn any OpenAPI/Swagger API into CLI commands and call them. Search endpoints with BM25, check parameters, execute — no MCP server needed.

EvilFreelancer/openapi-to-cli · 34 tokens

ronykit-framework

Orchestrates RonyKit service development using the ronyup MCP server (knowledge resources, prompts, scaffold tools). Use when the user mentions RonyKit, ronyup, EdgeServer, contracts, scaffolding a workspace or feature, implementing API handlers and services, frontend bootstrap, integration tests, or design documents…

clubpay/ronykit · 75 tokens

react-performance

Optimize React/Next.js runtime performance — eliminate waterfalls, shrink bundles, cut unnecessary re-renders, and speed up rendering. Use when writing, reviewing, or refactoring components for speed, or chasing slow renders, large bundles, janky interactions, or high TTFB/LCP/INP.

clubpay/ronykit · 64 tokens

storybook

Author and maintain Storybook stories with CSF 3.0 best practices — args, decorators, parameters, and config. Use when creating or editing .stories. files, configuring .storybook/, or ensuring every UI component ships with stories.

clubpay/ronykit · 50 tokens

webmcp

Build agent-friendly web apps with the W3C Web Model Context API (WebMCP). Use when exposing frontend features as structured tools for in-browser AI agents, adding document.modelContext tools to React/Next.js apps, designing tool schemas for dashboards or admin UIs, or making existing UI automatable without DOM…

clubpay/ronykit · 69 tokens

composition-patterns

Design reusable React component APIs that scale — compound components, lifted state, generic context, explicit variants. Use when a component is growing boolean props (isThread, isEditing…), when building a component library, or when reviewing component architecture. Includes React 19 API changes.

clubpay/ronykit · 58 tokens