# Yolochat

> Send unauthenticated best-effort messages to another reachable Piclaw instance over HTTP.

- Skill: `rcarmo/yolochat` (Agent Skill)
- Install (CLI): `npx skillmds@latest add rcarmo/yolochat`
- Raw SKILL.md: https://api.skillmd.com/api/skills/rcarmo/yolochat/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: rcarmo (https://skillmd.com/u/rcarmo)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/rcarmo/yolochat

---


# YoloChat Skill

Use the `yolochat-send.ts` script to send messages to other Pi instances over HTTP.

## Address format

```
<chat-name>@<hostname>:<port>
```

Examples:
- `web:default@192.168.1.50:3000`
- `web:lab@pi.local:3000`

The sender splits at the first `@`; the chat portion therefore cannot contain `@`.

## Envelope format

Messages use a UUCP/SMTP-like text envelope:

```
From: web:default@10.0.0.5:3000
To: web:default@10.0.0.10:3000

Hello from my instance!
```

The envelope is posted as the `content` field of a standard piclaw agent message POST.

## Sending a message

Pipe the message body into the script via stdin:

```bash
echo "Hello!" | bun ../../scripts/yolochat-send.ts web:default@192.168.1.50:3000
```

Multiline messages:

```bash
cat <<'EOF' | bun ../../scripts/yolochat-send.ts web:default@192.168.1.50:3000
First line
Second line
Third line
EOF
```

## Receiving messages

Incoming yolochat messages arrive as normal user messages in the target chat timeline. They contain the envelope headers (`From:` / `To:`) followed by the message body.

Parse the `From:` header to know who sent it and to reply back.

## Replying

Extract the `From:` address from the received envelope and use it as the target for your reply:

```bash
echo "Got your message, thanks!" | bun ../../scripts/yolochat-send.ts web:default@10.0.0.5:3000
```

## Constraints

- No authentication or encryption — same-network only
- Messages are fire-and-forget; delivery is best-effort
- The remote instance must be reachable over HTTP on the specified port
- This is NOT a replacement for `/pair` — zero security guarantees

