Personal AI assistant that lives in Telegram. Agents with memory, souls, and autonomous loops.
Project description
caliclaw
Your own personal AI assistant. Any server. Any task. The claw way. 🔱
The first and only personal AI assistant built for Claude. No API key — just your subscription.
Why caliclaw
Other AI assistants (openclaw, etc.) require API keys, manual configuration, and don't support Claude at all. caliclaw is different:
- Zero config —
caliclaw startdoes everything. Setup, dependencies, pairing — automatic - No API key — runs on your Claude subscription. No tokens, no billing surprises
- No TOS violations — built on official tools, not reverse engineering
- Agents that actually work — spawn agents on the fly, run them in parallel (swarm), chain them (pipeline), or let them work autonomously (loop) until the task is done
- They remember — persistent memory across sessions. Your assistant learns who you are and how you work
- They have a soul — personality, rules, and behavior defined in simple markdown files, not buried in code
- They know when to stop — anti-hallucination layer, permission levels, human approval for dangerous actions. Type
stopand everything halts instantly - Secure by default — prompt injection protection, input filtering, and encrypted vault built in. No setup needed
- They work while you sleep — cron jobs, scheduled heartbeats, automated checks
- Sandbox by default — agents work in isolated workspace. Unleash them on real directories only when you need to:
/unleash ~/myproject - Context follows you — switch directories with
/unleash, conversation context is preserved automatically. One assistant, infinite places to work
caliclaw vs openclaw
| caliclaw | openclaw | |
|---|---|---|
| Claude support | Yes | No |
| API key required | No — subscription only | Yes |
| Setup time | One command | Manual config |
| Agents spawn agents | Yes | No |
| Agents work autonomously | Yes — loops until done | No |
| Agents extract knowledge on death | Yes | No |
| Prompt injection protection | Built in | Manual |
| Memory across sessions | Yes | Varies |
| Soul system | Yes | Yes |
| Scheduled tasks | Built in | Plugin |
| Voice messages | Built in | No |
| Open source | Yes | Yes |
What you get
- Telegram bot — text, voice, photos, files. Streaming responses. Inline controls
- Terminal chat — same assistant, same soul, right in your shell.
caliclaw chat - 20+ commands — agents, tasks, memory, skills, model switching, all from Telegram or CLI
- Voice — send voice messages, whisper-cpp transcribes them
- Skills system — enable/disable capabilities. Create your own in markdown. Browse community skills at caliclaw-gym
- Encrypted vault — store secrets your agents can use
- Health dashboard — web UI for monitoring activity and status
- Migration — coming from openclaw/nanoclaw/zeroclaw? One command imports everything
Quick start
From PyPI:
pip install caliclaw
caliclaw start
From source:
git clone https://github.com/califlaw/caliclaw.git
cd caliclaw
source install.sh
caliclaw start
First run triggers setup automatically. Pair with your bot by sending /pair <code> in Telegram.
No YAML configs. No Docker. No environment variables to hunt down.
Need to change something later? Use caliclaw reforge to pick one component
(credentials, profile, soul, model, or skills) and re-configure it without
touching the rest.
To stay current: caliclaw update checks PyPI and upgrades in place.
Terminal chat
Prefer the shell over Telegram? Same assistant, same soul, same memory:
caliclaw chat
Streaming responses, session history, slash commands. Works alongside the Telegram bot — conversations stay in sync.
Requirements
- Python 3.10+
- Claude Code CLI installed and authenticated
- Telegram bot token from @BotFather (optional if you only use
caliclaw chat)
How agents work
When you kill an agent, it doesn't just die — it extracts everything it learned into memory. The next agent picks up where it left off. Knowledge never dies.
You send a message in Telegram (or type in caliclaw chat)
-> caliclaw loads the agent's soul, memory, and skills
-> Agent processes your request with full system access
-> Response streams back to you in real-time
-> Conversation saved, memory updated
Need parallel work?
-> /spawn researcher "find all bugs in auth module"
-> /spawn fixer "fix the bugs researcher found"
-> They work independently, report back to you
Need autonomous work?
-> /loop "refactor the entire test suite"
-> Agent works in iterations until done or you say stop
Need scheduled work?
-> /cron "0 9 * * *" "check server health and report"
-> Runs every morning, sends you the result
Skills marketplace — caliclaw-gym 🏋️
caliclaw ships with 14 default skills — a professional dev kit, not a newbie bundle:
| Core | Unique | Meta |
|---|---|---|
code read first, minimal diffs |
incident-response production fires |
self-evolve agent creates new skills |
shell bash mastery |
code-review review like a senior |
|
git atomic commits, recovery |
automation glue scripts, webhooks, cron |
|
ops ssh, systemd, deploy |
browser headless navigation & scraping |
|
debug read errors, isolate |
||
research authoritative sources |
||
security secrets, OWASP |
||
testing pyramid, regression |
||
web-access search + fetch |
Need more? Browse community-built skills at https://califlaw.github.io/caliclaw-gym/:
caliclaw skills gym # browse all community skills
caliclaw skills install stripe-webhooks # install one
caliclaw skills publish my-skill # share yours with the community
Built your own skill and want to share it? Fork caliclaw-gym, add skills/<name>/SKILL.md, open a PR. After merge it gets a voting issue — community upvotes with 👍 and it ranks by stars. See the contributing guide.
No API, no backend, no auth — just GitHub Issues for voting and GitHub Pages for the browser. Zero infrastructure, fully community-owned.
Choosing the model
By default caliclaw uses sonnet — balanced between speed and reasoning. Change it anytime:
caliclaw model # show current default + options
caliclaw model set opus # switch to opus (more reasoning, heavier)
caliclaw model set haiku # switch to haiku (fast, cheap)
The CLI persists your choice in .env and auto-restarts the bot if it's running. You can also switch runtime-only via /model in Telegram.
Migration
Coming from another *claw project?
caliclaw migrate ~/path/to/old-project
Auto-detects project type. Migrates soul, memory, skills, database. Supports openclaw, nanoclaw, zeroclaw.
Deploy
ssh user@vps
pip install caliclaw
caliclaw start
Auto-reconnects on network drops. Auto-restarts on failure. Graceful shutdown with watchdog.
Make it immortal ☠
Survive reboots, crashes, OOM kills — caliclaw comes back every time:
caliclaw immortal on # installs systemd unit, enables, starts
caliclaw immortal # status — alive/dead, immortal/mortal
caliclaw immortal off # break the seal
During first-run caliclaw init, the "Keep caliclaw always running" option does the same thing. You can toggle it later anytime with caliclaw immortal on/off — no need to re-run init.
Status output looks like:
☠ IMMORTAL survives reboots and crashes
♥ Alive right now
Documentation
Full docs in docs/:
- Commands reference — every CLI and Telegram command
- Configuration — all
.envsettings - Backup & recovery
- Troubleshooting
- Contributing — development guide
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file caliclaw-0.4.20.tar.gz.
File metadata
- Download URL: caliclaw-0.4.20.tar.gz
- Upload date:
- Size: 163.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ace901444d9e8e30d491ed681a28c471ccb0f87fe8858ee92e13ddf2d40fd73
|
|
| MD5 |
2e42e2f0fd08b30cf4b4a4c94aa32fe7
|
|
| BLAKE2b-256 |
fbdbc27de0f04bac568d325b54adb94d589863269abe671d49657c4603cb6ff4
|
Provenance
The following attestation bundles were made for caliclaw-0.4.20.tar.gz:
Publisher:
publish.yml on califlaw/caliclaw
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
caliclaw-0.4.20.tar.gz -
Subject digest:
9ace901444d9e8e30d491ed681a28c471ccb0f87fe8858ee92e13ddf2d40fd73 - Sigstore transparency entry: 1349054972
- Sigstore integration time:
-
Permalink:
califlaw/caliclaw@dfc981248d82a564c497d69e46fe4096a6a00205 -
Branch / Tag:
refs/tags/v0.4.20 - Owner: https://github.com/califlaw
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dfc981248d82a564c497d69e46fe4096a6a00205 -
Trigger Event:
release
-
Statement type:
File details
Details for the file caliclaw-0.4.20-py3-none-any.whl.
File metadata
- Download URL: caliclaw-0.4.20-py3-none-any.whl
- Upload date:
- Size: 166.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0da52bdea3c9a01c028ab3f7ba22b55f5aa0b6cbca07fdbb6e014c848efe66d
|
|
| MD5 |
3f37480cccb859c26bd17ec1e3e50eb5
|
|
| BLAKE2b-256 |
f3c7e77fda2215d29b0a9315c861f33933e15f3bb718aef1d90365b288379dc9
|
Provenance
The following attestation bundles were made for caliclaw-0.4.20-py3-none-any.whl:
Publisher:
publish.yml on califlaw/caliclaw
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
caliclaw-0.4.20-py3-none-any.whl -
Subject digest:
e0da52bdea3c9a01c028ab3f7ba22b55f5aa0b6cbca07fdbb6e014c848efe66d - Sigstore transparency entry: 1349055100
- Sigstore integration time:
-
Permalink:
califlaw/caliclaw@dfc981248d82a564c497d69e46fe4096a6a00205 -
Branch / Tag:
refs/tags/v0.4.20 - Owner: https://github.com/califlaw
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dfc981248d82a564c497d69e46fe4096a6a00205 -
Trigger Event:
release
-
Statement type: