containers: install bashInteractive + set SHELL for claude's Bash tool

This commit is contained in:
müde 2026-05-15 16:06:32 +02:00
parent 0a24946c1e
commit cb62e15d4f
2 changed files with 19 additions and 4 deletions

View file

@ -7,9 +7,12 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
hyperhive hyperhive
claude-code claude-code
bashInteractive
git git
coreutils-full coreutils-full
]; ];
# claude's Bash tool refuses to run without a POSIX shell + $SHELL set.
environment.variables.SHELL = "${pkgs.bashInteractive}/bin/bash";
systemd.services.hive-ag3nt = { systemd.services.hive-ag3nt = {
description = "hive-ag3nt harness"; description = "hive-ag3nt harness";
@ -18,7 +21,12 @@
# The harness shells out to `claude` (turn loop + login flow). systemd # The harness shells out to `claude` (turn loop + login flow). systemd
# units get a minimal PATH by default, so we have to put claude-code on # units get a minimal PATH by default, so we have to put claude-code on
# it explicitly even though it's in environment.systemPackages above. # it explicitly even though it's in environment.systemPackages above.
path = [ pkgs.claude-code ]; # bash is on PATH so claude's Bash tool can spawn `$SHELL`.
path = [
pkgs.claude-code
pkgs.bashInteractive
];
environment.SHELL = "${pkgs.bashInteractive}/bin/bash";
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.hyperhive}/bin/hive-ag3nt serve"; ExecStart = "${pkgs.hyperhive}/bin/hive-ag3nt serve";
Restart = "on-failure"; Restart = "on-failure";

View file

@ -7,9 +7,12 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
hyperhive hyperhive
claude-code claude-code
bashInteractive
git git
coreutils-full coreutils-full
]; ];
# claude's Bash tool refuses to run without a POSIX shell + $SHELL set.
environment.variables.SHELL = "${pkgs.bashInteractive}/bin/bash";
environment.etc."gitconfig".text = '' environment.etc."gitconfig".text = ''
[user] [user]
@ -27,9 +30,13 @@
HIVE_PORT = "8000"; HIVE_PORT = "8000";
HIVE_LABEL = "hm1nd"; HIVE_LABEL = "hm1nd";
}; };
# See note in agent-base.nix — `claude` has to be on the service PATH # See note in agent-base.nix — `claude` and a POSIX shell have to be on
# explicitly for the harness to shell out to it. # the service PATH explicitly for the harness + claude's Bash tool.
path = [ pkgs.claude-code ]; path = [
pkgs.claude-code
pkgs.bashInteractive
];
environment.SHELL = "${pkgs.bashInteractive}/bin/bash";
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.hyperhive}/bin/hive-m1nd serve"; ExecStart = "${pkgs.hyperhive}/bin/hive-m1nd serve";
Restart = "on-failure"; Restart = "on-failure";