Metadata-Version: 2.4
Name: caliclaw
Version: 0.4.9
Summary: Personal AI assistant that lives in Telegram. Agents with memory, souls, and autonomous loops.
License: MIT
Keywords: ai,assistant,telegram,claude,agents,autonomous,memory
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiogram<4.0,>=3.4
Requires-Dist: aiosqlite<1.0,>=0.20
Requires-Dist: cryptography<44.0,>=42.0
Requires-Dist: croniter<3.0,>=2.0
Requires-Dist: pydantic<3.0,>=2.6
Requires-Dist: pydantic-settings<3.0,>=2.2
Requires-Dist: aiohttp<4.0,>=3.9
Requires-Dist: aiofiles<25.0,>=23.0
Requires-Dist: uvicorn<1.0,>=0.27
Requires-Dist: starlette<1.0,>=0.36
Requires-Dist: watchdog<6.0,>=4.0
Requires-Dist: prompt_toolkit<4.0,>=3.0
Requires-Dist: rich<15.0,>=13.0
Requires-Dist: certifi>=2024.0
Dynamic: license-file

🔱 caliclaw

  Personal AI assistant in Telegram. Runs on your Claude subscription.

```
┌─ caliclaw ─────────────────────────────────────────────┐
│ you   > /spawn researcher "audit auth for bugs"        │
│ bot   🟢 Agent researcher spawned (ephemeral)          │
│                                                        │
│ you   > delegate: find bugs and report                 │
│ bot   [researcher] 3 issues in auth/session.py:        │
│         1. JWT not rotated on privilege change         │
│         2. Race condition in refresh token handler     │
│         3. Session ID in error logs                    │
│       Knowledge extracted → memory/. Agent killed 🔴   │
│                                                        │
│ you   > /cron "0 9 * * *" "morning health report"      │
│ bot   ⏰ Scheduled (runs daily 09:00)                  │
│                                                        │
│ you   > stop                                           │
│ bot   🛑 Stopped: 1 agent, 1 typing indicator          │
└────────────────────────────────────────────────────────┘
```

## Install

```bash
pip install caliclaw
caliclaw start
```

First run sets up everything. Pair your bot with `/pair <code>` in Telegram.

## What it does

- Chat with Claude through your Telegram bot — text, voice, files
- Spawn sub-agents (ephemeral / project / global) that work in parallel or pipelines
- Run scheduled tasks (`/cron`) and autonomous loops (`/loop`) until done
- Remember across sessions — persistent memory with knowledge extraction on kill
- Live on any server — systemd-installed `caliclaw immortal` survives reboots & crashes
- Sandbox by default — agents touch real dirs only with `/unleash ~/proj`
- Built-in skills: `code`, `shell`, `git`, `ops`, `debug`, `research`, `security`, `testing`, `web-access`, `code-review`, `incident-response`, `automation`, `self-evolve`

## Requirements

- Python 3.10+
- [Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code) logged in
- Telegram bot token — [@BotFather](https://t.me/BotFather)

## Agents

```
/spawn researcher "audit auth module for bugs"
/spawn fixer "patch what researcher finds"
/cron "0 9 * * *" "morning server health report"
/loop "refactor the test suite"
stop
```

Parallel swarms, sequential pipelines, and autonomous loops are first-class.
Main agent spawns sub-agents itself — no manual intervention needed.

## Skills marketplace

13 default skills ship in the box. Browse & install more from
**[caliclaw-gym](https://califlaw.github.io/caliclaw-gym/)**:

```bash
caliclaw skills gym
caliclaw skills install stripe-webhooks
caliclaw skills publish my-skill
```

Zero backend — GitHub Issues for voting, Pages for browsing. Fork, PR, ship.

## Immortal mode

```bash
caliclaw immortal on     # systemd unit — survives reboots, crashes, OOM
caliclaw immortal        # status
caliclaw immortal off
```

## Config & updates

```bash
caliclaw reforge         # re-configure any single component
caliclaw update          # upgrade from PyPI in place
caliclaw model set opus  # switch default model
```

No YAML. No Docker. No env-var hunt. One `.env` file.

## Migrating from openclaw / nanoclaw / zeroclaw

```bash
caliclaw migrate ~/path/to/old-project
```

Auto-detects, imports soul + memory + skills + database.

## Docs

[Commands](docs/commands.md) · [Config](docs/configuration.md) ·
[Backup](docs/backup.md) · [Troubleshooting](docs/troubleshooting.md) ·
[Contributing](docs/contributing.md)

## License

MIT
