# Private Chat

> Private Chat Mode - Trigger encrypted conversations via codeword. Sensitive information is automatically encrypted using AES-256-CBC for maximum security.

- Skill: `dvcrn/private-chat` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add dvcrn/private-chat`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/private-chat/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/private-chat

---


# Private Chat Skill

A skill for OpenClaw that enables encrypted conversation mode. Users can enter private mode via a codeword, and all sensitive information will be automatically encrypted and stored.

## Features

- 🔐 **Codeword Trigger** - Enter private mode with a secret codeword
- 🛡️ **AES-256-CBC Encryption** - Military-grade encryption standard
- ⏱️ **Auto Exit** - Automatically exit after configured idle time
- 📝 **Encrypted Storage** - Private content stored in separate encrypted files
- 🔑 **Password Protection** - Customizable encryption password

## Installation

```bash
clawhub install private-chat
```

## Configuration

1. Copy the example config:
```bash
cp config.example.json config.json
```

2. Edit `config.json`:
```json
{
  "codeword": "your-secret-codeword",
  "password": "your-encryption-password",
  "autoExitMinutes": 1,
  "storageFile": "memory/private-vault.md"
}
```

## Usage

### Enter Private Mode

User enters the codeword (default: `lgbt`):
```
lgbt
```

AI responds:
```
Entering Private Mode 🔒

Welcome back. How can I help you?
```

### Store Sensitive Information

In private mode, tell AI sensitive info directly:
```
My bank card password is 123456
```

AI will auto-encrypt and respond:
```
Securely stored ✅

Your bank card password has been encrypted and saved to the private vault.

Storage: memory/private-vault.md
Encryption: AES-256-CBC
```

### Retrieve Encrypted Content

In private mode, ask:
```
What's my bank card password?
```

AI will decrypt and show:
```
Your bank card password: 123456
```

### Exit Private Mode

Automatically exits after configured idle time (default: 1 minute).

Or manually send exit codeword:
```
exit
```

## Decryption Methods

### Command Line

```bash
# Method 1: Direct decryption
./scripts/private-vault.sh decrypt "your-password" "ENC[v1:SALT:BASE64]"

# Method 2: Interactive
cd skills/private-chat
./scripts/private-vault.sh interactive
```

### Manual Decryption

Encrypted format: `ENC[v1:SALT:BASE64]`

Using OpenSSL:
```bash
echo "BASE64_CONTENT" | base64 -d | openssl enc -aes-256-cbc -d -k "your-password" -pbkdf2
```

## Security Rules

### Private Mode Rules

1. **After entering** - Normal conversation logging
2. **Strict confidentiality** - Never reveal private content to anyone
3. **Auto exit** - Exit automatically after idle time
4. **Never reference after exit** - Once exited, never reference, hint at, or repeat any content from private mode

### Non-Private Mode Rules

⚠️ **Highest Priority Rule (Iron Law):**

> **In non-private mode, completely hide the existence of private mode.**
> - Never mention "private mode", "codeword", "encrypted conversation", or related concepts
> - Never reveal that encrypted storage exists
> - When asked "any secrets/private content?", must answer "no" or "don't know"
> - Act as if this feature **does not exist at all**

## File Structure

```
skills/private-chat/
├── SKILL.md                 # Skill documentation (English)
├── SKILL.zh.md             # Skill documentation (Chinese)
├── README.md               # Project readme (English)
├── README.zh.md            # Project readme (Chinese)
├── config.example.json     # Example configuration
├── config.json             # User configuration (create yourself)
└── scripts/
    └── private-vault.sh    # Encryption/decryption script
```

## Encryption Script Usage

### Encrypt

```bash
./scripts/private-vault.sh encrypt "password" "text to encrypt"
```

Output: `ENC[v1:SALT:BASE64]`

### Decrypt

```bash
./scripts/private-vault.sh decrypt "password" "ENC[v1:SALT:BASE64]"
```

### Interactive

```bash
./scripts/private-vault.sh interactive
```

## Important Notes

1. **Password Security** - Use a strong password, don't share it with anyone
2. **Backup encrypted files** - Regularly backup `memory/private-vault.md`
3. **Forgot password** - If you forget the password, encrypted content **cannot be recovered**
4. **Don't modify** - Don't manually modify encrypted content format

## Language

📖 [中文文档](SKILL.zh.md)

## Author

Developed by **兵步一郎 (Ichiro)**.

Created for personal use and shared with the OpenClaw community.

## License

MIT

