64aaf57e
no dont do that
a73x 2026-03-29 08:49
diff --git a/README.md b/README.md new file mode 100644 index 0000000..38aeae6 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ # nono bwrap and overlay to allow free range frolicking with fences diff --git a/nono b/nono new file mode 100755 index 0000000..e2138c9 --- /dev/null +++ b/nono @@ -0,0 +1,52 @@ #!/usr/bin/env bash set -euo pipefail STORE=$HOME/.local/share/nono BASE="$(realpath "$(pwd)")" SESSION_NAME=$(echo "$BASE" | tr '/' '-' | sed 's/^-//') SESSION_DIR=$STORE/sessions/$SESSION_NAME UPPER=$SESSION_DIR/upper WORK=$SESSION_DIR/work mkdir -p "$UPPER" "$WORK" args=( --dev-bind /dev /dev --proc /proc --tmpfs /tmp --setenv HOME "$HOME" --setenv TERM "${TERM:-xterm}" ) # system (read-only) for p in \ /opt/claude-code/bin/claude \ /bin \ /etc \ /run \ /usr \ /lib \ /lib64 \ "$HOME/.local/bin" \ "$HOME/.config" \ ; do [[ -e "$p" ]] && args+=(--ro-bind "$p" "$p") done # user (read-write) for p in \ "$HOME/.claude.json" \ "$HOME/go" \ "$HOME/.claude" \ ; do [[ -e "$p" ]] && args+=(--bind "$p" "$p") done args+=( --overlay-src "$BASE" --overlay "$UPPER" "$WORK" "$BASE" --setenv PS1 "(overlay) \w \$" --chdir "$BASE" ) exec bwrap "${args[@]}" "$@"