Skip to content

Releases: b1rdmania/ghostclaw

v0.6.2 — /update hotfix

Choose a tag to compare

@b1rdmania b1rdmania released this 19 Mar 12:45

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             # Linux

After that, all future `/update` calls will work correctly.

v0.6.1 — Dual timeout for stuck agents

Choose a tag to compare

@b1rdmania b1rdmania released this 19 Mar 12:18
7855e82

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

Choose a tag to compare

@b1rdmania b1rdmania released this 19 Mar 11:02
59c8382

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 menusetMyCommands() called at startup so all commands appear with descriptions when you type /

Under the hood

  • GroupQueue.getStatus() — exposes live queue state for external consumers
  • container-runner.ts — replaced dynamic require() 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

Choose a tag to compare

@ziggythebot ziggythebot released this 15 Mar 17:10

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.template as the base structure
  • /setup-ghostclaw copies it to CLAUDE.md and personalises it
  • Updates will never touch your customised CLAUDE.md again
  • /update-ghostclaw warns 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

Choose a tag to compare

@ziggythebot ziggythebot released this 15 Mar 16:54

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_check with gh 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

Choose a tag to compare

@ziggythebot ziggythebot released this 15 Mar 16:53

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-ghostclaw after starting Claude
  • NanoClaw → GhostClaw — Renamed legacy /setup skill and removed all remaining nanoclaw references

To update: /update-ghostclaw

v0.5.1 — Faster Messaging

Choose a tag to compare

@ziggythebot ziggythebot released this 04 Mar 16:18

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 module
  • src/channels/telegram.ts / whatsapp.ts — signal on message receipt
  • src/config.ts — poll interval 2000ms → 500ms (fallback only)
  • src/index.ts — stall-aware typing (15s timeout), event-driven loop
  • groups/global/CLAUDE.md — agent ack instructions

v0.5.0 — Public Beta

Choose a tag to compare

@ziggythebot ziggythebot released this 04 Mar 14:17

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 && claude

Then type /setup-ghostclaw. About 10 minutes.

Full changelog: https://github.com/b1rdmania/ghostclaw/blob/main/CHANGELOG.md

v0.1.2

Choose a tag to compare

@ziggythebot ziggythebot released this 03 Mar 00:14

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-ghostclaw skill — Safe update flow: backup, pull, migrate, rebuild, restart, verify. Replaces manual git 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

Choose a tag to compare

@ziggythebot ziggythebot released this 02 Mar 23:06

What's new

ElevenLabs voice replies

  • Bot replies with voice notes when you send voice notes (ElevenLabs TTS)
  • Add via /add-voice-reply skill or set ELEVENLABS_API_KEY in .env
  • Kelly voice default, configurable via ELEVENLABS_VOICE_ID

Model selection

  • GHOSTCLAW_MODEL env 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 install now automatically bootstraps container/agent-runner via postinstall
  • No more manual cd container/agent-runner && npm install step

Build and test hardening

  • setup/verify.ts dead code removed (was referencing unimported functions)
  • tsconfig.check.json covers setup/, scripts/, skills-engine/ — not just src/
  • npm run typecheck runs 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-* to ghostclaw-*
  • 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/bin for Apple Silicon
  • Setup skill references plist template file instead of inlining stale XML
  • MIT licence and .nvmrc added

Full changelog: v0.1.0...v0.1.1