reload
npx skills add https://github.com/gyumaruya/agent_self_reborn --skill reload
Agent 安装分布
Skill 文档
/reload — Self-Restart Claude Code
tmux å ã§åä½ä¸ã® Claude Code ã忢ããåä¸ã»ãã·ã§ã³ã§åèµ·åããã handoff.md ã«å¼ãç¶ãæ å ±ãæ¸ããå¥ã® tmux ã¦ã£ã³ãã¦ããå ã®ãã¤ã³ãæä½ããã
When to use
ã¦ã¼ã¶ã¼ã /reload ãå¼ãã æã ãã§ãªããã¨ã¼ã¸ã§ã³ãèªèº«ãå¿
è¦ã¨å¤æãããèªçºçã«å®è¡ããã
èªçºçã«åèµ·åãã¹ãå ´é¢ï¼MUSTï¼
以ä¸ã®ãã¡ã¤ã«ã夿´ããå¾ã¯ã夿´ãåæ ããããã«åèµ·åãå¿ è¦:
.claude/settings.json— hooksãpermissions çã®è¨å®.claude/hooks/— hook ã¹ã¯ãªããã®è¿½å ã»å¤æ´ã»åé¤.claude/agents/— ã¨ã¼ã¸ã§ã³ãå®ç¾©ã®å¤æ´**/SKILL.md— ã¹ãã«å®ç¾©ã®è¿½å ã»å¤æ´.claude/rules/— ã«ã¼ã«ãã¡ã¤ã«ã®å¤æ´CLAUDE.md— ããã¸ã§ã¯ãæç¤ºã®å¤æ´
ããã¼: è¨å®å¤æ´ â handoff.md ã«å¤æ´å å®¹ã¨æ¬¡ã®ã¹ããããæ¸ã â /reload å®è¡
ãã®ä»ã®åèµ·åå ´é¢
- ã³ã³ããã¹ããéããªã£ãæ
- ãã§ã¼ãºãåãæ¿ãããæï¼èª¿æ» â å®è£ ãªã©ï¼
- ã¨ã©ã¼ãèç©ãã¦ãªã»ãããããæ
Prerequisites
- tmux å ã§å®è¡ãã¦ãããã¨ï¼tmux å¤ã§ã¯åä½ããªãï¼
Instructions
Step 1: tmux ç°å¢ã確èª
echo "TMUX_PANE=$TMUX_PANE"
TMUX_PANE ã空ãªããã¦ã¼ã¶ã¼ã«ãtmux å
ã§å®è¡ãã¦ãã ãããã¨ä¼ãã¦ä¸æ¢ã
Step 2: handoff.md ãæ¸ã
.claude/self-reborn/handoff.md ã«å¼ãç¶ãæ
å ±ãæ¸ãã
ãããåèµ·åå¾ã®èªåãåãåãå¯ä¸ã®ã³ã³ããã¹ããå
·ä½çã«æ¸ããã¨ã
mkdir -p .claude/self-reborn
cat > .claude/self-reborn/handoff.md << 'HANDOFF_EOF'
# Handoff
## Restart Reason
{ãªãåèµ·åããã -- å
·ä½çã«}
## Current Task
{ä½ããã¦ããã -- ãã¡ã¤ã«åãè¡çªå·ã鲿}
## Next Steps
{次ã«ä½ããã¹ãã -- å
·ä½çãªã¢ã¯ã·ã§ã³}
## Important Context
{å¼ãç¶ãããæ
å ± -- 決å®äºé
ãæ³¨æç¹ããããã«ã¼}
HANDOFF_EOF
Step 3: ã»ãã·ã§ã³ ID ãåå¾
SESSION_ID="${CLAUDE_SESSION_ID:-}"
echo "SESSION_ID=$SESSION_ID"
$CLAUDE_SESSION_ID 㯠Claude Code ãè¨å®ããç°å¢å¤æ°ã空ã®å ´åã --continue ã§ä»£ç¨ã§ããã®ã§ç¶è¡å¯è½ã
Step 4: åèµ·åã¹ã¯ãªãããçæãã¦å®è¡
以ä¸ã®ã³ãã³ãã§ä¸æã¹ã¯ãªããã使ããå¥ã® tmux ã¦ã£ã³ãã¦ã§å®è¡ããã
REBORN_SCRIPT=$(mktemp /tmp/claude-reborn-XXXXXX.sh)
PANE="$TMUX_PANE"
PROJECT="$(pwd)"
# SESSION_ID 㯠Step 3 ã§å徿¸ã¿
cat > "$REBORN_SCRIPT" << REBORN_EOF
#!/bin/bash
set -eo pipefail
TARGET_PANE="$PANE"
SESSION_ID="$SESSION_ID"
PROJECT_DIR="$PROJECT"
HANDOFF="\$PROJECT_DIR/.claude/self-reborn/handoff.md"
log() { echo "[reborn] \$(date '+%H:%M:%S') \$1"; }
log "Waiting 2s before stopping Claude..."
sleep 2
# Kill Claude Code process in the target pane
PANE_PID=\$(tmux display-message -t "\$TARGET_PANE" -p '#{pane_pid}')
CLAUDE_PID=\$(pgrep -P "\$PANE_PID" | head -1)
if [ -n "\$CLAUDE_PID" ]; then
log "Killing Claude (PID=\$CLAUDE_PID, parent=\$PANE_PID) in \$TARGET_PANE"
kill "\$CLAUDE_PID"
else
log "No Claude process found under PID \$PANE_PID, sending Ctrl+C"
tmux send-keys -t "\$TARGET_PANE" C-c C-c
fi
# Wait for Claude to exit (poll pane_current_command)
log "Waiting for Claude to exit..."
for i in \$(seq 1 30); do
sleep 1
fg=\$(tmux display-message -t "\$TARGET_PANE" -p '#{pane_current_command}' 2>/dev/null || echo "")
case "\$fg" in bash|zsh|sh|fish) log "Claude exited (\${i}s)"; break;; esac
if [ "\$i" -eq 10 ]; then
log "Still running (\$fg), sending SIGKILL..."
kill -9 "\$CLAUDE_PID" 2>/dev/null
fi
done
# Resume Claude
log "Restarting Claude..."
sleep 1
if [ -n "\$SESSION_ID" ]; then
tmux send-keys -t "\$TARGET_PANE" "cd '\$PROJECT_DIR' && claude --resume '\$SESSION_ID'" Enter
else
tmux send-keys -t "\$TARGET_PANE" "cd '\$PROJECT_DIR' && claude --continue" Enter
fi
# Send handoff prompt after Claude starts
log "Waiting 8s for Claude to start..."
sleep 8
if [ -f "\$HANDOFF" ]; then
tmux send-keys -t "\$TARGET_PANE" ".claude/self-reborn/handoff.md ãèªãã§ãåèµ·åçç±ã¨æ¬¡ã®ã¹ãããã確èªãã¦ä½æ¥ãç¶ãã¦ãã ããã" Enter
log "Handoff prompt sent"
fi
log "Done. Closing in 3s..."
sleep 3
rm -f "\$0"
REBORN_EOF
chmod +x "$REBORN_SCRIPT"
tmux new-window -n reborn "$REBORN_SCRIPT"
ãã®ã³ãã³ãã®å®è¡å¾ã2ç§ä»¥å ã« Ctrl+C ãéããã¦èªåã¯åæ¢ãããããã¯æ£å¸¸åä½ã
Arguments
| Argument | Action |
|---|---|
| (empty) | åèµ·åçç±ãèãã¦ããå®è¡ |
<reason> |
æå®ãããçç±ã§å³åº§ã«å®è¡ |
Safety
- tmux å¤ã§ã¯åä½ããªãï¼Step 1 ã§æ¤åºï¼
- 䏿ã¹ã¯ãªããã¯å®è¡å¾ã«èªå·±åé¤
- 失æãã¦ãå
ã®ãã¤ã³ã®ã·ã§ã«ã¯æ®ãï¼æåã§
claudeãåèµ·åå¯è½ï¼ - ã©ããã¼ã«ã¼ããªã — ä¸çºå®è¡ã®ã¿