← ClaudeAtlas

self-compactlisted

Workaround for Claude Code auto-compact bug. Self-compact via Emacs MCP server.
scitex-ai/claude-code-telegrammer · ★ 1 · AI & Automation · score 64
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 ``