claudeers.

πŸ”“ unclaimed β€” this page was auto-generated from GitHub. Are you the creator?

Claim this page β†’
// Productivity

claw-skeleton

πŸͺΌ A personal AI assistant that lives in Telegram β€” every topic is its own isolated Claude Code agent with layered persistent memory and proactive cron heart…

Actively maintained
98/100
last commit 9 days ago
last release none
releases 0
open issues 0
// install
git clone https://github.com/LuKresXD/claw-skeleton

Claw πŸͺΌ

A personal AI chief-of-staff that lives in Telegram.

Every chat topic is its own isolated Claude Code agent β€” with a persona, persistent memory, and a web of cron jobs that quietly keep an eye on your inbox, calendar, and life.


Claw is my Telegram-based personal assistant. This repo is its open skeleton β€” the full engine and architecture, with my personal data and integrations stripped out so you can build your own.

It's not a wrapper around a chat completion. Each Telegram forum topic spawns a long-lived, resumable Claude Code session with its own persona and memory, so "Coding," "Coach," and "Finance" are genuinely different agents that never bleed into each other. A nightly rollup distills the day's notes into durable memory, a fleet of cron jobs turns the bot from reactive to proactive, and the assistant talks back through Telegram's full native rich formatting β€” tables, math, live date entities, inline media β€” by shelling out to its own small CLI toolbelt.

Architecture

flowchart TD
    You(["You Β· Telegram"]) <--> Router["grammY router<br/>auth Β· queue Β· media Β· streaming"]

    Router -->|"one isolated session<br/>per forum topic"| T1["Coding<br/>Claude Code session"]
    Router --> T2["Coach<br/>Claude Code session"]
    Router --> T3["General<br/>Claude Code session"]

    T1 --> Mem["Layered memory<br/>daily notes β†’ nightly rollup β†’<br/>MEMORY.md + per-topic"]
    T2 --> Mem
    T3 --> Mem
    Mem -.->|"reinjected at session start"| Router

    T1 -.->|"shells out to"| CLI["CLI toolbelt<br/>post Β· react Β· media Β·<br/>diagrams Β· delegate Β· monitor"]
    CLI -.-> You

    Crons["Cron + heartbeat jobs"] -->|"inbox Β· calendar Β·<br/>proactive nudges"| Router

πŸ“– Deeper dive: ARCHITECTURE.md β€” turn lifecycle, the memory pipeline, the rich-output path, and the CLI toolbelt, with diagrams.

What makes it interesting

  • 🧠 Per-topic isolated agents β€” each forum topic is its own persistent Claude Code session with its own persona and memory file. No cross-talk, no context soup. Sub-topics in a topic-enabled supergroup get their own isolated session too, keyed by thread.
  • πŸ“š Memory that survives restarts β€” append-only daily notes get promoted by a nightly LLM rollup into a lean long-term MEMORY.md plus per-topic files. The bot wakes up knowing you.
  • ⏰ Proactive, not just reactive β€” a shared cron runner fires scheduled Claude jobs (inbox triage, calendar, digests, health) and routes the results to the right topic.
  • πŸ’¬ Native rich Telegram output β€” replies render as real Telegram rich text: tables, task lists, fenced code, $LaTeX$, spoilers, collapsibles, live timezone-aware date entities, maps, and inline images/video/audio β€” with an automatic HTML fallback.
  • 🧰 A CLI toolbelt the bot wields itself β€” small standalone CLIs the agent shells out to in order to act in Telegram mid-turn: post/edit a live progress line, drop a reaction, send media, render a Mermaid diagram to an image, host a file, delegate a parallel sub-agent, or arm a watcher that wakes a fresh turn when a long background job finishes.
  • 🎭 Personas & guest mode β€” per-topic personas, prefix routing, and a stub-then-edit guest mode you can @mention from any chat the bot isn't even in.
  • ♻️ Self-maintaining β€” Claw can read and edit its own source, rebuild, and restart; smart auto-clear summarizes idle sessions into memory instead of nuking them mid-thought.
  • πŸ”§ Production-hardened details β€” model-alias indirection, periodic context re-injection, streaming Telegram message edits, per-topic queueing, and systemd units with reliability drop-ins + failure alerts.

