- dt: dtach session manager for claude-in-dtach sessions - dtach-router: SSH-login dashboard to resume sessions (sourced from bashrc) - claude-provider: switch Claude Code between Anthropic and OpenRouter; the OpenRouter API key is read from $OPENROUTER_API_KEY at runtime and is never stored in the repo Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
55 lines
2.1 KiB
Bash
Executable File
55 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# dtach-router — au login SSH : s'il existe des sessions claude/dtach, affiche
|
|
# le dashboard et propose d'en rejoindre une (fzf). Sinon, shell normal direct.
|
|
# NE CREE PLUS de session (la creation se fait via l'alias `cc`).
|
|
# À SOURCER depuis ~/.bashrc. Pas de set -e/-u (fuiraient dans le shell hote).
|
|
set -o pipefail
|
|
|
|
# SSH interactif uniquement ; sinon on ne fait rien.
|
|
case $- in *i*) ;; *) return 0 2>/dev/null ;; esac
|
|
|
|
DT="${DT_BIN:-dt}"
|
|
|
|
raw=$("$DT" --raw 2>/dev/null)
|
|
|
|
# Aucune session : shell normal, zero friction.
|
|
[ -z "$raw" ] && return 0 2>/dev/null
|
|
|
|
# Des sessions existent : dashboard + menu de selection.
|
|
"$DT" ls || true
|
|
|
|
out=$(printf '%s\n' "$raw" | \
|
|
fzf --with-nth=2,3 --delimiter='\t' \
|
|
--header=$'ENTER=rejoindre une session ESC=shell normal' \
|
|
--preview 'echo "Dossier : {2}"; echo "Age : {3}"' \
|
|
--preview-window=down,15% )
|
|
|
|
# ESC / selection vide : shell normal.
|
|
[ -z "$out" ] && return 0 2>/dev/null
|
|
|
|
name=$(printf '%s' "$out" | cut -f1)
|
|
dt at "$name" </dev/tty >/dev/tty 2>&1
|
|
return 0 2>/dev/null
|
|
|
|
# ─────────────────────────────────────────────────────────────
|
|
# INSTALLATION (~/.bashrc serveur), a la fin :
|
|
#
|
|
# # creation de session claude-dans-dtach
|
|
# dtach_claude() { dtach -c "$HOME/.dtach/${1:-claude-$(date +%H%M%S)}" -e '^\' claude; }
|
|
# alias cc='dtach_claude'
|
|
#
|
|
# # dashboard + reprise au login
|
|
# [ -x "$HOME/.local/bin/dtach-router" ] && source "$HOME/.local/bin/dtach-router"
|
|
#
|
|
# # rappeler le menu depuis un shell :
|
|
# alias d='source ~/.local/bin/dtach-router'
|
|
#
|
|
# chmod +x ~/.local/bin/dt ~/.local/bin/dtach-router
|
|
#
|
|
# USAGE :
|
|
# cd ~/projets/seo && cc seo -> claude dans dtach, session "seo"
|
|
# Ctrl-\ -> detache, retour au shell
|
|
# (au prochain login) -> dashboard propose "seo", ENTER pour reprendre
|
|
# ─────────────────────────────────────────────────────────────
|
|
|