{"slug": "show-hn-declarative-reproducible-configuration-materializer-for-ai-agents", "title": "Show HN: Declarative, reproducible configuration materializer for AI agents", "summary": "Enozunu, a declarative, reproducible cross-provider configuration materializer for AI agent tooling, was released as an open-source project on GitHub by developer tooppoo. It centralizes human-authored definitions of AI-agent configuration sources and materializes them into target-native paths for Claude and Codex, using enozunu.kdl and enozunu.lock.json as the source of truth to ensure reproducibility across machines and CI runs. The tool supports installation via Homebrew, Scoop, and a shell script, and is currently in early design with v0.1.x and v0.0.x goals.", "body_md": "Enozunu(`役小角`\n\n) is a declarative, reproducible cross-provider configuration materializer for AI agent tooling.\n\nIt centralizes human-authored definitions of AI-agent configuration sources and materializes them into target AI-native configuration paths.\n\nEnozunu separates Skill and agent sources from the target-native files generated in each project.\n\n**Reuse Skills and agents declaratively.** Declare sources and selections in`enozunu.kdl`\n\ninstead of copying configuration files between projects.**Reproduce the same configuration everywhere.**`enozunu.kdl`\n\nand`enozunu.lock.json`\n\nare the source of truth, so every developer machine and CI run materializes the same configuration from the same declarations.**Distribute tool-specific Skills and agents without a custom installer.** Tool authors can publish the artifacts and an Enozunu-compatible manifest declaration instead of implementing their own setup mechanism.\n\nSee [Why or Why Not Enozunu?](/tooppoo/enozunu/blob/main/docs/guide/why-or-why-not.md) for the detailed use cases, responsibility boundaries, and current limitations.\n\nEnozunu is not an interactive resource manager, marketplace, or installer for AI agent resources.\n\n- It does not search for, recommend, or provide marketplace discovery of Skills or agents.\n- It does not provide a GUI or an interactive install flow.\n\nIts responsibility is limited to the resolve, lock, materialize, and verify flow described in the [Overview](#overview), applied to what `enozunu.kdl`\n\ndeclares.\nThe responsibility boundary is declarativeness, reproducibility, and generated-output management — not how many kinds of artifacts can be installed or how they are discovered.\n\n```\nbrew install tooppoo/tap-catalog/enozunu\nscoop bucket add philomagi https://github.com/tooppoo/catalog-scoop-bucket\nscoop install enozunu\ncurl -fsSL https://raw.githubusercontent.com/tooppoo/enozunu/refs/heads/main/install.sh | sh\n```\n\nEnozunu manages where AI-agent configuration comes from and where it is materialized. You declare sources once in `enozunu.kdl`\n\n, and Enozunu resolves them and writes them into each target AI's native paths.\n\nEach run resolves the declared sources, records the resolved commits of mutable selections in `enozunu.lock.json`\n\n, and materializes them into target paths. In CI, `enozunu summon --frozen`\n\nmaterializes strictly from the lock and fails when the lock file is missing or lacks an entry for a mutable source; a clean `git status`\n\nafter that run verifies that the committed files have not drifted from the declared sources.\n\nThe supported target AIs are Claude and Codex. Both select from the same source pool, and each selection is materialized into that target's native path. For the exact placement of each artifact, see [the supported targets guide](/tooppoo/enozunu/blob/main/docs/guide/support.md).\n\nEnozunu is in early design and its goal is intentionally narrow. Mutable Git selections are kept reproducible through `enozunu.lock.json`\n\n; for the current scope and non-goals, see [the v0.1.x goal](/tooppoo/enozunu/blob/main/docs/design/v0.1.x-goal.md), and for the initial phase, [the v0.0.x goal](/tooppoo/enozunu/blob/main/docs/design/v0.0.x-goal.md).\n\nCreate a starter manifest filled with placeholder values:\n\n```\nenozunu init\n```\n\nThis also generates `.enozunu/.gitignore`\n\nso the resolver cache under `.enozunu/cache/`\n\nstays out of version control.\n\nValidate the manifest of the current project:\n\n```\nenozunu validate\n```\n\nResolve declared sources and materialize them into target AI project paths:\n\n```\nenozunu summon\n```\n\nThe first run records the resolved commit of every `branch`\n\nand `tag`\n\nselection in `enozunu.lock.json`\n\n; later runs materialize those recorded commits. Commit the lock file to make runs reproducible across machines. Use `enozunu summon --update`\n\nto follow moved refs and refresh the lock, and `enozunu summon --frozen`\n\nin CI to fail instead of resolving anything the lock does not cover. See [the generated output guide](/tooppoo/enozunu/blob/main/docs/guide/generated-output.md#the-lock-file) for details.\n\nAll commands operate on `enozunu.kdl`\n\nin the project root by default. Use `--manifest`\n\nand `--project-root`\n\nto override the defaults.\n\nA minimal manifest declares sources under `provider`\n\nand target selections under `consumer`\n\n:\n\n```\nenozunu config-version=1 {\n  provider {\n    skills {\n      skill \"git-kura\" {\n        git {\n          url \"https://github.com/tooppoo/reportage\"\n          branch \"main\"\n          path \".claude/skills/git-kura\"\n        }\n      }\n    }\n  }\n\n  consumer {\n    claude {\n      use-skills \"git-kura\"\n    }\n  }\n}\n```\n\nFor the full manifest contract, including `git`\n\n, `local`\n\n, and `gist`\n\nsource references, see [the manifest format guide](/tooppoo/enozunu/blob/main/docs/guide/manifest.md).\n\nThe [documentation](/tooppoo/enozunu/blob/main/docs/README.md) is split by intent.\n\nTo use Enozunu, read [the guide](/tooppoo/enozunu/blob/main/docs/guide/README.md):\n\nTo understand how Enozunu works, read [the design docs](/tooppoo/enozunu/blob/main/docs/design/README.md):", "url": "https://wpnews.pro/news/show-hn-declarative-reproducible-configuration-materializer-for-ai-agents", "canonical_source": "https://github.com/tooppoo/enozunu", "published_at": "2026-08-23 11:48:23+00:00", "updated_at": "2026-08-23 12:13:52.214891+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-tools"], "entities": ["Enozunu", "tooppoo", "Claude", "Codex", "Homebrew", "Scoop", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/show-hn-declarative-reproducible-configuration-materializer-for-ai-agents", "markdown": "https://wpnews.pro/news/show-hn-declarative-reproducible-configuration-materializer-for-ai-agents.md", "text": "https://wpnews.pro/news/show-hn-declarative-reproducible-configuration-materializer-for-ai-agents.txt", "jsonld": "https://wpnews.pro/news/show-hn-declarative-reproducible-configuration-materializer-for-ai-agents.jsonld"}}