🧰🌍 Wrknv
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.shandenv.ps1scripts 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.tomlPython 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.
- Jump to Quick Start: Task Runner or Quick Start: Environment Management.
- Full documentation is in docs/index.md.
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 viatomllib, 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, notwe 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
-
Install wrknv:
uv tool install wrknv
-
Create a
wrknv.tomlfile:# wrknv.toml [project] name = "my-project" [tools] uv = "latest" tofu = "1.7.0" go = "1.22.1" [siblings] patterns = ["pyvider-*", "tofusoup", "garnish"]
-
Generate Environment Scripts:
wrknv generateThis creates
env.shandenv.ps1in your project root. -
Activate Your Environment:
uv syncYour 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 interactivelywrknv generate: Generate env.sh and env.ps1 scriptswrknv status: Show the status and versions of all managed toolswrknv setup: Complete setup (init + generate + activate instructions)wrknv test: Run project testswrknv build: Build project artifacts
Ecosystem Commands
wrknv ecosystem setup: Set up all provide.io projectswrknv ecosystem status: Check health of all projectswrknv ecosystem test: Run tests for all projectswrknv 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 scriptenv.ps1- PowerShell environment setup scriptMakefile- 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)
| File | Size | Uploaded | |
|---|---|---|---|
| wrknv-0.4.1.tar.gz | 180.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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