Instalador universal e biblioteca CLI para ferramentas Python, Rust e Bun
Project description
Clified
Universal installer and CLI library for Python, Rust, and Bun tools.
Português: README_PT.md
What it is
Clified splits two responsibilities:
| Piece | Where it lives | Role |
|---|---|---|
| Engine | clified package (PyPI) |
venvs, wrappers, Rust/Bun builds, hooks |
| Registry | tools.yaml in each repo |
What to install, code location, post-steps |
Each project ships its own install.sh, sets CLIFIED_TOOLS to the local tools.yaml, and installs Clified via pip on first run. You do not need to clone the Clified repository.
Quick start
pip install --user clified
# or: pipx install clified
git clone https://github.com/your-org/my-cli.git
cd my-cli
./install.sh
my-cli --help
Documentation
| Guide | Contents |
|---|---|
| Getting started | Installation, clean-machine flow, install.sh |
| Architecture | Engine, YAML, venvs, and wrappers |
tools.yaml reference |
Fields, Python/Rust/Bun types, examples |
| Hooks | post_install, built-in hooks, local hooks |
| Migrating a project | denv / pc / GameDev / ai2print walkthrough |
| CLI library | OutputFormatter, retry, patterns, Click |
| Troubleshooting | PEP 668, wrong Python on PATH, MCP |
| Development | Tests, PyPI release, contributing |
Main commands
clified-install --list # tools in the active tools.yaml
clified-install denv # install one tool
clified-install denv --action update # refresh deps reusing the existing venv
clified-install denv --action reinstall --force
clified-install all # all tools (respects install_order)
clified-install --doctor # health report for every tool
clified-install --doctor --fix # + remove CLI wrappers shadowed on PATH
Diagnostics (--doctor)
clified-install --doctor reports, per tool, whether the venv exists and runs
a supported Python, whether the CLI wrapper is installed and actually wins
on PATH, and which build backends (uv/cargo/bun/git) are present. Add --fix
to delete stale wrappers that shadow the canonical one, or --json for
machine-readable output. Pass a tool name to scope it to one tool.
Python version selection
Clified honours each tool's requires-python (read from its pyproject.toml)
in addition to min_python in tools.yaml: it keeps the tighter floor and the
lower ceiling, so a tool capped at <3.14 never lands on a newer interpreter
than it supports — uv provisions the right version automatically.
Monorepo file: dependencies
A relative file: dependency (e.g. gamedev-shared @ file:../Shared) is
invalid PEP 508 and breaks uv's editable build. Clified absolutises such URLs
for the duration of the build and restores pyproject.toml afterwards, so
shared-package monorepos install cleanly without per-tool workarounds.
Projects using Clified
| CLI | Repository | Type |
|---|---|---|
| denv | LocatelliDockerManager | Python |
| pc | ProjetoCursor | Python |
| text2d, materialize, … | GameDev | Python / Rust / Bun |
| ai2print | ai2print | Rust + Python (hook) |
License
MIT — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clified-0.5.0.tar.gz.
File metadata
- Download URL: clified-0.5.0.tar.gz
- Upload date:
- Size: 61.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbe1be3a45e312006da9c44cbb8c28301190d1f633d71d7a028f0e14d96eee3e
|
|
| MD5 |
62e845ac8ff7d3291f7185685b98f543
|
|
| BLAKE2b-256 |
71e64a64b09c9cffce35da07b454aba6999f5aceacd6a5c40013d0b6246e9db8
|
Provenance
The following attestation bundles were made for clified-0.5.0.tar.gz:
Publisher:
publish.yml on maikramer/clified
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clified-0.5.0.tar.gz -
Subject digest:
bbe1be3a45e312006da9c44cbb8c28301190d1f633d71d7a028f0e14d96eee3e - Sigstore transparency entry: 1753328752
- Sigstore integration time:
-
Permalink:
maikramer/clified@a3b41f3a02c64570142d242978676b3239dd9b5b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/maikramer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a3b41f3a02c64570142d242978676b3239dd9b5b -
Trigger Event:
release
-
Statement type:
File details
Details for the file clified-0.5.0-py3-none-any.whl.
File metadata
- Download URL: clified-0.5.0-py3-none-any.whl
- Upload date:
- Size: 66.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dabdbc32f58ae848661f54f4d1c5fd9dd157586cef2dd07863d839b81c823cf
|
|
| MD5 |
2d92a87daadc287495fc0c7bcac28104
|
|
| BLAKE2b-256 |
088f80dbd0feca3f0129ca17bd64a7a0398c70b92a295ac1fe932546ea93928b
|
Provenance
The following attestation bundles were made for clified-0.5.0-py3-none-any.whl:
Publisher:
publish.yml on maikramer/clified
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clified-0.5.0-py3-none-any.whl -
Subject digest:
3dabdbc32f58ae848661f54f4d1c5fd9dd157586cef2dd07863d839b81c823cf - Sigstore transparency entry: 1753328824
- Sigstore integration time:
-
Permalink:
maikramer/clified@a3b41f3a02c64570142d242978676b3239dd9b5b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/maikramer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a3b41f3a02c64570142d242978676b3239dd9b5b -
Trigger Event:
release
-
Statement type: