Skip to main content

🧰🌍 Wrknv

License Python 3.11+ uv Ruff CI

Work Environment - The foundation for the provide.io ecosystem, generating standardized development environments across all projects.

✨ Key Features

  • 🚀 Task Runner (we) - Intuitive task execution with automatic command detection, nested task organization, and smart resolution
  • 📜 Environment Script Generation - Creates standardized env.sh and env.ps1 scripts from templates
  • 🔧 Tool Version Management - Pin versions of Terraform, OpenTofu, Go, and uv
  • 🔗 Sibling Package Integration - Automatically discover and install local, editable dependencies
  • 🐍 Python Version Safety - Detects pyproject.toml Python requirements and manages virtual environments
  • 🐳 Containerized Development - (Experimental) Manage Docker-based development environments
  • 📦 Provider Packaging - (Experimental) Interface for building flavor-based provider packages

Quick Start

Note: wrknv is in pre-release (v0.x.x). APIs and features may change before 1.0 release.

Documentation

Development

Quick Start

# Set up environment
uv sync

# Run common tasks
we test           # Run tests
we lint           # Check code
we format         # Format code
we tasks          # See all available commands

See CLAUDE.md for detailed development instructions and architecture information.

Contributing

See CONTRIBUTING.md for contribution guidelines.

License

MIT License - See LICENSE file for details.

Requirements

  • Python 3.11 or later - wrknv uses modern Python features including native type hints with pipe operators (str | None), native TOML support via tomllib, and other Python 3.11+ improvements.
  • Git (for version control operations)
  • curl or wget (for downloading tools)

Overview

wrknv is THE central tool that generates all env.sh and env.ps1 scripts for the provide.io ecosystem. Instead of maintaining hundreds of lines of duplicated shell scripts, each project uses wrknv to generate consistent, maintainable environment setup scripts.

Quick Start: Task Runner

The we command provides an intuitive way to run development tasks:

# Install wrknv
uv tool install wrknv

# Define tasks in wrknv.toml
cat > wrknv.toml << EOF
[tasks]
test = "pytest tests/"
lint = "ruff check src/"

[tasks.test]
unit = "pytest tests/unit/"
integration = "pytest tests/integration/"
EOF

# Run tasks directly - no 'run' subcommand needed!
we test                  # Run all tests
we test unit             # Run unit tests
we lint --fix            # Run lint with --fix flag
we tasks                 # List all available tasks

Key Features:

  • ✅ Auto-detection - Just we test, not we run test
  • ✅ Nested tasks - Organize with namespaces like test.unit, docs.build
  • ✅ Smart resolution - Hierarchical fallback finds the right task
  • ✅ Arguments - Pass flags directly: we test --verbose
  • ✅ Hierarchical display - Beautiful tree view of tasks

See Task System Documentation for full details.

Quick Start: Environment Management

  1. Install wrknv:

    uv tool install wrknv
    
  2. Create a wrknv.toml file:

    # wrknv.toml
    
    [project]
    name = "my-project"
    
    [tools]
    uv = "latest"
    tofu = "1.7.0"
    go = "1.22.1"
    
    [siblings]
    patterns = ["pyvider-*", "tofusoup", "garnish"]
    
  3. Generate Environment Scripts:

    wrknv generate
    

    This creates env.sh and env.ps1 in your project root.

  4. Activate Your Environment:

    uv sync
    

    Your shell is now configured with the specified tool versions and all Python dependencies installed in ./workenv/.

Core Commands

  • wrknv init: Initialize a new wrknv.toml interactively
  • wrknv generate: Generate env.sh and env.ps1 scripts
  • wrknv status: Show the status and versions of all managed tools
  • wrknv setup: Complete setup (init + generate + activate instructions)
  • wrknv test: Run project tests
  • wrknv build: Build project artifacts

Ecosystem Commands

  • wrknv ecosystem setup: Set up all provide.io projects
  • wrknv ecosystem status: Check health of all projects
  • wrknv ecosystem test: Run tests for all projects
  • wrknv ecosystem build: Build all project artifacts

Project Configuration

Each project needs a simple wrknv.toml:

[project]
name = "flavorpack"
description = "Cross-language packaging system"

[tools]
uv = "latest"
go = "1.22.1"
rust = "1.75"

[siblings]
patterns = [
    "pyvider-*",      # All pyvider packages
    "tofusoup",       # Testing suite
    "plating",        # Documentation generator
]

[settings]
python_version = ">=3.11"
verify_checksums = true

Generated Files

wrknv generates:

  • env.sh - Bash environment setup script
  • env.ps1 - PowerShell environment setup script
  • Makefile - Standard development commands (optional)
  • .vscode/ - VS Code settings and launch configs (optional)

Why wrknv?

Before wrknv, every project had 300-400 lines of hand-written, duplicated env.sh scripts. This led to:

  • Inconsistent setup experiences
  • Maintenance burden
  • Copy-paste errors
  • Drift between projects

With wrknv:

  • Single source of truth for environment setup
  • Consistent experience across all projects
  • Easy updates - change template once, regenerate everywhere
  • Zero duplication

Copyright (c) provide.io LLC.

Metadata

Release files for wrknv 0.4.1

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

Source distribution (sdist)

Source distribution for wrknv 0.4.1
File Size Uploaded
wrknv-0.4.1.tar.gz 180.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wrknv 0.4.1
File Interpreter ABI Platform
wrknv-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 421.9 kB

Release files / wrknv-0.4.1.tar.gz

Download URL wrknv-0.4.1.tar.gz
Size 180.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f9389cc66b50acd8a5bc74da05d5f1e1a0a572248a1eeac5b346698f0cbd0f1f
BLAKE2b-256 checksum
How to use checksums
61956ea81278279e61fa20a18e0a754cdabb524dfaa7e1f9de53175c5e3ed875
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 5, 2026.

Transparency log

Release files / wrknv-0.4.1-py3-none-any.whl

Download URL wrknv-0.4.1-py3-none-any.whl
Size 241.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
abb98dc5b11c5b968838210319e12fe9b002f4ba3c652b44b8d8239df23a23f6
BLAKE2b-256 checksum
How to use checksums
c1f0f8415748ce099687aa757e94fe73b8349934ef98ea5c31e7f5b9ea6e68e2
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 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release 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