Project structure

claw-skeleton/
β”œβ”€β”€ CLAUDE.md           # the blueprint β€” what the assistant is and how it remembers
β”œβ”€β”€ .env.example        # the environment variables you fill in
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ bot/            # grammY router, middleware, commands, guest mode
β”‚   β”œβ”€β”€ claude/         # session lifecycle: runner, auto-clear, checkpoints, prompt builder
β”‚   β”œβ”€β”€ telegram/       # sender β€” rich Telegram output, streaming edits, HTML fallback
β”‚   β”œβ”€β”€ tools/          # the CLI toolbelt the bot shells out to (sanitized examples)
β”‚   β”œβ”€β”€ util/           # logger, sanitizer, graceful shutdown
β”‚   β”œβ”€β”€ config.ts       # topics, personas, models, constants
β”‚   └── index.ts        # entry point
β”œβ”€β”€ cron-scripts/       # shared cron runner framework + libs
β”œβ”€β”€ cron-prompts/       # example scheduled-job prompts
β”œβ”€β”€ systemd/            # unit + timer patterns (bot, cron, reliability drop-ins)
└── personas/           # example personas (default, coding, coach)

Start with CLAUDE.md β€” it's the spec that defines what the assistant is, how it remembers, and how it behaves. The TypeScript is the engine; CLAUDE.md is the soul.

Build your own

# 1. create a Telegram bot via @BotFather, make a topic-enabled supergroup
# 2. wire it up
cp .env.example .env          # add BOT_TOKEN, CHAT_ID, OWNER_USER_ID
npm install
#   edit src/config.ts  -> your topic IDs, personas, routing
#   write personas/*.md and cron-prompts/*.txt for your own life
npm run build && npm start
# 3. (optional) install the systemd units to run it 24/7 + on a schedule

This is a sanitized skeleton, not a turnkey app: the personal integrations (email, calendar, finance, health…) and data were removed by design. Point your own Claude Code at the repo and have it flesh out the parts you want β€” that's the whole idea.

License

MIT β€” see LICENSE.

Built by @LuKresXD Β· powered by Claude Code πŸͺΌ

// compatibility

Platformscli, api, web
Operating systemsβ€”
AI compatibilityclaude
LicenseMIT
Pricingopen-source
LanguageTypeScript

// faq

What is claw-skeleton?

πŸͺΌ A personal AI assistant that lives in Telegram β€” every topic is its own isolated Claude Code agent with layered persistent memory and proactive cron heartbeats. Open skeleton of a real, running system.. It is open-source on GitHub.

Is claw-skeleton free to use?

claw-skeleton is open-source under the MIT license, so it is free to use.

What category does claw-skeleton belong to?

claw-skeleton is listed under productivity in the Claudeers registry of Claude-compatible tools.

0 views
β˜… 63 stars
unclaimed
updated 9 days ago

// embed badge

claw-skeleton on Claudeers
[![Claudeers](https://claudeers.com/api/badge/claw-skeleton.svg)](https://claudeers.com/claw-skeleton)

// retro hit counter

claw-skeleton hit counter
[![Hits](https://claudeers.com/api/counter/claw-skeleton.svg)](https://claudeers.com/claw-skeleton)

// reviews

// guestbook

0/500

// related in Productivity

πŸ”“

Agent skills for Obsidian. Teach your agent to use Obsidian CLI and open formats including Markdown, Bases, JSON Canvas.

// productivitykepano/β˜… 40,030β—· MIT[ claude ]
πŸ”“

Garry's Opinionated OpenClaw/Hermes Agent Brain

// productivitygarrytan/⟨TypeScriptβŸ©β˜… 25,386β—· MIT[ claude ]
πŸ”“

Open source repository of plugins primarily intended for knowledge workers to use in Claude Cowork

// productivityanthropics/⟨PythonβŸ©β˜… 22,343β—· Apache-2.0[ claude ]
πŸ”“

An open-source alternative to Claude Cowork (powered by opencode)

// productivitydifferent-ai/⟨TypeScriptβŸ©β˜… 16,671β—· NOASSERTION[ claude ]
Connectorlinks several projects together across the ecosystem Β· 7 connections
β†’ see how claw-skeleton connects across the ecosystem