githubinferredactive
catclaw
provenance:github:CatiesGames/catclaw
Personal AI assistant gateway powered by Claude Code — multi-agent, multi-channel (Discord/Telegram/TUI), session management, tool approval, memory system
README
<p align="center">
<img src="https://img.shields.io/badge/rust-1.75+-orange?logo=rust" alt="Rust">
<img src="https://img.shields.io/badge/claude_code-CLI-blueviolet" alt="Claude Code">
<img src="https://img.shields.io/badge/license-MIT-green" alt="License">
<img src="https://img.shields.io/badge/status-alpha-yellow" alt="Status">
</p>
<p align="center">
<img src="assets/splash.png" alt="CatClaw Splash" width="600">
</p>
---
**English** | [繁體中文](README.zh-TW.md)
CatClaw is a Rust daemon that turns your **Claude Code subscription** into a personal AI assistant accessible from Discord, Telegram, Slack, and a beautiful terminal UI. Inspired by OpenClaw, built from scratch in Rust for performance, reliability, and full Anthropic compliance.
## Why CatClaw?
- **Use your Claude Code subscription** — no API keys, no surprise bills. CatClaw spawns `claude -p` subprocesses that use your existing Claude Code plan.
- **Multi-agent** — define multiple AI personas (main assistant, research expert, code reviewer), each with their own personality, memory, and tool permissions.
- **Multi-channel** — talk to your agents from Discord, Telegram, Slack, or the built-in TUI. All channels share the same session and memory system.
- **Tool approval system** — require user confirmation before agents execute sensitive tools (Bash, Edit, etc.) with inline approval UI in TUI and Discord/Telegram/Slack buttons.
- **Stateless gateway** — all state persisted to SQLite. Kill the daemon anytime, restart, and everything picks up where it left off.
- **Beautiful TUI** — Catppuccin Mocha themed terminal interface with 8 panels for managing everything.
## Quick Start
### Prerequisites
- [Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code) installed and authenticated
### Install
```bash
curl -fsSL https://raw.githubusercontent.com/CatiesGames/catclaw/main/install.sh | sh
```
Or build from source:
```bash
git clone https://github.com/CatiesGames/catclaw.git
cd catclaw
cargo build --release
```
### Launch
```bash
catclaw onboard
```
On first run, CatClaw will:
1. Show the splash logo
2. Run the interactive setup wizard (verify Claude Code CLI, create your agent, configure channels)
3. Optionally install as a system service (auto-start on boot)
4. Start the gateway in the background
5. Launch the TUI
On subsequent runs, it skips setup and goes straight to gateway + TUI.
```bash
# Other ways to run:
catclaw onboard # Re-run the setup wizard
catclaw gateway start # Start gateway in foreground
catclaw gateway start -d # Start gateway as background daemon
catclaw gateway stop # Stop the background gateway
catclaw gateway status # Show gateway status
catclaw tui # Launch TUI only (connects to running gateway)
# Updates & auto-start:
catclaw update # Self-update to latest version
catclaw update --check # Check for updates without installing
catclaw gateway install # Install as system service (auto-start on boot)
catclaw gateway uninstall # Remove the system service
catclaw uninstall # Full uninstall (stop, remove service, delete binary)
```
## Architecture
```
┌──────────────────────────────────────────────────────────────────┐
│ CatClaw Gateway (Rust) │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Discord │ │ Telegram │ │ Slack │ Adapters │
│ │ Adapter │ │ Adapter │ │ Adapter │ │
│ └──────┬───────┘ └──────┬──────┘ └──────┬──────┘ │
│ └────────────────┘ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ Message Router → Agent Registry → Session Manager │ │
│ │ (binding table) (SOUL/tools) (claude -p spawn) │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ State DB │ │ Scheduler │ │
│ │ (SQLite WAL) │ │ (cron/heartbeat)│ │
│ └──────────────────┘ └──────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ WS Server (/ws) + MCP Server (/mcp) — port 21130 │ │
│ └──────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
▲ ▲
│ WebSocket │ MCP JSON-RPC
┌─────┴─────┐ ┌──────┴──────┐
│ TUI │ │ Claude CLI │
│ (ratatui) │ │ (tool use) │
└───────────┘ └─────────────┘
```
**How it works**: When a message arrives from any channel, CatClaw resolves which agent should handle it (via binding table), finds or creates a session, spawns a `claude -p --output-format stream-json` subprocess, and streams the response back to the originating channel.
Each `claude -p` subprocess uses your Claude Code subscription — no API keys needed.
## CLI Reference
All configuration is managed through the CLI or TUI. No manual file editing required.
### Gateway
```bash
catclaw onboard # Onboarding: setup wizard → start gateway → launch TUI
catclaw gateway start # Start gateway in foreground
catclaw gateway start -d # Start as background daemon
catclaw gateway stop # Stop background gateway
catclaw gateway restart # Restart daemon
catclaw gateway status # Show running status and PID
catclaw onboard # Re-run the setup wizard
catclaw tui # Launch TUI only
```
### Agent Management
```bash
catclaw agent new <name> # Create a new agent
catclaw agent list # List all agents
catclaw agent edit <name> <file> # Open file in $EDITOR
catclaw agent tools <name> # Show current tool permissions
catclaw agent tools <name> \
--allow "Read,Grep,WebFetch" \
--deny "Bash" \
--approve "Edit,Write" # Configure tool permissions
catclaw agent delete <name> # Delete an agent
```
`<file>` values: `soul`, `user`, `identity`, `agents`, `tools`, `boot`, `heartbeat`, `memory`
### Channels
```bash
catclaw channel list # List configured channels
catclaw channel add discord \
--token-env CATCLAW_DISCORD_TOKEN \
--guilds "123456789" \
--activation mention # Add Discord channel
catclaw channel add telegram \
--token-env CATCLAW_TELEGRAM_TOKEN # Add Telegram channel
catclaw channel add slack \
--token-env CATCLAW_SLACK_BOT_TOKEN \
--app-token-env CATCLAW_SLACK_APP_TOKEN # Add Slack channel
```
### Bindings (Channel → Agent routing)
```bash
catclaw bind "discord:channel:222222" research # Bind a channel to an agent
catclaw bind "telegram:*" main # Bind all Telegram to main
catclaw bind "slack:channel:C12345" research # Bind a Slack channel to an agent
catclaw bind "*" main # Global fallback
```
### Sessions
```bash
catclaw session list # List all sessions
catclaw session delete <key> # Delete a session
```
### Skills
```bash
catclaw skill list <agent> # List skills (built-in + installed)
catclaw skill e
[truncated…]PUBLIC HISTORY
First discoveredMar 21, 2026
IDENTITY
inferred
Identity inferred from code signals. No PROVENANCE.yml found.
Is this yours? Claim it →METADATA
platformgithub
first seenMar 16, 2026
last updatedMar 21, 2026
last crawled6 days ago
version—
README BADGE
Add to your README:
