Add support for using direnv to set up CLAUDE_ENV_FILE; demonstrate with direnv (and Nix) support for this tree #149
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
direnvis a tool for setting related environment variables when the usercds into a directory tree in their shell.Nix is -- in addition to being a Linux distribution in its own right -- a cross-platform tool (including support for MacOS) that can install arbitrary dependencies in hash-addressed locations, so each project can have the exact dependency chain it needs, including unique-to-that-project patches, without any conflicts between installed sets of software.
Here, we use direnv and Nix to automate setup of a shell with all of Maestro's dependencies; and we add support to Maestro for setting CLAUDE_ENV_FILE to ensure that Claude's bash tool has access to such dependencies.
(Manually, someone who has Nix but not direnv can run
nix developinside a checked-out tree to enter a shell that has Maestro's dependencies present; unlike Homebrew, none of their other shells will be modified, so users can have multiple conflicting software versions installed at once, and have agents working on different trees with different conflicting dependency chains).Fixes #148.