54 lines
2.1 KiB
Markdown
54 lines
2.1 KiB
Markdown
# NOC — Not OpenClaw
|
|
|
|
Telegram bot that bridges messages to `claude` sessions.
|
|
|
|
~600 lines of Rust. One binary. One config file. Does the thing.
|
|
|
|
## Why "Not OpenClaw"?
|
|
|
|
[OpenClaw](https://openclaw.io) is an open-source AI agent framework with admirable ambitions. It supports 20+ messaging platforms, 35+ LLM providers, a hub-and-spoke gateway (Node.js), an agent runtime (separate language, naturally), a three-tier skills override system, built-in RAG pipelines, multi-agent routing, cron scheduling, browser automation, and voice wake-word detection. It has 400,000+ lines of code, 1,800+ open issues, and requires at least 1 GB of RAM to breathe. The official docs recommend a $600 Mac mini as a minimum viable host. Cold-start on a modest CPU: ~500 seconds. Security researchers have called it "a security nightmare dressed up as a daydream."
|
|
|
|
To be fair, if you need to orchestrate 47 Telegram bots across 12 LLM backends with a RAG pipeline and overnight autonomous tasks, OpenClaw is probably fine.
|
|
|
|
Most people just want to talk to Claude on their phone.
|
|
|
|
NOC is for those people.
|
|
|
|
## How it works
|
|
|
|
1. User sends a message to the bot
|
|
2. First message must be the auth passphrase, otherwise the bot replies "not authenticated"
|
|
3. Once authenticated, messages are piped to `claude --resume <session_id>` via stdin
|
|
4. `claude` stdout is streamed back as the reply (message is edited live as tokens arrive)
|
|
5. Files uploaded to the bot are forwarded to Claude; files Claude writes to the output dir are sent back
|
|
6. Sessions are scoped per chat and refresh daily at a configurable hour (default: 5am)
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
cp config.example.yaml config.yaml
|
|
# edit config.yaml with your values
|
|
```
|
|
|
|
## Config
|
|
|
|
| Key | Description |
|
|
|-----|-------------|
|
|
| `tg.key` | Telegram bot token |
|
|
| `auth.passphrase` | Passphrase required to authenticate each session |
|
|
| `session.refresh_hour` | Hour (local time, 24h) when sessions reset |
|
|
|
|
## Deploy
|
|
|
|
```bash
|
|
make deploy
|
|
```
|
|
|
|
Builds the release binary and installs a `systemd --user` service. Remote deployment via `make deploy-hera`.
|
|
|
|
## Logs
|
|
|
|
```bash
|
|
journalctl --user -u noc -f
|
|
```
|