Apply reusable local recipes across plain directories.
Project description
untaped-recipe
untaped-recipe is a standalone CLI for applying trusted local recipes across
plain directories. It is built on the
untaped SDK and deliberately
does not clone repos, create branches, commit, push, or open PRs. Recipes plan
every change in memory, preview it, and only write after confirmation — see
docs/ for the full documentation.
Install
uv tool install untaped-recipe
Configure
Settings live in the shared untaped config under the recipe section:
untaped-recipe config set library_root ~/.untaped/untaped-recipes
The recipe-specific keys are library_root, hook_timeout_seconds,
hook_startup_timeout_seconds, preview_max_rows, backup_keep, and
backup_max_age_days — see docs/reference.md for the
settings table. For the config file format, profiles, and environment-variable
overrides, see the core
configuration docs.
Quickstart
# Install a recipe pack, preview what it ships, confirm
untaped-recipe add ./ansible
# Apply a recipe to targets (plans, previews, confirms, backs up, writes)
untaped-recipe apply ansible/playbook-migration ./service-a ./service-b
# Drive targets from another untaped tool
untaped-workspace list --format pipe | untaped-recipe apply add-config --stdin --yes
# Drift check for CI: writes nothing, exits non-zero on pending changes
untaped-recipe apply add-config ./service-a --check
# Scaffold a new pack with a recipe and a hook
untaped-recipe new pack mypack
untaped-recipe new recipe mypack/add-config
untaped-recipe new hook mypack/set_owner
# Undo the last apply
untaped-recipe backup restore latest
Documentation
Concept pages under docs/:
- recipes — recipe YAML schema, step types, design rationale
- inputs — the input contract: types, scope,
fromderivation, precedence - templating — the
{{ name }}token language and path-field rendering - hooks — hook contract, execution model, helpers,
hook run,yaml_edit - packs — pack manifest, library, references, scaffolding, trust
- apply — running recipes: preview, confirmation, check mode, transactional writes
- safety — path confinement, backups and restore, integrity mechanisms
- testing —
checkpreflight and the golden-fixturetestharness - pipes — stdin target ingestion and structured output
- reference — settings, command index, exit codes, skills
- release — maintainer release runbook
Development
uv sync
uv run pre-commit run --all-files
uv run ruff check --fix
uv run ruff format
uv run mypy
uv run pytest
uv build
See AGENTS.md for architecture rules, product invariants, and the documentation contract.
Security
Please report suspected vulnerabilities privately. See SECURITY.md.
Contributing
See CONTRIBUTING.md for the local workflow and docs/release.md for the release workflow.
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
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 untaped_recipe-0.16.0.tar.gz.
File metadata
- Download URL: untaped_recipe-0.16.0.tar.gz
- Upload date:
- Size: 243.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a088c7e2c4543018d32a5e148e26b888f0e173985fd91cf55edc67160725eae1
|
|
| MD5 |
a3c06b240151b8292529e55b870a3fd2
|
|
| BLAKE2b-256 |
523a38911787c033828c7299bf47cfce27efc54ab3aef0c368f33d5d6ea5cc4f
|
File details
Details for the file untaped_recipe-0.16.0-py3-none-any.whl.
File metadata
- Download URL: untaped_recipe-0.16.0-py3-none-any.whl
- Upload date:
- Size: 106.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b914db5cf5573b775aa6793f7fa2c2ccaabe3c396ffcf212decb4655721ac5a
|
|
| MD5 |
2a1dda9f18392e1b5a244c68eb0c1cc4
|
|
| BLAKE2b-256 |
413804d48cfbeae314acf3722487e95ab0d8676c6f4a1fbb979129769513878d
|