cva-setup-interop

Configure libpython-clj for Python-Clojure interoperability in agent workflows.

Updated Aug 27, 2026
One-click install
npx skills add https://github.com/joaopelegrino/hello-word-closure --skill cva-setup-interop
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: cva-setup-interop
Source: https://github.com/joaopelegrino/hello-word-closure/tree/main/.claude-plugin/clojure-vertex-adk/skills/cva-setup-interop
Command: npx skills add https://github.com/joaopelegrino/hello-word-closure --skill cva-setup-interop

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires numpy, pandas, transformers, torch.

What problem does it solve?

Bridging Clojure's functional power with Python's extensive machine learning ecosystem can be challenging. This Skill provides a comprehensive guide to set up libpython-clj for seamless interoperability, enabling direct use of Python libraries like NumPy, Pandas, and HuggingFace Transformers from Clojure, complete with automatic data conversion and performance optimizations.

Core Features & Use Cases

  • Python Environment Setup: Configure libpython-clj for auto-detection, manual paths, or virtual environments, ensuring correct Python integration.
  • Module Importing & Function Calls: Import Python modules as Clojure namespaces and call Python functions with idiomatic Clojure syntax.
  • Automatic Data Conversion: Effortlessly convert data types between Clojure and Python, including complex structures like vectors, maps, NumPy arrays, and Pandas DataFrames.
  • Use Case: A Clojure agent needs to perform complex data analysis using Pandas and then apply a machine learning model from scikit-learn. This Skill guides the setup, data transfer, and function calls to execute these Python operations directly within the Clojure application.

Quick Start

Add libpython-clj to your deps.edn. Call (py/initialize!) at application startup. Import 'numpy' as 'np' using (require-python '[numpy :as np]).

Frequently Asked Questions about cva-setup-interop

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I use Python machine learning libraries like NumPy and Pandas directly in Clojure?

Use libpython-clj to enable Python-Clojure interoperability. Call (py/initialize!) at startup, import Python modules with (require-python '[numpy :as np]), and work with NumPy arrays and Pandas DataFrames directly in Clojure code with automatic data conversion between the two languages.

Can I call HuggingFace Transformers and scikit-learn from Clojure?

Yes. libpython-clj supports importing and calling Python functions from transformers and scikit-learn within Clojure workflows. The Skill handles Python environment configuration, automatic data type conversion, and GIL management to execute machine learning operations seamlessly in your Clojure application.

What's the best way to set up libpython-clj for my Clojure project?

Add libpython-clj as a dependency in deps.edn, then initialize it with (py/initialize!) at application startup. The Skill supports auto-detection of your Python environment, manual path configuration, and virtual environment setup—choose the approach that fits your deployment context.

How does data conversion work between Clojure and Python?

libpython-clj automatically converts Clojure data types to Python equivalents and vice versa, including vectors to NumPy arrays, maps to Python dictionaries, and Clojure sequences to Pandas DataFrames. Complex nested structures convert seamlessly, eliminating manual marshalling overhead.

Do I need to handle Python's Global Interpreter Lock when running ML models in Clojure?

The Skill includes built-in GIL handling and performance optimizations for production deployments. It manages thread-safe access to Python code, allowing you to safely use Python ML libraries in concurrent Clojure workflows without manual GIL coordination.

What Python versions and environments does libpython-clj support?

libpython-clj supports auto-detection of system Python installations and manual configuration for specific Python versions. It works with virtual environments and supports NumPy, Pandas, Transformers, and Torch dependencies, adapting to your environment setup strategy.