Releases: b1rdmania/ghostclaw
Release list
v0.6.2 — /update hotfix
Fix
`/update` no longer fails after applying a skill.
Skills apply patches and commit locally, which caused `git pull` to fail with "divergent branches" — blocking remote updates entirely. `/update` now uses `git fetch origin && git rebase origin/main`:
- No local changes → fast-forward, same as before
- Skills applied → local commits replayed on top of upstream, customisations preserved
Upgrading
If you're on v0.6.1 or earlier and hit the divergent branches error, this is the fix. You'll need to update manually once:
git fetch origin && git rebase origin/main
npm run build
launchctl kickstart -k gui/$(id -u)/com.ghostclaw # macOS
# or: systemctl --user restart ghostclaw # LinuxAfter that, all future `/update` calls will work correctly.
v0.6.1 — Dual timeout for stuck agents
Fixes
- Dual agent timeout replaces the old single 30-min timer:
- Idle timeout (10 min default, `AGENT_IDLE_TIMEOUT` env var): reset on any stdout activity. An agent that produces no output for 10 minutes is considered stuck and killed. This catches the "hung waiting on API" case that was causing 30-40 min hangs.
- Absolute ceiling (45 min default, `AGENT_ABSOLUTE_TIMEOUT` env var): never resets, regardless of any activity. Hard cap for runaway agents producing garbage output.
- Both timeouts log their reason (`idle` vs `absolute`) to make post-mortems easier.
- Timeout always resolves as error (even with partial streaming output) so callers get the correct signal.
- One-shot kill guard prevents double-fire if both timers trigger simultaneously.
v0.6.0 — Reliability + Remote Control
What's new
Fixes
- Infinite retry loop eliminated — a stuck group that hit max retries would silently reset its counter and retry forever. Now it stops and waits for the next incoming message.
- Orphan process cleanup on startup — agent PIDs are now tracked in
data/agent-pids.json. On every boot, survivors from the previous run are killed before accepting messages. Fixes the Mar 18 cascade (zombie process consuming slots → timeout pile-up).
New commands (Telegram)
/status— active agents per group, queue depth, and uptime/skills— live list of all installed skills with descriptions- Telegram command menu —
setMyCommands()called at startup so all commands appear with descriptions when you type/
Under the hood
GroupQueue.getStatus()— exposes live queue state for external consumerscontainer-runner.ts— replaced dynamicrequire()with static import (fixes test mocking)- All 448 tests passing
Upgrading
Already running GhostClaw? Send /update in Telegram to pull and rebuild automatically.
Fresh install? See the README.
v0.5.4 — Template Fix for User CLAUDE.md
Fix
User CLAUDE.md no longer tracked in git — Previously, groups/main/CLAUDE.md (your personalised soul/config) was tracked, causing merge conflicts on every update. Now:
- Repo ships
CLAUDE.md.templateas the base structure /setup-ghostclawcopies it toCLAUDE.mdand personalises it- Updates will never touch your customised
CLAUDE.mdagain /update-ghostclawwarns you if the template changes upstream so you can review new sections
Thanks to community member Bern for reporting this.
If upgrading from v0.5.3 or earlier, your existing CLAUDE.md will be preserved — git will stop tracking it automatically after pulling.
To update: /update-ghostclaw
v0.5.3 — Scheduler Pre-check + PR Babysitter
New Features
Scheduler pre_check
Scheduled tasks can now include an optional pre_check bash script that runs before spawning the agent:
- Exit 0 + no output → agent skipped (zero API cost)
- Exit 0 + output → output injected into agent prompt via
{{pre_check_output}} - Exit non-zero → agent spawned to investigate
Makes polling tasks dramatically cheaper — only burns API credits when there's actual work to do.
PR Babysitter skill (/pr-babysitter)
Automated PR monitoring for GitHub repos:
- Watches for failing CI, unanswered review comments, stale PRs
- Uses
pre_checkwithgh pr list— zero cost when all PRs are clean - Auto-fixes high-confidence issues (linting, type errors, simple test fixes)
- Messages you when human judgement is needed
- Configurable: repos, check interval, auto-fix behaviour
To update: /update-ghostclaw
v0.5.2 — Telegram Fix + Setup Docs
Bug Fixes
- Telegram HTML chunking — Long messages that split across the 4096-char limit no longer crash when HTML tags (
<pre>,<code>,<b>, etc.) span chunk boundaries. Tags are now properly closed and reopened.
Improvements
- Setup instructions — README now explicitly tells new users to run
/setup-ghostclawafter starting Claude - NanoClaw → GhostClaw — Renamed legacy
/setupskill and removed all remaining nanoclaw references
To update: /update-ghostclaw
v0.5.1 — Faster Messaging
What's new
Event-driven message handling — Telegram and WhatsApp messages now wake the processing loop instantly instead of waiting up to 2 seconds for the next poll tick. Typical latency drops from ~3s to under 1s.
Stall-aware typing indicator — typing indicator now stops after 15 seconds of no agent output, so it reflects actual work rather than just "process is alive". Resumes automatically when output flows again.
Agent acknowledgment — agents now send a quick ack ("On it — checking X") before starting longer tasks, so you know the request was received.
Heartbeat cleanup — heartbeat checks no longer leak internal reasoning. Old/filtered errors are silently ignored instead of reported.
Changes
src/message-signal.ts— new event-driven wake modulesrc/channels/telegram.ts/whatsapp.ts— signal on message receiptsrc/config.ts— poll interval 2000ms → 500ms (fallback only)src/index.ts— stall-aware typing (15s timeout), event-driven loopgroups/global/CLAUDE.md— agent ack instructions
v0.5.0 — Public Beta
First public beta. GhostClaw is feature-complete and ready for testing.
What's included (ships with every install)
- Telegram + WhatsApp — DM it like a person, or add to group chats
- Web research — Perplexity-powered search and deep research built in
- Ralph loops — autonomous multi-task engine, works through checklists overnight
- Scheduled tasks — natural language or cron syntax
- Per-group personality — each chat gets its own tone, memory, and rules via CLAUDE.md
- Mission Control — real-time dashboard at localhost:3333 (status, chats, tasks, souls, logs, research)
- Skills engine — add capabilities like installing a Claude Code skill, security-scanned before install
Optional skills
Gmail, voice transcription (ElevenLabs), voice reply, heartbeat monitoring, morning briefings, Slack, Telegram swarm, update checks. One command each from Claude Code.
New since v0.2.1
- Mission Control dashboard with research tab and inline file editor
- Ralph autonomous task loop with Telegram file delivery
- Queue acknowledgment and persistent typing indicator
- Voice transcription switched to ElevenLabs Scribe
- Ghost personality throughout dashboard
- Pruned inherited NanoClaw cruft, rewritten README and docs
Install
git clone https://github.com/b1rdmania/ghostclaw.git
cd ghostclaw && npm install && claudeThen type /setup-ghostclaw. About 10 minutes.
Full changelog: https://github.com/b1rdmania/ghostclaw/blob/main/CHANGELOG.md
v0.1.2
What's new
- Telegram markdown rendering — Messages now render bold, italic, strikethrough, code blocks, and links properly instead of showing raw markdown stars
- Error alerts — Critical errors (uncaught exceptions, unhandled rejections) now send a message to your main chat before the process exits, and write to
logs/errors.log /update-ghostclawskill — Safe update flow: backup, pull, migrate, rebuild, restart, verify. Replaces manualgit pull && npm run build
Commits since v0.1.1
- Convert markdown to Telegram HTML so bold, italic, code etc. render correctly
- Add error alerts: notify admin on critical errors, write errors to log file
- Add /update-ghostclaw skill for safe updates
v0.1.1
What's new
ElevenLabs voice replies
- Bot replies with voice notes when you send voice notes (ElevenLabs TTS)
- Add via
/add-voice-replyskill or setELEVENLABS_API_KEYin.env - Kelly voice default, configurable via
ELEVENLABS_VOICE_ID
Model selection
GHOSTCLAW_MODELenv var — default Sonnet, switchable to Opus or Haiku- Setup wizard now asks which model to use
Heartbeat is now core
- Heartbeat monitoring set up automatically during
/setup-ghostclaw - Every 30 minutes, checks logs and disk — only messages you if something needs attention
Bug fixes
Scheduled tasks no longer block messages (critical)
Previously, heartbeat and other scheduled tasks would hold the group slot for up to 30 minutes after completing their work. During that time, every Telegram/WhatsApp message was silently queued and never processed. Now:
- Scheduled tasks exit immediately after completing instead of idling
- Idle task containers are preempted when user messages arrive
Fresh clone reliability
npm installnow automatically bootstrapscontainer/agent-runnervia postinstall- No more manual
cd container/agent-runner && npm installstep
Build and test hardening
setup/verify.tsdead code removed (was referencing unimported functions)tsconfig.check.jsoncoverssetup/,scripts/,skills-engine/— not justsrc/npm run typecheckruns both configs- Voice note test properly mocked and deterministic across environments
- 388/388 tests pass on clean clone
Other
- Agent process names renamed from
nanoclaw-*toghostclaw-* - Heartbeat no longer checks Gmail by default (fails without Gmail skill)
- Heartbeat task prompt uses explicit path for
HEARTBEAT.md - Launchd template includes
/opt/homebrew/binfor Apple Silicon - Setup skill references plist template file instead of inlining stale XML
- MIT licence and
.nvmrcadded
Full changelog: v0.1.0...v0.1.1