Skip to content

Conversation

abs
Copy link

@abs abs commented Sep 30, 2025

Summary

  • Introduces Nix flake for reproducible dev shells and builds.
  • flake.lock pins exact inputs to avoid “works on my machine.”

What’s included

  • flake.nix: defines dev shell, build/run outputs, and inputs.
  • flake.lock: lockfile generated by Nix.

Why

  • One-command setup for contributors.
  • Identical toolchain on macOS/Linux/CI.

Install Nix if needed: https://nixos.org/download

How to use

nix develop

Consider using with direnv

Using direnv with a Nix flake makes your dev shell automatic and per-repo. When you cd into the project, direnv reads .envrc (e.g., use flake) and transparently loads the pinned tools and env from your flake; leaving the directory unloads them, so you don’t leak PATH changes or variables into other projects. It also watches files (like flake.nix/flake.lock) and reloads on changes, and uses an explicit allowlist (direnv allow) so nothing runs without your consent. Learn more at https://direnv.net

Notes

  • If flakes are not enabled:
    echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf
    

Note

Adds flake.nix and flake.lock to define a reproducible dev shell with pinned toolchain and an e2b CLI wrapper.

  • Dev Environment (Nix flake):
    • Adds flake.nix defining devShell with pinned tools: terraform ("1.5"), google-cloud-sdk, go, docker, cloudflared, postgresql, nodejs/npm, git, packer, bashInteractive.
    • Introduces e2b CLI wrapper using npx @e2b/cli@latest.
    • Includes OS-specific notifier deps: Linux (libnotify, inotify-tools), macOS (terminal-notifier, Apple frameworks CoreFoundation, CoreServices).
    • Pins inputs via flake.lock: nixpkgs (25.05), nixos-unstable, flake-utils, nixpkgs-terraform.

Written by Cursor Bugbot for commit fefb8f9. This will update automatically on new commits. Configure here.

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.

1 participant