- git
- nix & nix's home manager
/!\ Make sure to have nix installed!
-
Adjust
usernameto your settings inflake.nixandlinux.nix](./home/linux.nix)/[macos.nix` -
If new computer make sure to create a new keys and re-encrypt the secrets
-
Run:
nix run home-manager --extra-experimental-features "nix-command flakes" -- switch --flake (github:alv-around/.dotfiles).#YOUR_HOSTNAME # first run
home-manager switch --flake . # afterwardsnix run nixos-rebuild --extra-experimental-features "nix-command flakes" -- switch --flake .#YOUR_HOSTNAME # first run
nixos-rebuild switch --flake .#<hostname> # afterwardsnix run darwin-rebuild --extra-experimental-features "nix-command flakes" -- switch --flake .#YOUR_HOSTNAME # first run
darwin-rebuild switch --flake .#<hostname> # afterwardsrm flake.lock
nix flake update (<input-name>)
home-manager switch --flake .Start the devshell:
nix developmentTo test your changes:
nix flake check # for the current system
nix flake check --all-systems # for all systemsnix run nixpkgs#nixos-rebuild -- build-vm --flake .#nixos-vmOnce is finished building run:
./result/bin/run-your-hostname-vmhe first time you launch the script, it will create a virtual hard drive file (
.qcow2) in your current working directory so the VM can persist files across reboots.
This setup supports a high-performance agentic workflow using several tools:
Pueue is a task runner that allows you to queue and manage long-running tasks in the background.
- Queue a task: Use the
gqalias (e.g.,gq "Refactor the authentication module"). - Check status: Run
pueue status. - View logs: Run
pueue log <task_id>. - Parallelism: By default, 2 tasks can run in parallel (configured in
home/ai.nix).
To prevent agents from messing with your active workspace, use workmux. It
allows you to quickly spin up a git worktree in a separate directory/session.
This is highly recommended when running parallel agents.
For complex tasks, it is recommended to use the Sub-Agent architecture provided by Gemini CLI. Instead of manually piping agents, define specialized sub-agents (e.g., a "researcher", a "coder", a "tester") and have a coordinator agent delegate tasks to them. This ensures structured communication and better context management.