a73x

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[@]}" "$@"