Skip to content

Conversation

@charles-dyfis-net
Copy link
Contributor

direnv is a tool for setting related environment variables when the user cds 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 develop inside 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.

@charles-dyfis-net charles-dyfis-net marked this pull request as ready for review January 6, 2026 15:24
Serves as a demonstration for new users, and also provides an easy way to install dev-time dependencies.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support environment variables from direnv when running shells

1 participant