self-compactlisted
Install: claude install-skill scitex-ai/claude-code-telegrammer
## Self-Compact via Emacs MCP Server
When auto-compact fails (recent Claude Code bug), compact context yourself:
### Steps
1. Find your vterm buffer name:
```
mcp__emacs-server__eval_elisp: (mapcar #'buffer-name (buffer-list))
```
Look for a buffer matching `<project>-<digits>-<digits>-<digits>-<digits>`
2. Send `/compact` + follow-up in ONE call with delays:
```
mcp__emacs-server__eval_elisp:
code: |
(let ((buf (get-buffer "<your-vterm-buffer-name>")))
(when (and buf (buffer-live-p buf))
(with-current-buffer buf
(vterm-send-string "/compact")
(vterm-send-return)
(sit-for 2)
(vterm-send-string "continue")
(vterm-send-return)
(list :success t :commands-sent 2))))
```
### Multi-Command with Delays Pattern
Use `eval_elisp` with `sit-for` to send sequential commands:
```elisp
(let ((buf (get-buffer "BUFFER-NAME")))
(with-current-buffer buf
(vterm-send-string "COMMAND-1")
(vterm-send-return)
(sit-for DELAY-SECONDS)
(vterm-send-string "COMMAND-2")
(vterm-send-return)
(sit-for DELAY-SECONDS)
(vterm-send-string "COMMAND-3")
(vterm-send-return)))
```
### Key: sit-for delays
- `(sit-for 1)` = 1 second delay
- `(sit-for 2)` = 2 second delay
- Must be in ONE eval_elisp call — after /compact the buffer state changes
- send_command_to_vterm only sends ONE command — use eval_elisp for sequences
### MCP Reconnect Pattern
``